Loop-устройство — файл вместо диска
Loop-устройство показывает обычный файл системе как диск: его размечают, форматируют и монтируют.
Шпаргалка
8 команд Версия для печати-
truncate -s 512M disk.imgфайл на 512 МиБ -
sudo losetup -f --show disk.imgподключить: /dev/loop0 -
sudo losetup -fP --show disk.imgс разделами: loop0p1… -
losetup -lчто к чему подключено -
losetup -j disk.imgкакое устройство у файла -
sudo losetup -d /dev/loop0отключить -
sudo mount -o loop image.iso /mntобраз сразу в каталог -
lsblk -e 7список дисков без loop
Обзор
Loop-устройство — блочное устройство /dev/loopN, за которым
лежит обычный файл. Всё, что записано на устройство, оказывается в файле. С ним
работают как с диском: размечают (fdisk-parted), создают файловую систему
(mkfs), монтируют (mount).
Зачем это нужно:
- учиться разметке и монтированию, не трогая настоящие диски — так устроены упражнения о дисках в тренажёре;
- открыть образ: ISO, образ раздела, резервную копию ФС;
- snap-пакеты в Ubuntu: каждый snap смонтирован с loop, поэтому в
lsblk бывает много
loopN.
Подключение живёт до перезагрузки или до losetup -d. Разделы на loop-устройстве
ядро показывает, только если устройство подключено с -P: /dev/loop0p1,
/dev/loop0p2.
Рецепты
4Образ ФС без разделов
Убрать за собой
Подключать образ при загрузке
Строка /etc/fstab с опцией loop — mount подключит файл при загрузке.
Неполадки
5failed to set up loop device: Permission denied
losetup: disk.img: failed to set up loop device: Permission denied —
подключать устройства может только root. Запусти через sudo.
Раздела /dev/loop0p1 нет
Устройство подключено без -P, и ядро не читало таблицу. Перечитай её:
sudo partprobe /dev/loop0 — или отключи и подключи заново с -fP.
losetup: cannot find an unused loop device
Свободных устройств нет: обычно их держат забытые подключения. Посмотри
losetup -l и отключи лишние losetup -d.
Файл удалён, а место не вернулось
Файл ещё подключён к loop-устройству. Найди его в losetup -l (рядом будет
(deleted)) и отключи — место освободится.
losetup -d не отключил устройство
Устройство смонтировано. losetup -d только помечает его (в losetup -l
колонка AUTOCLEAR становится 1), а отключится оно после umount. Повторный
losetup -d ответит detach failed: No such device or address — устройства уже
нет.
Опасно
1Один файл — два устройства
losetup -f не проверяет, подключён ли файл уже. Два устройства на один файл с
двумя монтированиями портят ФС. Перед подключением проверь losetup -j файл.
См. также
Есть неточность? Сообщить об ошибке в статье