Как найти, какие изображения принадлежат который/dev/loop?

awk '{print > $0".txt" }'  inputfile

создал бы один файл на уникальную строку в inputfile, названном в честь содержания тех строк (с a .txt расширение). Но остерегайтесь этого, когда предел параллельных открытых файлов будет достигнут, некоторые awk реализации перестанут работать.

Или

awk '{f = "output_file." NR; print $0 > f; close(f)}' inputfile

Пронумеровать выходные файлы.

9
09.12.2014, 22:14
2 ответа

losetup (команда, обычно используемая для их настройки) скажет вам:

$ /sbin/losetup --list
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /var/tmp/jigdo/debian-7.6.0-amd64-CD-1.iso

Обратите внимание, что в более старых версиях вы можете использовать -a вместо --list, и это выводится в другом, а теперь уже устаревшем формате.

Информация поступает от /sys:

$ cat /sys/class/block/loop0/loop/backing_file 
/var/tmp/jigdo/debian-7.6.0-amd64-CD-1.iso

Другая, возможно более портативная, возможность получить ее с udisks:

$ udisksctl info -b /dev/loop0
/org/freedesktop/UDisks2/block_devices/loop0:
⋮
  org.freedesktop.UDisks2.Loop:
    Autoclear:          false
    BackingFile:        /var/tmp/jigdo/debian-7.6.0-amd64-CD-1.iso
    SetupByUID:         1000
⋮

-lossetup также с радостью удалит их для Вас, используя опцию -d. Для этого требуется только устройство цикла в качестве параметра; его не волнует файл/устройство резервного копирования.

12
27.01.2020, 20:06

Я бы еще добавил следующее. С помощью kpartx можно проверить, куда сопоставлены устройства. Например:

%> sudo kpartx -lv /dev/loop0
loop0p1 : 0 122880 /dev/loop0 8192
loop0p2 : 0 8257536 /dev/loop0 131072

Это полезно, когда вы забыли, куда сопоставлены файлы. Конечно, loop0p1 и loop0p2 отображены в каталог /dev/mapper.

0
27.01.2020, 20:06

Теги

Похожие вопросы