/ usrをLinuxの他のデバイスに移動する

/ usrをLinuxの他のデバイスに移動する

OpenSuse Linuxを15.3にアップグレードしましたが、「/」ルートディレクトリに残っているディスク容量が少なすぎて、/ usrを新しいデバイスに移動することにしました。 /usrのすべてのファイルを新しいデバイスにコピーし、/etc/fstabを編集してfstabとbootetのファイルを更新しました。

その後、システムは/ usrの新しいデバイスを使用します。

/dev/sda3 .... .... 22% /usr

すべて最高です。 1つの小さな欠陥があります。ルート/の塗りつぶしレベルは以前と同じです。 (「古い」/ usrがまだデバイスの下にあったからです(新しい/ usrをマウントするのは古い/ usrを偽装するだけです)。同じことがわかりました。シングルユーザーモードで/ usrを実行しています。

ummount -l /usr (lazy)
Moved it to prepare it for later deletion (mv /usr /xusr)

したがって、/ etc / fstabのエントリは/ dev / sda3に/ usrをマウントするため、/ xusrを削除できます。

しかし、再起動後は何も機能しません。 Linuxは、いくつかのコマンド(最も重要なもの)で私を回復モードに切り替えて何もできません。もはやfstabもなく、ルートもなく、デバイスもありません。これは生のコアだけだと思います。

いくつかの考えや実験の最後に、いくつかのデバイスを/ mntにマウントし(インストールは正常に動作しました)、最終的に元のルートデバイスを見つけ、xusrを起動時にカーネルが見つけることができるように、以前の名前である/ usrに戻しました。

私の質問:/ usrを新しい場所に移動するにはどうすればよいですか? (すべての重要なシステムコマンドがこの領域にあり、カーネルが/ usrを最初にマウントしてからfstabを処理できるため、これは不可能かもしれません)。

可能ですか?

ベストアンサー1

まず、大きな警告:多くの最新のディストリビューション、OpenSuSEを含む今、「マージされた/usr」レイアウトに移行すると、別のファイルシステムを作成できなくなります/usr。そうしようとすると、経験した方法で失敗することになります。

デフォルトでは、ディストリビューションはおよびにインストールされて/usr/binいるすべてのパッケージ/usr/sbinと以前のパッケージをビルド/binし、それぞれとへのシンボリックリンク/sbinで終了します。結局も同じだ。/usr/bin/usr/sbin/lib

昨日リリースされたOpenSuSE 15.3(!)を使用しているので、上にリンクされたOpenSuseのUsrMerge発表よりも確かに最新バージョンです。これは分割計画を意味する可能性があります。/usr それは単に動作しません。

(OpenSuSE 15.3の新機能リストの対応するセクションへのリンクを追加したかったのですが、現在OpenSuSEサーバーが非常に忙しいようです。このページを開くことができないようです)。


ルートファイルシステムはどのタイプのファイルシステムを使用しますか? SuSEはBtrFSファイルシステムを使用するためのパイオニアであり、それを使用している場合は、再起動せずにオンラインでファイルシステムを別のパーティションまたは別のディスクに拡張することができます。

デフォルトでは、/dev/sda3上書きが安全なアンマウントパーティションであり、/BtrFSを使用している場合は、次の2つのコマンドを実行できます。

btrfs device add /dev/sda3 /
btrfs filesystem balance /

これで、sda3ルートファイルシステムにおおよその追加容量が必要です。

おすすめ記事