При использовании ссылки /etc/mtab -> /proc/mounts не освобождаются loop-устройства, занимаемые при монтировании с помощью -o loop
Насколько я понимаю, это не ошибка а особенность: в /proc/mounts недостаточно информации для того, чтобы размонтировать такие устройства.
Об этом я не подумал. Сравним после монтирования: /etc/mtab: junior23.iso /mnt/disk iso9660 rw,loop=/dev/loop0 0 0 /proc/mounts: /dev/loop0 /mnt/disk iso9660 ro 0 0 (здесь флаги пишутся те, которые фактически переданы ядру, верно?) Получается, mount при монтировании loop должен указывать дополнительный параметр, позволяющий засечь что надо размонтировать. Или изменить поведение: при размонтировании _всегда отключать_ размонтируемое loop-устройство, а не только созданное при монтировании через mount.
Думаю что ничего не надо делать. Есть у mount/umount возможность работать без привлечения /etc/mtab. Ей и надо пользоваться вместо наведения симлинков.
Поставим вопрос так: как отключить в системе использование перезаписываемого /etc/mtab так, чтобы при этом не сломалось отмонтирование loop-устройств?
наверное надо системные скрипты править соотв. образом.
расшифрую ещё чуть подробнее: --- eostapets@ Кто что думает о том, чтобы сделать /etc/mtab симлинком на /proc/mounts? Это будет неплохим первым шагом к ro / ... --- Женя, можешь почесать скрипты, поскольку Стасу сейчас не до r/o, потому что альтератор.
back to me :)
mount с тех пор переписали, /etc/mtab штатно стал симлинком: $ rpm -qlv mount | grep mtab | cut -c63- /etc/mtab -> /proc/mounts и эта бага у меня не воспроизводится: # mount -o loop mkimage-profiles.iso /mnt # losetup -a /dev/loop0: [2058]:4591216 (/home/mike/out/rescue-20130628-x86_64.iso) # grep iso /proc/mounts /dev/loop0 /mnt iso9660 ro,relatime 0 0 # umount /mnt # losetup -a # _