以下のbtrfsファイルシステムがあります。
root_subvol # subvolid=5 - the root subvolume for the btrfs filesystem
- snapshots/ # Folder that contains btrfs snapshots of the subvol_root that I take before I do system updates
- subvol_root/ # A btrfs subvolume. Gets mounted as /. Contains /etc, /home, /proc, ...
起動時にsubvol_root
はmyとしてマウントされます/
。 Linuxは、これが起動時にマウントされるサブボリュームかどうかをどうやって知ることができますか/
?
もちろん、私のsubvol_root/etc/fstabには次のエントリがあります。
UUID=84ee... / btrfs subvol=subvol_root,...
/etc/fstab
ただし、異なるサブボリュームには、マウント用の異なるサブボリュームを一覧表示する独自のバージョンがある可能性があるため、/
これはあいまいです。
/etc/fstab
デフォルトのbtrfsサブボリュームなどを見ますか?
答え1
たとえば、次のようにカーネルブートパラメータを確認しますcat /proc/cmdline
。
root=
ファイルシステム(おそらくラベルまたはUUID)を指定するオプションとインクルードrootflags=
がありますsubvol=subvol_root
。このオプションは一般的なカーネルコマンドラインを決定するため、ブートローダ設定に含まれます。
あるいは、起動プロセスで/etc/fstab
initramfsにすでに含まれているコピーを使用することもできます。
ディストリビューションごとに異なる操作を実行できますが、私の経験によれば、ルートファイルシステムの場所はカーネルブートパラメータで指定される傾向があるため、ハードウェア構成を大幅に変更した場合は起動時に簡単に変更できます。
ルートファイルシステムがinitramfsにのみ指定されている場合は、Catch-22と同様の状況に遭遇する可能性があります。 「initramfsを変更するまでルートファイルシステムにアクセスできませんが、必要なものを取得できません。ルートファイルシステムにアクセスできるまでinitramfs Tools.initramfsを変更してください!」