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