Исходный путь цикла устройства

8

Из любопытства хотелось бы узнать, есть ли способ узнать источник смонтированного раздела?

Например, вывод df -h:

/ dev / loop1 3M 3M 0 100% / media / loop

Исходя из этого вывода, я знаю, что на устройстве смонтировано петлевое устройство 3М /media/loop, но у меня нет понятия, чтобы определить точное местоположение /dev/loop1устройства.

root@SHW:~# mount -o loop /home/SHW/Downloads/TinyCore-current.iso
/mnt/loop mount: block device /home/SHW/Downloads/TinyCore-current.iso is write-protected, mounting read-only
root@SHW:~# tail -n1 /proc/mounts
/dev/loop1 /mnt/loop iso9660 ro,relatime 0 0

Как мне узнать абсолютный путь, если /dev/loop1я не знаю, кто монтировал эти разделы? (В этом случае путь есть /home/SHW/Downloads/TinyCore-current.iso.)

SHW
источник

Ответы:

10

Используйте losetup«S --listвариант :

$ losetup --list /dev/loop0
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /tmp/backing-file

Если вам нужен только файл, используйте -Oопцию, чтобы выбрать столбец:

$ losetup --list --noheadings -O BACK-FILE /dev/loop0
/tmp/backing-file

Эта опция является частью последних версий util-linux. Более ранние версии поддерживают только -aопцию, в которой перечислены все активные устройства в более сложном для обработки формате:

$ losetup -a
/dev/loop0: []: (/tmp/backing-file)

В любом случае, это не слишком обременительно для обработки, как вы хотите.

Майкл Гомер
источник
Можно также просто использовать losetup /dev/(target).
neverMind9
0

Чтобы получить путь к файлу поддержки, используйте:

cat /sys/block/loop1/loop/backing_file
Науэль Греко
источник
-2

Я понятия не имею, чтобы определить точное местоположение устройства / dev / loop1.

Что вы подразумеваете под точным местоположением /dev/loop1устройства? /dev/loop*где * - число - это петлевые (виртуальные) устройства, которые используются для монтирования файловых систем, которые не расположены на других блочных устройствах, таких как жесткие диски. Вы можете перечислить их и увидеть, где они смонтированы, используя mountкоманду, и вы можете настроить новый, используя losetupкоманду.

Если вы хотите узнать, к какому физическому устройству подключен /dev/узел, есть способы сделать это. Вы можете использовать udevadmдля запроса Udev. В моей системе следующие команды дают больше информации о sdaдиске:

$ udevadm info --query=path --name=sda
/devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sda
$ udevadm info --query=symlink --name=sda
disk/by-id/ata-ST3500418AS_6VMD78AY disk/by-id/wwn-0x5000c500224ac74f

В дополнение к этому вы можете использовать lspciдля получения дополнительной информации о том, где физически подключено устройство. На моей системе /dev/sdaподключен к контроллеру sata:

$ lspci
[snip]
00:1f.2 SATA controller: Intel Corporation 7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
[snip]
NlightNFotis
источник