\r\n\r\n

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

linuxのホームフォルダを別のドライブに移動したいですか?ここでは、どのディストリビューションでも使える簡単な方法をステップバイステップで紹介します。ホームフォルダを移動することで、個人ファイルを心配することなく、Linuxを再インストールすることができます...。

Linuxのホームフォルダを他のドライブに移動したいですか?ここでは、どのディストリビューションでも使える簡単な方法をステップバイステップで紹介します。ホームフォルダを移動することで、個人ファイルを心配することなく、Linuxを再インストールすることができます。

メインフォルダを分けた理由は?

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

最近のPCでは、OSを中型のSSD(ソリッドステートドライブ)に、データを保存するメインストレージを大型のSSHD(ソリッドステートハイブリッドドライブ)や従来のHD(ハードディスクドライブ)に搭載する構成が主流になってきています。あるいは、従来のハードディスクドライブしか搭載しておらず、ストレージ容量を増やすために新しいHDを追加した場合もあるでしょう。どのような理由であれ、ここではホームディレクトリの移動を簡単に一発で行うことができます。

ところで、Linuxシステムをゼロからインストールする場合、Linuxディストリビューションのインストーラーに、別のホーム・ディレクトリを作成するオプションが表示されることがあります。通常は、パーティションオプションで、別のパーティションを作成し、「/home」にマウントするだけです。しかし、すでにLinuxディストリビューションをインストールしている場合は、これらのコマンドを使用して、内容を失うことなく、またOSを再インストールすることなく、現在のホームディレクトリを新しい場所に移動することができます。

さて、始める前に、バックアップを取ってきてください。

関連: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を押してください。

ディスク全体のパーティションを作成するので、最初のセクタの入力を求められたら、Enterキーを押してデフォルト値を受け入れることができます。その後、最後のセクタを入力するプロンプトが表示され、Enterキーでデフォルト値を受け付けます。

fdiskで1TBのLinuxパーティション(パーティション番号1)が作成されたことは確認できましたが、ドライブの中身はまだ変化していません。fdiskに変更内容を書き込むコマンドを発行しない限り、ドライブは変更されないままです。選択した内容が満足のいくものであることを確認したら、wの文字を押して変更内容をドライブに書き込みます。

パーティションが/dev/sdbに書き込まれました。何が起こったか見てみましょう。

sudo fdisk /dev/sdb

pの文字を押してパーティションテーブルを印刷すると、ドライブにパーティションがリストアップされていることが確認できます。このドライブの最初のパーティションなので、/dev/sdb1 と呼ばれ、2番目のパーティションは /dev/sdb2 と呼ばれ、以下同様です。

パーティションに変更を加えたくないので、qの字を押して終了してください。

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

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

sudo mkfs -t ext4 /dev/sdb1

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

新しいドライブのインストール

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

これは、とても良いことだと思います。これは、新しいドライブにデータをコピーするための一時的なマウントポイントに過ぎないのです。mountコマンドを使用して、/dev/sdbの第1パーティションのファイルシステムをat/mntにマウントすることにします。

sudo mount /dev/sdb1 /mnt

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

cd /mnt

はい、できます。では、どんなものがあるか見てみましょう。

ls -ahl

デフォルトの "lost+found "ディレクトリは、新しいファイルシステムには必要ないので、削除してもよいでしょう。

sudo rm -rf lost+found

メインフォルダをコピーしているところ

古いホームディレクトリから新しくインストールされたファイルシステムにすべてをコピーする必要があります。r (recursive) と p (preserve) オプションを使用すると、すべてのサブディレクトリがコピーされ、ファイルの所有権、パーミッション、その他の属性が保持されます。

