[ЗАКОСТЫЛЕНО] Не монтируются squashfs

Ситуация бредовая. У меня в домашней системе одна squashfs монтируется через fstab. Вчера вечером всё было ноормально. Сегодня - не монтируется. Стал разбираться. Оказалось, не монтируется никакая squashfs ни в какой каталог. Сообщение неожиданное - mount failed: Операция не позволена.. Монтирую от рута.
Перезагрузился с другим ядром (было zen, перегрузился в lts) - не монтируется. Перезагрузился в другую систему (тоже Arch) - те же файлы в те же каталоги монтируются. Обновился (а давно пора было) - ничего не изменилось.
От чего вообще такое может быть? И что делать?
uname -a
lsmod |grip -e fuse -e squashfs -e loop
modinfo  squashfs
modinfo loop
?
--
sudo modprobe loop
sudo modprobe squashfs
sudo mount -t squashfs /путь_до/бла_бла.sq /mnt/squash -o loop
?
Да, где-то так. Оказалось, что /dev/loop* обслуживаются модулем loop (кто бы мог подумать...), а он не загружен. А в системе, где монтируется - загружен. Если загрузить loop вручную - всё начинает монтироваться, как надо. Создал файл /etc/modules-load.d/loop.conf из одной строчки loop, перезагрузился - всё нормально.
Но раньше-то loop грузился без этого костыля! Что же сломало загрузку loop? И что ещё сломалась заодно?
akorop
он не загружен
Ну по идеи и не должен грузиться пока не понадобиться.
Проверьте
sudo umount /путь_до/бла_бла.sq
sudo modprobe -r squashfs
sudo modprobe -r loop
lsmod |grep  -e squashfs -e loop
#модули выгружены
sudo mount -t squashfs /путь_до/бла_бла.sq /mnt/squash -o loop
lsmod |grep  -e squashfs -e loop
#модули должны быть загружены

модули ядру соответствуют?
uname -a
Linux  5.5.10-arch1-1

modinfo loop
filename:       /lib/modules/5.5.10-arch1-1/kernel/drivers/block/loop.ko.xz
alias:          devname:loop-control
alias:          char-major-10-237
alias:          block-major-7-*

modinfo  squashfs
filename:       /lib/modules/5.5.10-arch1-1/kernel/fs/squashfs/squashfs.ko.xz
license:        GPL
author:         Phillip Lougher <phillip@squashfs.org.uk>
description:    squashfs 4.0, a compressed read-only filesystem
alias:          fs-squashfs

В ините модули другие не зашиты?
sudo lsinitrd '/boot/initramfs-linux.img' |grep  -e loop -e squashfs -e block
А откуда берётся lsinitrd? У меня такой программы нет, и пакета такого нет, даже в AUR, и в вики если и упоминается, то без указания пакета.
akorop
lsinitrd
pacman -Fy
pacman -Fx ченадо
pacman -Fx lsinitrd
pacman -Fx /usr/bin/lsinitrd
mount что не грузит loop у вас сам после выгрузки?
vs220
pacman -Fx ченадо
Век живи, век учись...
vs220
mount что не грузит loop у вас сам после выгрузки?
Да, именно в этом и проблема. А вчера грузил (ой, уже позавчера). Выключал комп самым штатным образом, как всегда.
Сейчас, с костылём принудительной загрузки всё работает.
Более подробно, и в сравнении с IceArch, где всё рвботает, как надо.
  • IceArch: модуль loop изначально не загружен, есть /dev/loop-control, нет /dev/loopN. После монтирования squashfs или iso куча /dev/loopN появляются и не исчезают после отмонтирования. Если сделать rmmod loop, то /dev/loopN исчезают, /dev/loop-control остаётся, смонтировать снова можно.
  • Моя система. Модуль loop изначально не загружен, нет ни /dev/loop-control, ни /dev/loopN. squasfs и iso не монтируются. После принудительной загрузки loop все монтируется. Если выгрузить loop, то исчезают и /dev/loop-control, и /dev/loopN, и монтирвание опять не работает.
В общем, симптомом, кажущимся ближе всего к корню проблемы, является отсутствие /dev/loop-control, а незагрузка loop при монтировании - это следствие.
Да, ещё добавка: lsinitrd '/boot/initramfs-linux.img' |grep loop даёт пустой вывод.
akorop
нет ни /dev/loop-control, ни /dev/loopN
/dev/loopN и не должно быть они динамически создаюся

А вот чего нет /dev/loop-control это вопрос
нашел подобный баг
https://bugzilla.redhat.com/show_bug.cgi?id=1159430
akorop
/dev/loop-control
По идеи его должен удев создавать
cat /usr/lib/udev/rules.d/50-udev-default.rules |grep loop
KERNEL=="loop-control", GROUP="disk", OPTIONS+="static_node=loop-control"
Ошибок нет ?
dmesg | grep udev
#или
journalctl -b | grep -i udev
# да и вообще на ошибки
journalctl -p err -b
 
Зарегистрироваться или войдите чтобы оставить сообщение.