我正在尝试通过initramfs从squashFS映像启动raspbian。
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。
有人知道从哪里开始吗?

最佳答案

我遇到你的问题是因为我今天在构建自己的initramfs时遇到了同样的问题。我又挖了几口发现:
http://www.silas.net.br/doc.notes/unix/linux/busybox-troubleshooting.html
然后我突然意识到,我没有在内核中构建squashfs,也没有加载模块。我这么做之后,一切都好了!
如果没有,请确保内核支持squashfs。

关于linux - 将Squashfs挂载为initramfs Raspbian中的根,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27986063/

10-09 19:14