重要なポイント
- Linux ホーム フォルダーを別のドライブに移動することは、どのディストリビューションでも実行できる簡単なプロセスであり、個人ファイルを失うことなく Linux を再インストールできます。
- ホームフォルダーを移動する前に、必ず重要なファイルのバックアップを作成してください。
- ホーム フォルダーを移動するには、新しいドライブを特定してパーティションを作成し、マウントします。新しいドライブにホーム フォルダーを作成 (またはコピー) し、新しいホーム フォルダーを指すように fstab ファイルを変更します。
Linux ホームフォルダーを別のドライブに移動したいですか?ここでは、どのディストリビューションでも機能する、簡単で段階的な方法を示します。ホーム フォルダーを移動すると、Linux を再インストールでき、個人ファイルについて心配する必要がなくなります。
なぜホームフォルダーを別にしておかなければならないのでしょうか?
新しいマシンをセットアップする場合、または既存のマシンにハード ドライブを追加する場合は、ホーム ディレクトリをデフォルトの場所とは別のドライブに置きたい場合があります。
最近のパーソナル コンピュータの一般的な構成は、オペレーティング システムを保持する中型の ソリッド ステート ドライブ (SSD) と、データのメイン ストレージとして従来のより大きなハード ドライブ (HD) を搭載することです。あるいは、システム内に従来のハード ドライブが 1 台あり、ストレージを増やすために新しい HD を追加した場合もあります。理由が何であれ、ここではホーム ディレクトリの移動を簡単に手順を追って説明します。
ところで、Linux システムを最初からインストールしている場合は、Linux ディストリビューションのインストーラーに別のホーム ディレクトリを作成するオプションが表示されるでしょう。通常、パーティション分割オプションに進み、別のパーティションを作成し、それを「/home」にマウントするだけです。ただし、すでに Linux ディストリビューションをインストールしている場合は、次の手順を使用して、何も失ったりオペレーティング システムを再インストールしたりすることなく、現在のホーム ディレクトリを新しい場所に移動できます。
さて、始める前に、 バックアップを作成して ください。
Linux 上の新しいドライブを識別する
Linux コンピュータにドライブを取り付けたばかり、または新しいマルチドライブ コンピュータのドライブの 1 つに Linux をインストールして再起動した場合、新しいドライブが存在するという証拠はほとんどありません。
fdisk
コマンドを実行
すると、ドライブとそのパーティションが一覧表示され
ます。
sudo fdisk -l
新しいドライブが特定されるまで、出力をスクロールします。最初のドライブの名前は
/dev/sda
、2 番目のドライブは
/dev/sdb
というように、毎回最後の文字が増加します。したがって、
/dev/sde
システム内の 5 番目のハードドライブになります。
この例では、新しいドライブはシステムに取り付けられる 2 番目のドライブです。したがって、
/dev/sdb
のエントリを探す必要があります。
/dev/sdb
が上で強調表示されています。パーティションを説明する行がないことがわかります。新しいドライブなので、まだドライブはありません。パーティションを作成する必要があります。
fdisk
を使用してこれを行うことができます。ハード ドライブが
/dev/sdb
ではない場合は、コマンド内の
/dev/sdb
を新しいハード ドライブの実際のドライブ識別子に置き換えてください。
sudo fdisk /dev/sdb
fdisk
コマンドの入力を求めたら、文字
p
を押します。これにより、ハードドライブのパーティションテーブルが出力されます。ドライブがないことはわかっていますが、ドライブに関するいくつかの有益な情報が得られます。これは、パーティションを作成しようとしているドライブが、作業する予定のドライブであることを確認する良い機会となります。
ドライブが 1TB ドライブであることがわかり、これはこのテスト マシンで期待されるものと一致するので、続行します。
パーティションを作成する
新しいパーティションの場合は文字
n
を押し、プライマリ パーティションの場合は
p
を押します。パーティション番号を尋ねられたら、番号
1
押します。
ディスク全体に対して 1 つのパーティションを作成するので、最初のセクターの入力を求められたら Enter キーを押してデフォルト値を受け入れます。次に、最後のセクタを入力するように求められ、Enter キーを押してデフォルト値を受け入れます。
fdisk
、パーティション番号 1 である 1TB Linux パーティションが作成されたことを確認しますが、ハードドライブ上ではまだ何も変更されていません。
fdisk
に変更をドライブに書き込むコマンドを実行するまで、ドライブは変更されません。選択に満足していることを確認したら、文字
w
を押して変更をドライブに書き込みます。
パーティションは
/dev/sdb
に書き込まれています。何が起こったのか確認してみましょう。
/dev/sdb
で
fdisk
をもう一度使用します。
sudo fdisk /dev/sdb
文字
p
を押してそのパーティション テーブルを印刷すると、そのドライブのパーティションがリストされていることがわかります。これはこのドライブの最初のパーティションであるため、
/dev/sdb1
と呼ばれます。 2 番目のパーティションの名前は
/dev/sdb2
などとなります。
パーティションには変更を加えたくないので、文字
q
を押して終了します。
パーティション上にファイル システムを作成する
パーティション上にファイルシステムを作成する必要があります。これは、
mkfs
コマンドを使用して簡単に実現できます。
コマンドには
パーティション番号を含める必要があることに注意してください。
/dev/sdb1
(ドライブ) ではなく、
/dev/sdb
(パーティション) と入力するように注意してください。
sudo mkfs -t ext4 /dev/sdb1
ファイルシステムが作成され、コマンド プロンプトに戻ります。
新しいドライブのマウント
新しいドライブを使用するには、そのドライブ上のパーティションをファイルシステムのマウント ポイントにマウントする必要があります。実際、完全に正確に言うと、ドライブやパーティションをマウントしているのではなく、システムのファイルシステム ツリーにファイル システムを移植することによって、パーティションにファイル システムをマウントしているのです。
/mnt
ポイントは他のどの場所よりも優れた場所です。これは、新しいドライブにデータをコピーできるようにするための一時的なマウント ポイントにすぎません。
mount
コマンドを使用して、
/dev/sdb
の最初のパーティション
/mnt
に
ファイルシステムをマウントします
。
sudo マウント /dev/sdb1 /mnt
すべてがうまくいけば、エラー メッセージなしでコマンド ラインに戻ります。新しくマウントされたファイルシステムにディレクトリを変更できるかどうかを見てみましょう。
cd /mnt
はい、できます。ここに何があるのか見てみましょう。
ls -ahl
新しいファイル システムにいます。デフォルトの「lost+found」ディレクトリは必要ないので、削除しても問題ありません。
sudo rm -rf 紛失+発見
ホームフォルダーをコピーする
古いホームディレクトリから新しくマウントされたファイルシステムにすべてをコピーする必要があります。
r
(再帰) および
p
(保存) オプションを使用すると、すべての
サブディレクトリが確実にコピーされ
、ファイルの所有権、アクセス許可、およびその他の属性が保持されます。
sudo cp -rp /home/* /mnt
コピーが完了したら、
ls
使用して全体を調べ、データが新しいファイル システム内の予想どおりの場所に存在することを確認します。言い換えれば、
/mnt
ホーム ディレクトリである場合、すべてが存在し、正しいでしょうか?
ls
デイブ
おそらく、この記事の調査対象となったテスト マシンよりももう少し詳しく調べる必要があるでしょう。セーフティ ネットとして、古い
/home
ディレクトリの名前を変更し、削除しても安全であることが確認されるまで保持します。
sudo mv /home /home.orig
そして、新しい空のホーム ディレクトリを作成します。
sudo mkdir /home
その新しい空のホーム ディレクトリを、新しいハード ドライブ上のファイル システムのマウント ポイントとして使用します。
/mnt
からアンマウントし、
/home
に再マウントする必要があります。コマンド
umount
には、「u」の後に「n」がないことに注意してください。
ただし、最初に、ルート ディレクトリ (
cd /
を使用) に移動して、マウントまたはアンマウントの場所に含まれるディレクトリにいないことを確認します。
CD /
sudo umount /dev/sdb1
sudo マウント /dev/sdb1 /home/
新しいホームディレクトリをテストする
/dev/sdb1
パーティションの属性がどのようになっているかを見てみましょう。
df /dev/sdb1
ファイルシステムの名前、パーティションのサイズ、そのパーティション上の使用済みおよび利用可能なスペース、そして重要なことに、それがマウントされている場所が表示されます。これが
/home
ディレクトリになりました。つまり、古い
/home
ディレクトリとまったく同じように参照できるはずです。
ファイルシステム内の任意のポイントに移動した場合、
~
チルダ ショートカットを使用して
/home
に戻ることができるはずです。
CD /
CD〜
障害者
ls
CD/ホーム
ls
CDデイブ
ls
ls -a
明示的なコマンドと
~
ショートカットを使用して、ファイル システムを
/home
に行き来できます。予想されるフォルダー、ファイル、ドットファイルはすべて存在します。どれもいい感じです。
不足しているものがあれば、ファイルシステムのルートにある
/home.orig
ディレクトリからコピーできます。このディレクトリには引き続きアクセスできます。しかし、すべて問題ないようです。
ここで、コンピュータを起動するたびに
/dev/sdb1
を自動的にマウントする必要があります。
fstabの編集
「fstab」ファイルには、システムの起動時にマウントされるファイルシステムの説明が含まれています。変更を加える前に、問題が発生した場合に戻せるようにバックアップ コピーを作成します。
sudo cp /etc/fstab /etc/fstab.orig
これで、fstab ファイルを編集できるようになりました。お気に入りのエディタを使用してください。ここでは
gedit
を使用しています。どのテキストエディタでも使えます。
sudo gedit /etc/fstab
新しい
/home
ディレクトリをマウントするには、ファイルの最後に行を追加する必要があります。ドライブとパーティションの識別子がこの例で使用されているものと異なる場合は、ここに示されている
/dev/sdb1
をそれらの識別子に置き換えてください。
- 行の先頭にパーティションの名前を入力し、Tab キーを押します。
-
マウント ポイント
/homeを入力し、Tab キーを押します。 -
ファイルシステムの説明
ext4を入力し、Tab キーを押します。 -
マウント オプションの
defaultsを入力し、Tab キーを押します。 -
ファイルシステム ダンプ オプションとして数字の
0を入力し、Tab キーを押します。 -
ファイルシステムチェックオプションとして数字の
0を入力します。
fstab ファイルを保存します。
システムを再起動します
すべてが計画どおりに進んでいることと、新しい
/home
ディレクトリにシームレスに接続していることを確認するには、再起動する必要があります。
そうでない場合でも、必要に応じて復元できる元の
/home
ディレクトリと fstab ファイルのセーフティ ネットがまだ残っています。
/home
ディレクトリと fstab ファイルのコピーという予防策を講じているため、システムを開始前の状態に簡単に戻すことができます。
sudo 今すぐ再起動してください
最終チェック
システムが再起動したら、
/home
ディレクトリが実際に新しいハード ドライブ上にあること、およびシステムが何らかの理由で (奇跡的に) 古い
/home
ディレクトリの使用に戻っていないことを確認してください。
df /dev/sdb1
素晴らしいですね、
/home
にマウントされています。任務完了。
古い
/home
ディレクトリの安全コピーがもう必要ないことが完全にわかったら、それを削除できます。
CD /
sudo rm -rf home.orig/
そしてもちろん、古い
/home
から新しい
/home
に何かがコピーされていないことに気付いた場合は、作業を開始する前に作成したバックアップからそれを取得することができます。
ホームスイートホーム
/home
ディレクトリをオペレーティング システムの残りのパーティションから分離したので、オペレーティング システムを再インストールしても、データは変更されません。 fstab ファイルを編集して 2 番目のドライブを
/home
にマウントするだけです。
また、ドットファイルはすべて
/home
ディレクトリにあるため、さまざまなアプリケーションを起動すると、すべての設定、環境設定、データが検索されます。
これにより、再インストールの手間が軽減され、アップグレードのリスクも軽減されます。





