Linuxの起動中にbusyboxを使用してファイルシステムをマウントするときにエラーが発生しました。

Linuxの起動中にbusyboxを使用してファイルシステムをマウントするときにエラーが発生しました。

私はbusyboxをinitとして使用する組み込みLinuxシステムを開発しています。
システムが起動すると、次の2つのエラーログが表示されます。

[    3.901185] Run /linuxrc as init process
[    3.909861] process '/bin/busybox' started with executable stack
mount: mounting devpts on /dev/pts failed: No such file or directory
mount: mounting tmpfs on /dev/shm failed: No such file or directory

Linuxにログインして「mount」コマンドを実行すると、次のメッセージが表示されました。

# mount
......
devtmpfs on /dev type devtmpfs (rw,relatime,size=41768k,nr_inodes=10442,mode=755)
proc on /proc type proc (rw,relatime)
tmpfs on /tmp type tmpfs (rw,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
sysfs on /sys type sysfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600,ptmxmode=000)  <<<<
tmpfs on /dev/shm type tmpfs (rw,relatime)   <<<<

驚くべきことに、そこにはすでに設置されていました!
busyboxが使用する/etc/fstabは次のとおりです。

# cat /etc/fstab
# <file system> <mount pt>      <type>  <options>       <dump>  <pass>
/dev/root       /               ext2    rw,noauto       0       1
proc            /proc           proc    defaults        0       0
devpts          /dev/pts        devpts  defaults,gid=5,mode=620,ptmxmode=0666   0       0
tmpfs           /dev/shm        tmpfs   mode=0777       0       0
tmpfs           /tmp            tmpfs   mode=1777       0       0
tmpfs           /run            tmpfs   mode=0755,nosuid,nodev  0       0
sysfs           /sys            sysfs   defaults        0       0

システムに表示される/dev/ptsと/dev/shmに少しの遅延がある可能性があると考えて、busyboxのmount.cに遅延を追加しましたが、同じ結果が得られました。間違い

また、これら2行をファイルの末尾に移動して/ etc / fstabを編集しようとしましたが、同じ結果が得られました。間違い

その後、起動時にbashに移動するようにカーネルコマンドラインを "init = / bin / bash"に変更しました。
Bashで/dev/ptsと/dev/shmをチェックしましたが、そこにはありません!

手動でインストールしようとしましたが、まだ「ファイルやディレクトリがありません」というエラーが発生しました。

なぜこれが起こるのかわかりません。無害に見えますが、システムで「エラーメッセージ」を見るのは面倒なので、これを把握して修正したいと思います。

答え1

Artemが提案したテストで、エラーの根本原因と解決策を見つけました。

busybox は、システム上の init プロセスから始まると、まずそのファイルに/etc/fstab基づいてファイルシステムをチェックし、マウントを試みます。 Busyboxを介してインストールする方法が実際になかったか/dev/shmどうか、Busyboxはこれについて不平を言いました。/dev/pts

その後、およびを/etc/init.d/rcS含む複数のファイルシステムもマウントします。まず、ファイルシステムをマウントする前に。そのため、エラーは報告されず、コメントアウトされることもあります。/dev/shm/dev/ptsrcSmkdir /dev/pts/dev/shm/etc/fstab

rcS今マウントを使用して/etc/fstab

関連情報