ウェブサイト検索

Linux で /Home ディレクトリをパーティションに変換する方法


このトピックは少し特殊に見えるかもしれません。つまり、なぜホーム ディレクトリを別のパーティションに変換する必要があるのでしょうか?

Linux をインストールするときは常に、インストーラーはデフォルトで「ガイド付き」パーティション分割をすでに選択しています。このオプションを使用すると、インストーラーはホーム ディレクトリと他のすべてのシステム ディレクトリをルート (/) パーティションの下に配置します。

この設定は非常にうまく機能しますが、大きなリスクが伴います。システムがクラッシュしたり、ルート パーティションが破損した場合、ホーム ディレクトリにある個人ファイルはすべて失われます。

このため、インストール中に別のホーム パーティションを作成することが重要です。これにより、オペレーティング システムの再インストール中、またはルート パーティションがクラッシュした場合に個人ファイルの安全が保証されます。

すべてのディレクトリがルート パーティションに入るようにハード ドライブをパーティション分割するときにデフォルト オプションを受け入れた場合は、このガイドが役に立ちます。

このガイドでは、ホーム ディレクトリを新しく追加したディスク上の別のパーティションに転送します。デモンストレーションの目的で、追加のドライブとしてリムーバブル USB ドライブを使用します。実際には、これはホーム パーティションにしたい SSD ドライブまたは追加の HDD である可能性があります。

さぁ、始めよう!

ステップ 1: 追加された新しいドライブを特定する

リムーバブル ドライブを接続する前は、ホーム フォルダとすべてのシステム パーティションが / にマウントされたハード ドライブ (/dev/sda) が 1 つだけあります。 またはルート パーティション。

ここでは、df コマンドを使用してハード ドライブ構成を一目で確認できます。

df -Th

次に、8GB の取り外し可能なUSB ドライブを接続します。これは /dev/sdb として識別され、/media/tecmint/USB マウントポイントにマウントされます。

これを確認するには、lsblk コマンドを実行します。

lsblk

パーティションとマウントポイントはセットアップによって異なる場合があります。たとえば、3 番目のドライブは /dev/sdc、4 番目のドライブは /dev/sdd のように示されます。

ステップ 2: Linux で新しいパーティションを作成する

新たに 2 番目のドライブをシステムに追加しましたが、 それをホーム ディレクトリの別のパーティションとして使用するには、そのドライブにパーティションを作成する必要があります。新しいドライブなので、現時点ではありません。

fdisk コマンドにより、次のように確認されます。

sudo fdisk -l

強調表示されたセクションでは、/dev/sda1/dev/sda2、 が含まれる最初のドライブとは異なり、新しいドライブにはパーティションが関連付けられていないことがわかります。および /dev/sda5

ここで、次のコマンドを使用してパーティションを作成します。

sudo fdisk /dev/sdb

プロンプトが表示されたら、'n' を押して新しいパーティションを作成します。次に、'p' を押してプライマリ パーティションの作成を指定し、'1' を押してパーティション番号を指定します。次の 2 つのプロンプトで、「ENTER」を押して、最初と最後のセクターを指定するデフォルトを受け入れます。

私のリムーバブル ドライブには NTFS ファイル システムが付属しているため、'Y' を押して削除します。加えられたすべての変更を保存するには、'w' を押します。これにより、パーティションに加えられたすべての変更が書き込まれます。

加えられた変更を確認するには、もう一度次のコマンドを実行します。

sudo fdisk /dev/sdb

プロンプトが表示されたら、'p' を押して印刷します。これにより、パーティションの情報が出力されます。出力から、ファイル システム タイプとして Linux を使用して、新しいパーティション /dev/sdb1 が作成されたことがわかります。これを ext4 ファイルシステム タイプにフォーマットする必要があります。これについては次のセクションで説明します。

ステップ 3: Linux で新しいパーティションをフォーマットする

次のステップでは、ext4 ファイルシステム形式を使用して /dev/sdb1 パーティションをフォーマットします。リムーバブル ドライブである /dev/sdb ではなく、/dev/sdb1 (パーティション) をフォーマットしていることに注意してください。

sudo mkfs.ext4 /dev/sdb1

ステップ 4: Linux で新しいパーティションをマウントする

ドライブがシステムにアクセスできるようにするには、ドライブをシステムのファイルシステムにマウントする必要があります。ただし、最初に、パーティションをマウントするマウント ポイントを作成します。

sudo mkdir -p /srv/home

次に、次のようにマウントポイントにパーティションをマウントします。これにより、事実上、システムでドライブが使用できるようになります。

sudo mount /dev/sdb1 /srv/home

これを確認するには、次のようにdf コマンドを実行します。

sudo df -Th

ステップ 5: ホーム ディレクトリ ファイルを新しいパーティションにコピーする

次に、ホーム ディレクトリの内容を、ドライブ上に配置されたマウント ポイントにコピーする必要があります。そこで、次のコマンドを実行します。

sudo cp -aR /home/* /srv/home/

すべてがうまくいったことを確認するために、ホーム ディレクトリの内容を確認します。

ls -l /srv/home/tecmint

出力から、ホーム ディレクトリにあると予想されるすべてのデフォルト ディレクトリが存在していることが明確にわかります。

ステップ 6: 新しいホーム ディレクトリを作成し、ドライブをマウントする

次に、ホーム パーティションをマウントする別のホーム ディレクトリを作成する必要があります。混乱を避けるために、現在のホーム ディレクトリの名前を、示されている /home.bak に変更します。

sudo mv /home /home.bak

次に、新しいホームディレクトリを作成します。

sudo mkdir /home

次に、/dev/sdb1 ファイルシステムをアンマウントし、新しく作成したホーム ディレクトリにマウントします。

sudo umount /dev/sdb1
sudo mount /dev/sdb1 /home

/home ディレクトリにデフォルトのディレクトリが含まれていることを確認するには、そのディレクトリに移動してその内容を一覧表示します。

cd /home
ls -l tecmint

さらに、次のようにdf コマンドを使用して、ファイルシステムが /home マウント ポイントにマウントされていることを確認できます。

sudo df -Th /dev/sdb1

出力では、ドライブ上の /dev/sdb1 ファイルシステムが /home パーティションにマウントされていることを確認します。ただし、これは再起動後は存続しません。これを永続的にするには、追加の手順が必要です。つまり、/etc/fstab ファイルをファイルシステム情報で変更します。

ステップ 7: Linux での永続パーティションのマウント

システム起動時に毎回ファイルシステムが自動的にマウントされるようにするために、/etc/fstab ファイルを変更します。ただし、最初に、次のようにファイルシステムのUUIDを取得しましょう。

sudo blkid /dev/sdb1

次の手順で使用するため、UUID をコピーしてテキスト エディターのどこかに貼り付けます。

次に、/etc/fstab ファイルを開きます。

sudo vim /etc/fstab 

図に示すように、この行をファイルに追加します。角括弧内の uid を、テキスト エディターでコピーして貼り付けた /dev/sdb1 ファイル システムの実際の UUID に置き換えます。

UUID=[ uid ]     /home	   ext4	   defaults	0	2

変更を保存してファイルを閉じます。次に、次のコマンドを実行してすべてのパーティションをマウントします。

sudo mount -a

これで、システム起動時に毎回ドライブが /home パーティションにマウントされるようになります。

df  -h /dev/sdb1

これらすべての手順を踏まないよう、インストール中に個人ファイルをシステム ファイルから分離するために、残りのシステム パーティションとは別のホーム パーティションを作成することを常にお勧めします。これにより、何か問題が発生した場合でもデータを簡単に回復できます。