Гора Сквош в роли корня в initramfs Raspbian
В настоящее время я пытаюсь сделать мою загрузочную распаковку из образа squashFS через initramfs. Образ squashfs находится в файловой системе /dev/mmcblk0p1, поэтому я монтирую его перед монтированием образа.
К сожалению, я застрял при монтировании файла образа SquashFS.
Я пробовал монтировать через
mount -o loop
но я всегда получаю
mounting /dev/loop0 on /mnt/root failed: No such device
Поэтому я попытался смонтировать его через петлю вручную. Проблема в том, что монтирование /dev/loop0 завершается с той же ошибкой, что и выше.
Это мой инициал на данный момент:
#!/bin/busybox sh
# Mount the /proc and /sys filesystems.
mount -t proc none /proc
mount -t sysfs none /sys
#create loop devices
mknod /dev/loop0 b 7 0
mkdir /mnt/root
# Mount the boot partition
mount -o ro /dev/mmcblk0p1 /mnt/boot
sleep 5
# Mount the root FS with losetup
echo "Mounting with losetup"
losetup /dev/loop0 /mnt/boot/SYSTEM
mount /dev/loop0 /mnt/root -t squashfs
echo "Done"
#mount -o ro,loop -t squashfs /mnt/boot/SYSTEM /mnt/root
# Use Fallback mounting failed
if [ ! -e /mnt/root/home ]
then
echo "MOUNTING SDA1"
mount /dev/sda1 /mnt/root -t ext4
fi
# Clean up.
umount /proc
umount /sys
umount /mnt/boot
# Boot the real thing.
exec switch_root /mnt/root /sbin/init
проверка
losetup /dev/loop0
говорит мне, что изображение squashfs было прикреплено к loop0.
Кто-нибудь знает, с чего начать?
1 ответ
Я столкнулся с вашим вопросом, потому что столкнулся с тем же сегодня, когда создавал свои собственные initramfs. Я сделал еще несколько копаний и нашел это:
http://www.silas.net.br/doc.notes/unix/linux/busybox-troubleshooting.html
Потом до меня дошло, что я не встраивал squashfs в ядро и не загружал модуль. После этого все заработало!
Если вы этого не сделали, убедитесь, что ваше ядро поддерживает squashfs.