Ubuntu Basics(Ubuntuを最初からインストール)をインストールしようとしましたが、問題が発生しました...インストール後に読み取り専用ファイルシステムを持つシステムを取得しましたが、/ bootは自動的にマウントされません。
これは私の/ etc / fstabです:
/dev/sda1 /boot vfat defaults,noatime 0 2
/dev/sda2 / ext4 defaults,noatime 0 1
インストールするためにベースシステムにルートを接続する方法は次のとおりです。
mount /dev/sda2 /mnt
cp /etc/resolv.conf /mnt/etc/resolv.conf
mount --types proc /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --make-rslave /mnt/sys
mount --rbind /dev /mnt/dev
mount --make-rslave /mnt/dev
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
chmod 1777 /dev/shm
chroot /mnt /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
<installation steps>
exit
cd
umount -l /mnt/dev{/shm,/pts,}
umount -R /mnt
reboot
次のコマンドを実行すると、システムが書き込み可能になります。
mount -o remount,rw /
私は何が間違っていましたか?
答え1
短い答え
インストール段階でこのパッケージをインストールする必要がありますsystemd-sysv
。
長い答え
Ubuntu Focalをインストールしたいようです。 FocalのUbuntuベースイメージにはこのバイナリは含まれていません/sbin/init
。デフォルトのsystemdを使用すると仮定すると、このバイナリはパッケージで提供されますsystemd-sysv
。一部の以前のバージョンのUbuntuのUbuntuの基本イメージは次のとおりです。するinclude/sbin/init
なので、前のガイドラインではこれに言及しないかもしれません。 (画像を使用できなくなる理由/sbin/init
は、おそらくコンテナには通常必要ないためです。これらの画像の使用例が増えています。)
それでは、初期化なしでシェルプロンプトを表示するにはどうすればよいですか?init
のスクリプトは、フォールバックを使用して「実際の」初期化をinitrd
実行する役割を果たします。見つからないexec
場合は、/sbin/init
一連の代替実行ファイルを試してみてください。そのうちの1つは、コンソールに印刷されたものと同様のメッセージを/bin/sh
受け取ることがあります。Target filesystem doesn't have requested /sbin/init
それでは、ルートファイルシステムが読み取り専用でマウントされたのはなぜですか?これはGRUB構成がそうするように指示するためです。実行すると、最初に読み取り専用でマウントするオプションが含まれていることがcat /proc/cmdline
わかります。これにより、必要に応じてルートファイルシステムのエラーを修正するためにinitを実行できます。その後、Initは読み書きを再マウントします。ro
initrd
/
fsck
/