sudo cp -rp /home/* /mnt

コピーが完了したら、ls を使って新しいファイルシステム上の期待通りの場所にデータがあることを確認します。つまり、/mntがホームディレクトリの場合、すべてが正しく存在しているかどうか?

ls ls dave

この記事で見たテスト機で行ったよりも、もう少し徹底した方がいいかもしれません。セーフティネットとして、お客様が削除しても大丈夫と確信されるまで、旧/ホームディレクトリの名前を変更し、保管します。

sudo mv /home /home.orig

空のホームディレクトリを新規に作成します。

sudo mkdir /home

この新しい空のホームディレクトリを、新しいドライブ上のファイルシステムのマウントポイントとして使用することにします。mntからアンマウントして、/homeに再マウントする必要があります。umountコマンドは "u "の後に "n "がないことに注意

しかし、その前に、ルートディレクトリに切り替え(cd/を使用)、loadまたはunloadの場所に含まれるディレクトリにいないことを確認します。

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

関連:Linuxのディレクトリ構造、説明

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

では、/dev/sdb1パーティションの属性を見てみましょう。

df /dev/sdb1

ファイルシステムの名前、パーティションのサイズ、パーティションで使用されているスペースと使用可能なスペース、そして重要なのは、ファイルシステムがインストールされている場所が表示されることです。これで/homeディレクトリになりました。つまり、以前の/homeディレクトリと同じように参照できるはずです。

ファイルシステム内の任意の場所に移動したら、~tilde ショートカットで /home に戻せるはずです。

cd / cd ~ pwd ls cd /home ls cd dave ls ls -a

explicit コマンドと ~shortcut を使って、ファイルシステムを /home まで行ったり来たりすることができます。存在すると予想されるフォルダ、ファイル、ドットファイル。すべて順調のようです。

何か足りないものがあれば、/home.orig ディレクトリからコピーすれば、ファイルシステムのルートディレクトリにあるものにアクセスすることができるのです。でも、すべて問題なさそうです。

あとは、/dev/sdb1 をコンピュータを起動するたびに自動的にインストールするようにします。

fstabの編集

fstab "ファイルには、システム起動時に読み込まれるファイルシステムの記述があります。変更が加えられる前に、**バックアップコピーを作成し、問題が発生した場合に戻せるようにします。

sudo cp /etc/fstab /etc/fstab.orig

これで、fstabファイルを編集することができます。

sudo gedit /etc/fstab

新しい/homeディレクトリをマウントするために、ファイルの一番下に一行追加する必要があります。ドライブやパーティションの識別子がこの例と異なる場合は、ここで示した /dev/sdb1 をこれらの識別子に置き換えてください。

  • 行頭にパーティション名を入力し、Tabキーを押す。
  • ロードポイント/homeと入力し、Tabキーを押す。
  • filesystem description ext4 と入力し、Tabキーを押します。
  • ロードオプションのデフォルト値を入力し、Tabキーを押します。
  • ファイルシステムダンプのオプションに0を入力し、Tabキーを押します。
  • ファイルシステムチェックオプションに数字0を入力します。

fstab ファイルを保存します。

リブートを選択

すべてが計画通りに進んでいること、新しい/homeディレクトリにシームレスに接続していることを確認するために、再起動する必要があります。

そうでない場合でも、元の/homeディレクトリとfstabファイルというセーフティネットにアクセスすることができ、必要に応じて復元することができます。注意事項があるため、/homeディレクトリとfstabファイルをコピーすれば、簡単に起動前の状態に戻すことができます。

sudo reboot now

関連:コマンドラインを使ったLinuxの再起動・シャットダウン方法

最終検査

システムが再起動したとき、/homeディレクトリが実際に新しいハードディスクにあること、そしてシステムがどうにか(奇跡的に)古い/homeディレクトリを使うように戻っていないことを確認しましょう。

df /dev/sdb1

よかった、/homeにインストールされた。ミッション達成。

古い/ホームディレクトリの安全なコピーがもはや必要でないことが完全に確認された後、それを削除することができます。

cd / sudo rm -rf home.orig/

もちろん、旧/ホームから新/ホームにコピーされていないものがあることに気づいたら、事前に作成したバックアップから取り出すことができます。

ホーム・スイート・ホーム

これで、/homeディレクトリを他のオペレーティングシステムパーティションから切り離したので、オペレーティングシステムを再インストールしても、データは影響を受けません。fstabファイルを編集して、/homeに2台目のドライブをインストールできるようにすればよいのです。

ドットファイルはすべて/homeディレクトリにあるため、各種アプリケーションを起動した際に、設定や環境設定、データなどをすべて見つけることができます。

再インストールの手間を軽減し、アップグレードのリスクも軽減します。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