0

現在、initramfs を使用して squashFS イメージからラズビアンを起動しようとしています。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 Image が loop0 にアタッチされていることを教えてくれます。

誰かがどこから始めればよいか知っていますか?

4

1 に答える 1

2

今日、独自のinitramfsを構築しているときに同じことに遭遇したため、あなたの質問に出くわしました。さらに掘り下げたところ、次のことがわかりました。

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

その後、squashfs をカーネルに組み込んだり、モジュールをロードしたりしていないことに気付きました。私がそれをした後、すべてがうまくいきました!

そうでない場合は、カーネルが squashfs をサポートしていることを確認してください。

于 2015-01-18T14:49:39.317 に答える