技術ノート Linux Linux ホームディレクトリを別のドライブに移動する方法

Linux ホームディレクトリを別のドライブに移動する方法

重要なポイント

  • Linux ホーム フォルダーを別のドライブに移動することは、どのディストリビューションでも実行できる簡単なプロセスであり、個人ファイルを失うことなく Linux を再インストールできます。
  • ホームフォルダーを移動する前に、必ず重要なファイルのバックアップを作成してください。
  • ホーム フォルダーを移動するには、新しいドライブを特定してパーティションを作成し、マウントします。新しいドライブにホーム フォルダーを作成 (またはコピー) し、新しいホーム フォルダーを指すように fstab ファイルを変更します。

Linux ホームフォルダーを別のドライブに移動したいですか?ここでは、どのディストリビューションでも機能する、簡単で段階的な方法を示します。ホーム フォルダーを移動すると、Linux を再インストールでき、個人ファイルについて心配する必要がなくなります。

なぜホームフォルダーを別にしておかなければならないのでしょうか?

新しいマシンをセットアップする場合、または既存のマシンにハード ドライブを追加する場合は、ホーム ディレクトリをデフォルトの場所とは別のドライブに置きたい場合があります。

最近のパーソナル コンピュータの一般的な構成は、オペレーティング システムを保持する中型の ソリッド ステート ドライブ (SSD) と、データのメイン ストレージとして従来のより大きなハード ドライブ (HD) を搭載することです。あるいは、システム内に従来のハード ドライブが 1 台あり、ストレージを増やすために新しい HD を追加した場合もあります。理由が何であれ、ここではホーム ディレクトリの移動を簡単に手順を追って説明します。

ところで、Linux システムを最初からインストールしている場合は、Linux ディストリビューションのインストーラーに別のホーム ディレクトリを作成するオプションが表示されるでしょう。通常、パーティション分割オプションに進み、別のパーティションを作成し、それを「/home」にマウントするだけです。ただし、すでに Linux ディストリビューションをインストールしている場合は、次の手順を使用して、何も失ったりオペレーティング システムを再インストールしたりすることなく、現在のホーム ディレクトリを新しい場所に移動できます。

さて、始める前に、 バックアップを作成して ください。

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 ドライブであることがわかり、これはこのテスト マシンで期待されるものと一致するので、続行します。

Linux ホームディレクトリを別のドライブに移動する方法

パーティションを作成する

新しいパーティションの場合は文字 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 を押して終了します。

Linux ホームディレクトリを別のドライブに移動する方法

パーティション上にファイル システムを作成する

パーティション上にファイルシステムを作成する必要があります。これは、 mkfs コマンドを使用して簡単に実現できます。 コマンドには パーティション番号を含める必要があることに注意してください。 /dev/sdb1 (ドライブ) ではなく、 /dev/sdb (パーティション) と入力するように注意してください。

 sudo mkfs -t ext4 /dev/sdb1

ファイルシステムが作成され、コマンド プロンプトに戻ります。

Linux ホームディレクトリを別のドライブに移動する方法

新しいドライブのマウント

新しいドライブを使用するには、そのドライブ上のパーティションをファイルシステムのマウント ポイントにマウントする必要があります。実際、完全に正確に言うと、ドライブやパーティションをマウントしているのではなく、システムのファイルシステム ツリーにファイル システムを移植することによって、パーティションにファイル システムをマウントしているのです。

/mnt ポイントは他のどの場所よりも優れた場所です。これは、新しいドライブにデータをコピーできるようにするための一時的なマウント ポイントにすぎません。 mount コマンドを使用して、 /dev/sdb の最初のパーティション /mnt ファイルシステムをマウントします

 sudo マウント /dev/sdb1 /mnt

すべてがうまくいけば、エラー メッセージなしでコマンド ラインに戻ります。新しくマウントされたファイルシステムにディレクトリを変更できるかどうかを見てみましょう。

 cd /mnt

はい、できます。ここに何があるのか​​見てみましょう。

 ls -ahl

新しいファイル システムにいます。デフォルトの「lost+found」ディレクトリは必要ないので、削除しても問題ありません。

 sudo rm -rf 紛失+発見

Linux ホームディレクトリを別のドライブに移動する方法

ホームフォルダーをコピーする

古いホームディレクトリから新しくマウントされたファイルシステムにすべてをコピーする必要があります。 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/ 

Linux ホームディレクトリを別のドライブに移動する方法

新しいホームディレクトリをテストする

/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 ディレクトリにあるため、さまざまなアプリケーションを起動すると、すべての設定、環境設定、データが検索されます。

これにより、再インストールの手間が軽減され、アップグレードのリスクも軽減されます。

Linuxコマンド

ファイル

tar pv cat tac chmod grep diff sed ar man pushd popd fsck testdisk seq fd pandoc cd $PATH awk join jq fold uniq journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · パッチ · 変換 · rclone · シュレッド · srm · scp · gzip · chattr · カット · 検索 · umask · wc · tr

プロセス

エイリアス · スクリーン · トップ · ナイス · renice · 進行状況 · strace · systemd · tmux · chsh · 履歴 · at · バッチ · フリー · what · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · タイムアウト · ウォール · はい · キル · スリープ · sudo · su · タイム · groupadd · usermod · グループ · lshw · シャットダウン · 再起動 · 停止 · パワーオフ · パスワッド · lscpu · crontab · 日付 · bg · fg · pidof · nohup · pmap

ネットワーキング

netstat ping ip ss whois fail2ban bmon dig finger nmap ftp curl wget who whoami w iptables ssh-keygen ufw arping firewalld

「 Linux ホームディレクトリを別のドライブに移動する方法」に関するベスト動画選定!

【Windows エクスプローラ】わかりやすく解説!ファイルはどこに保存するのが正解? OneDriveフォルダ? クイックアクセス? ファイルとフォルダはどのような構成になっているの?
Linuxディレクトリ構造を完全解説!