Linuxホームディレクトリを別のドライブに移動する方法
公開: 2022-01-29
Linuxホームフォルダを別のドライブに移動したいですか? これは、どのディストリビューションでも機能するはずの、簡単で段階的な方法です。 ホームフォルダを移動すると、Linuxを再インストールでき、個人ファイルについて心配する必要がなくなります。
なぜあなたのホームフォルダを分離しておくのですか?
新しいマシンをセットアップする場合、または既存のマシンにハードドライブを追加する場合は、ホームディレクトリをデフォルトの場所とは別のドライブに配置することをお勧めします。
最近のパーソナルコンピュータでますます普及している構成は、オペレーティングシステムを保持する中型のソリッドステートドライブ(SSD)と、データのメインストレージとしてより大きなソリッドステートハイブリッドドライブ(SSHD)または従来のハードドライブ(HD)を使用することです。 または、システムに従来のハードドライブが1台あり、ストレージを増やすために新しいHDを追加した場合もあります。 あなたの理由が何であれ、ここにあなたのホームディレクトリを移動する簡単で一撃一撃のランスルーがあります。
ちなみに、Linuxシステムを最初からインストールする場合は、Linuxディストリビューションのインストーラーに別のホームディレクトリを作成するオプションが表示される可能性があります。 通常は、パーティションオプションに移動し、別のパーティションを作成して、「/ home」にマウントする必要があります。 ただし、Linuxディストリビューションを既にインストールしている場合は、これらの手順を使用して、何も失うことなく、またはオペレーティングシステムを再インストールすることなく、現在のホームディレクトリを新しい場所に移動できます。
さて、始める前に、バックアップを作成してください。
関連: rsyncを使用してLinuxシステムをバックアップする方法
ドライブを特定する
ドライブをLinuxコンピューターに取り付けたばかりの場合、またはLinuxを新しいマルチドライブコンピューターのドライブの1つにインストールして再起動した場合、新しいドライブが存在するという証拠はほとんどありません。
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を押します。
ディスク全体に対して単一のパーティションを作成するので、最初のセクターの入力を求められたら、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/sdb (ドライブ)ではなく、 /dev/sdb1 (パーティション)と入力するように注意してください。
sudo mkfs -t ext4 / dev / sdb1

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

新しいドライブの取り付け
新しいドライブを使用するには、ファイルシステムのマウントポイントにパーティションをマウントする必要があります。 実際、完全に正確にするために、ドライブもパーティションもマウントしていません。ファイルシステムをシステムのファイルシステムツリーに移植することにより、パーティションにファイルシステムをマウントしています。
/mntポイントは他のどの場所よりも良い場所です。 これは、データを新しいドライブにコピーできるようにするための一時的なマウントポイントにすぎません。 mountコマンドを使用して、ファイルシステムを/dev/sdbの/mntにある最初のパーティションにマウントします。
sudoマウント/ dev / sdb1 / mnt

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

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

私たちは新しいファイルシステムにいます。 デフォルトの「lost + found」ディレクトリは必要ないため、削除できます。
sudo rm -rf lost + found

ホームフォルダをコピーする
古いホームディレクトリから新しくマウントされたファイルシステムにすべてをコピーする必要があります。 r (再帰)およびp (保持)オプションを使用すると、すべてのサブディレクトリがコピーされ、ファイルの所有権、アクセス許可、およびその他の属性が保持されます。
sudo cp -rp / home / * / mnt

コピーが完了したら、 lsを使用して周りを見回し、データが新しいファイルシステム内にあると予想される場所にあることを確認します。 言い換えると、 /mntがホームディレクトリである場合、すべてが存在し、正しいですか?
ls
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〜
pwd
ls

cd / home
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を今すぐ再起動します

関連:コマンドラインを使用してLinuxを再起動またはシャットダウンする方法
最終チェック
システムが再起動したら、 /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・patch・convert・rclone・shred・srm | |
| プロセス | エイリアス・screen・top・nice・renice・progress・strace・systemd・tmux・chsh・history・at・batch・free・which・dmesg・chfn・usermod・ps・chroot・xargs・tty・pinky・lsof・vmstat・タイムアウト・wall・yes・kill・sleep・sudo・su・time・groupadd・usermod・groups・lshw・shutdown・reboot・halt・poweroff・passwd・lscpu・crontab・date・bg・fg | |
| ネットワーキング | netstat・ping・traceroute・ip・ss・whois・fail2ban・bmon・dig・finger・nmap・ftp・curl・wget・who・whoami・w・iptables・ssh-keygen・ufw |
関連:開発者と愛好家のための最高のLinuxラップトップ
