在initramfs Raspbian中将Squashfs挂载为Root

时间:2015-01-16 14:25:11

标签: linux debian raspberry-pi initrd squashfs

我目前正试图通过initramfs从squashFS映像启动我的raspbian启动。 squashfs图像位于文件系统/ dev / mmcblk0p1上,所以我在安装Image之前安装它。

不幸的是,我一直坚持安装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 Image已附加到loop0。

有人知道从哪里开始吗?

1 个答案:

答案 0 :(得分:1)

我遇到了你的问题,因为我在构建自己的initramfs时遇到了同样的问题。我做了一些挖掘并发现了这个:

http://www.silas.net.br/doc.notes/unix/linux/busybox-troubleshooting.html

然后我突然意识到我没有将squashfs构建到内核中或加载模块。在我这样做之后,一切正常!

如果还没有,请确保您的内核支持squashfs。