Debianカーネルを使用してオペレーティングシステム(Linuxカーネル)を起動しようとしているので、initramfsを使用する必要があります(すべてがモジュールとしてビルドされるため)。しかし、initramfsで起動した後、/sys/blocksを次に埋めないようです。
# mdev -s
デバイス (/dev/sd[az][0-9]) で開発者を入力できません。
それでは、「/sys」をどのように正しく入力する必要がありますか?私はqemuを使ってシステムを起動し、元の画像を「hd」として使用しています。
注:
*これはDebian(または他のディストリビューション)ではありません。私のinitramfsは最初から作成されました。
*私はmdevを使用しています。
* /initスクリプトは次のとおりです。
mount -n -t proc none /proc
mount -n -t sysfs none /sys
mkdir /.root
mdev -s
mount -n -t $rootfstype $device /.root
umount /proc
umount /sys
exec switch_root /.root $init $@
編集:私の質問いいえ開発者を記入してください。必要に応じて手動で実行できます。 「/sys」を見て、「mknod」を使ってください。問題は、「/sys」に「/sys/block/sd[az][0-9]」デバイスがないことです。
情報:https://bin.privacytools.io/?d50e11eea81d8158#1ga51UE+NI6nX49SbkdjGitXOyZpalWUu2I3BuEMx+o=
(qemu呪いからコピーしたときに何かが逃した可能性があります)
答え1
を使用するには、カーネル構成にコマンドを追加してから、次のコマンドを実行する必要がありますmdev
。CONFIG_UEVENT_HELPER=y
mdev -s
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
源泉:Gentoo Wiki
デフォルトのDebian 10カーネルにはCONFIG_UEVENT_HELPER
設定がないため、mdev
使用できません。代わりに、次のようにすることCONFIG_DEVTMPFS=y
ができます。
mount -n -t proc none /proc
mount -n -t sysfs none /sys
mount -n -t devtmpfs none /dev
mkdir /.root
# this would be a great place to run "fsck -C0 $device" if required by $rootfstype
mount -n -t $rootfstype $device /.root
umount /proc
umount /sys
umount /dev
exec switch_root /.root $init $@
...実際のルートファイルシステムへの移行が完了したら、devtmpfs
ファイルシステムを再マウントできます。
mount -n -t devtmpfs none /dev