/dev/sdb1
以下を含む1つのパーティションを持つハードドライブがあるとします。
% sudo mount /dev/sdb1 /mnt
% cd /mnt
% ls
osA/ osB/
% ls *
osA:
bin boot/ dev/ etc/ home/ lib lib64 lost+found/ mnt/
opt/ proc/ root/ run/ sbin srv/ sys/ tmp/ usr/ var/
osB:
bin boot/ dev/ etc/ home/ lib lib64 lost+found/ mnt/
opt/ proc/ root/ run/ sbin srv/ sys/ tmp/ usr/ var/
osA
起動中に(おそらく)ディレクトリを何らかの方法でマウントし、必要に応じて後でそのディレクトリに変更できることを願っています。可能であれば、fsでこれを行いたいと思います。これは可能ですか?/dev/sdb1
/
/etc/fstab
osB
ext4
それを書くもう一つの方法:
/
複数の「ルートファイルシステムディレクトリ」をホストするパーティションと、起動時に両方のディレクトリのいずれかをマウントする機能が必要です。
私はいつもパーティション全体を/
。サブディレクトリパーティションに。
私の現在の/etc/fstab
項目(パーティション全体のみ/
):
UUID=0a7baeae-857d-11eb-8dcd-0242ac130003 / ext4 rw,relatime 0 1
私はArchlinuxを実行しています。
やる気
- 時々、パッケージマネージャの問題のためにシステムを再インストールする必要があるかもしれません。私はこのアプローチがすべてを最初から設定するよりも速く、以前の設定に戻ることができると思いました。
- これをディストリビューションとパッケージマネージャを試して、インストールされているものを
/
切り替える可能性があると思います。 - 持っているだけでも一つ
/dev/sdb
OSとデータパーティションのサイズを変更する必要はありません。データを「osA」および「osB」と並べて「data」フォルダに保存します。
編集1:
私が質問をより明確に尋ねることができる方法に関する提案がある場合は、教えてください。
これらの質問はある程度関連しているようです。最初の質問は無関係なものを掘り下げているようですが、2番目の質問は答えを得ません。 3番目の質問を確認してください。39423 374806 206493 613179
私考える/
/etc/fstab
すでにどこかにインストールされた後にマウントをバインドできるかどうかを確認したかったです(以前は/dev/sdb1
これを行ったことがなく、うまくいかないかもしれません。これを試して結果を投稿できます。洞察を歓迎します)。
編集2:
マウントをバインドするには、まずマウントポイントが必要であり、マウントポイント/
自体がなければマウントポイントを持つことができないことに気づきました。
答え1
私の考えでは、あなたはそれを無視したと思います。最初の質問に対する回答早すぎる私はほぼ同じ答えを書こうとしました。したがって、これを行う方法を正確に議論するために、この回答に従ってください。
これを行うにはなぜinitramfsを使用するのですか?
ほとんどのマウントポイントはに定義されています/etc/fstab
。ただし、これは[ほぼ常に]ルートファイルシステム(/
)に保存されます。ルートに保存されているファイルでは、どのパーティションがルートであるかを構成することはできません。どのパーティションがルートとしてマウントされるかを構成するには、何かが必要です今後 /etc/fstab
読むことができます。 initramfsの作業は、ルート(/
)をマウントしてからそれをchrootすることです。
まず、ルートファイルシステムであり、選択したルートファイルシステムが別の場所にマウントされ、次にそのファイルシステムでchrootが呼び出されるので、システムに別のファイルシステムがマウントされていることを理解することが重要です。
他の答えが示すように、initramfsにはサブディレクトリとしてルートを指定する設定オプションは[通常]ありません。しかし、/init
スクリプトが実行される場所とchrootされる場所を変更するのは非常に簡単です。