ネットワークブートシステムクラスタを設定しようとしましたが、最初の成功後に最近行った操作とは無関係の奇妙な問題に直面しました。
私は次の指示に従いました。ラズベリーパイクラスター、私の場合と関係のない部分はスキップしました。
- ステップ6:コンピューティングノードイメージを作成する
- ステップ9:chroot設定とテスト
- ステップ12:イメージからパッケージをアップグレードしてインストールする
- ステップ14:ネットワーク起動を有効にするようにイメージのinitramfsを変更します。
- ステップ16:FTPサーバーを構成する
- ステップ17:コンピューティングノードへのSSHアクセスを設定する
- ステップ20:NFSサーバーの設定
これまではとても素晴らしかったです。システムが起動しました(他の目的のためにDHCPとTFTPを設定しました)。共有OSはDebian 12で、コンソールからrootとしてログインできます。これはmenuentry
GRUBにあります:
menuentry 'Boot Debian 12' {
set background_color=black
linux /debian12/boot/vmlinuz-6.1.0-9-amd64 console=tty0 ip=dhcp root=/dev/nfs ro nfsroot=192.168.50.9:/image/debian12,vers=3,nolock panic=60 ipv6.disable=1 rootwait
initrd /debian12/boot/initrd.img-6.1.0-9-amd64
}
fstab
まだ設定していないため、ブートイメージのコンテンツが空です。これは問題ではありませんでした。
ただし、今日の起動時にこの問題が発生しました(「/root/dev に /dev をマウントできませんでした:間違ったデバイス間リンク」)。
私は私の人生でこれがどのように起こったのか想像できません。私のメモ、記憶、または想像から/dev
マウントする参照を見つけることができず、/root/dev
ramdiskfs()を解凍した後も/image/debian12/boot/initrd.img-6.1.0-9-amd64
そのような内容への参照を見つけることができません。内容の。それでは、最大の質問は「どのように」ですか?
編集1
もっと深く掘り下げた後、init
initrdでスクリプトを見つけました。
unpack the initrd:
root@vogon:~/test# unmkinitramfs /image/debian12/boot/initrd.img-6.1.0-9-amd64 .
root@vogon:~/test# ll
total 8
drwxr-xr-x 3 root root 4096 Jun 26 12:28 early/
drwxr-xr-x 7 root root 4096 Jun 26 12:28 main/
root@vogon:~/test# ll main
total 28
lrwxrwxrwx 1 root root 7 Jun 26 12:28 bin -> usr/bin
drwxr-xr-x 3 root root 4096 Jun 26 12:28 conf/
drwxr-xr-x 6 root root 4096 Jun 26 12:28 etc/
-rwxr-xr-x 1 root root 6556 Apr 10 2022 init
lrwxrwxrwx 1 root root 7 Jun 26 12:28 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Jun 26 12:28 lib32 -> usr/lib32
lrwxrwxrwx 1 root root 9 Jun 26 12:28 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 10 Jun 26 12:28 libx32 -> usr/libx32
drwxr-xr-x 2 root root 4096 Jun 22 11:28 run/
lrwxrwxrwx 1 root root 8 Jun 26 12:28 sbin -> usr/sbin
drwxr-xr-x 5 root root 4096 Jun 26 12:28 scripts/
drwxr-xr-x 8 root root 4096 Jun 26 12:28 usr/
これは複数のシステムディレクトリをマウントしようとしている場所のようですが、/root
この問題を解決する方法が見つかりませんでした。
答え1
通常、このエラーは、initrdに(実際の)ルートファイルシステム用のファイルシステムドライバがない場合、またはそのファイルシステムの下にある、つまりルートイメージをマウントする必要があるdm /ループデバイスなどがない場合に発生します。そこにクラスタが設定されていることを考えると、ルートをリモートでマウントしようとしているようです。 initrdにnet fs(nfsなど)ドライバがないため、失敗する可能性があります。 (Initramfsシェルは通常欠落していますが、lsmod
どのカーネルモジュール[およびドライバ]がロードされているかを確認することもできますcat /proc/modules
。)また、grub(または使用しているブートローダ)のUUID[またはネットワークファイルシステムの場合はネットワークパス]が正しく設定されていないできます。同じエラーが発生します。ネットワークパスを確認するには、initramfsプロンプトで手動でインストールしてください。