別のドライブやパーティションに移動するには?

別のドライブやパーティションに移動するには?

現在の場所に収まらないプロジェクトをインポートするには、現在の場所よりも大きいパーティションに移動する必要があります。また、Windowsの仮想マシンでLinuxを実行しています。

jack@ubuntu:~$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME   FSTYPE   SIZE MOUNTPOINT LABEL
sda              20G
ââsda1 ext4    15.7G /
ââsda2            1K
ââsda5 swap     4.3G [SWAP]
sdc              40G
ââsdc1 ext4      40G            work
sdb              20G
ââsdb1 ext4      20G /mnt/disk
jack@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000750e0

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    32956415    16477184   83  Linux
/dev/sda2        32958462    41940991     4491265    5  Extended
/dev/sda5        32958464    41940991     4491264   82  Linux swap / Solaris

ベストアンサー1

/パーティションを最後に配置すると、sda簡単なアップグレードプロセスが実行されます。

  1. 仮想マシンをシャットダウンし、仮想マシン管理インターフェイスでRAWディスクドライブのサイズを変更します。

  2. シングルユーザーモードで起動し、最後のパーティションのサイズを変更して新しいスペースに拡張します。

  3. ファイルシステムのサイズ変更

2つの異なるパーティション間に挟まれたパーティションでこれを行うと、貴重なものよりも多くの問題が発生する可能性があります。

したがって、パーティションの一部を/新しいディスクに移動することをお勧めします。

  1. 仮想マシンをシャットダウンし、別の仮想ディスクを追加します。

    新しいディスクに移動する既存のコンテンツ/と残りのスペースを収容できるようにサイズを変更します。 16GiBのうち14GiBを使用していて、10GiB/だけを移動しようとしているとしましょう。/home現在のスペースを2倍にするには、新しいドライブを20GiBにすることができます。

    /binコアオペレーティングシステムディレクトリ(、、、、、、、/bootおよび/etcほとんど/root)は移動したくありません。/usr別のディスクに移動するのは安全です。/usr/share/usr/local

  2. 可能であれば、シングルユーザーモードでバックアップを開始します。 (これにより、バックグラウンドジョブがあまり実行されない場合、後で作業が簡単になります。)

    /dev次に、新しいディスクがどのノードにあるかを調べます。持つさまざまな方法行ってこれをやってみてください。可能性は最も高いですが、/dev/sdbたとえば/dev/sdc、以前にマップされたオプティカルドライブの後ろに配置することもできます。

    /dev/sdb説明のためにここでは仮定をします。

  3. partedこの新しい仮想ディスクを分割するために使用されます。

    # parted /dev/sdb
    (parted) mklabel gpt
    (parted) mkpart ext2 1 -1
    (parted) quit
    

    これは仮想ディスク全体を占有します。これにより、後でディスク容量が再び不足する場合は、上記の簡単なサイズ変更プロセスを使用できます。

    関連していない多数のディレクトリ(たとえば、、など/home/var/usr/local移動する場合は、1つの大容量ディスクを分割するよりも、各ディレクトリに対して別々の仮想ディスクを作成することをお勧めします。パーティション化は、物理ディスクの世界で許可されているハッキングの種類です。仮想マシンを使用すると、複数の独立したハードドライブにかかるコストを削減できます。

  4. 一時的な場所に新しいファイルシステムを作成してマウントします。私は通常それらをこう呼んでいます/mnt/newhome

    # mkfs.ext4 /dev/sdb1
    # mkdir -m 400 /mnt/newhome
    # mount /dev/sdb1 /mnt/newhome
    
  5. 移行するツリーの現在の内容をコピーし、コピー権限を確認します。これを行う方法はいくつかあります。

    # cd /home
    # find . -print | cpio -pd /mnt/newhome
    OR
    # cp -aR * /mnt/newhome
    OR
    # rsync -a * /mnt/newhome
    
  6. /mnt/newhomeコンテンツが信頼できることを確認してください。たとえば、df -hとほぼ同じ値を表示しますか?du -h /home

  7. まだ起動していない場合は、シングルユーザーモードで起動します。

  8. 既存のファイルシステムを別の場所に移動し、その上に新しいファイルシステムを配置します。

    # cd /
    # mv home oldhome
    # mkdir -m 400 home
    # umount /mnt/newhome
    # mount /dev/sdb1 /home
    # chmod 755 home
    # chown root.root home
    

    最後の2つのコマンドは単なる例です。新しいマウントポイントに、古いマウントポイントと同じ所有者、グループ、および権限を付与します。 (この最上位ディレクトリに対する権限を取得するためにコマンドをコピーする必要はありません。)

  9. シングルユーザーモードのプロンプトが表示されたら、exitマルチユーザーモードで起動し続けます。 (またはたとえばinit 5、通常の実行レベルが5の場合)、すべてが新しいファイルシステムで機能していることを確認します。

    (このテストを実行するために再起動しないでください。新しいファイルシステムはまだ自動的にマウントされていません。)

  10. パーティションを正常に移動したことに満足したら、/etc/fstab新しいパーティションを指すように調整してください。

    (この回答の範囲を超えています。具体的な内容はLinuxごとに異なり、通常* ixの違いははるかに大きくなります。)

  11. 正常に再起動してください。もう一度確認してください。これはすべてうまくいきますか?古いファイルシステムではなく、新しいファイルシステムがインストールされていることを確認してください。

  12. すべてが正しく移動されインストールされていることを確認したら、以前のコピーが占有していたスペースを確保してくださいrm -rf /oldhome

。 :)移動するファイルシステムが複数ある場合GOTO 2(またはすべての新しい仮想ディスクを一度に追加しない場合はステップ1)

希少な仮想ディスク(VMwareなど)の設定方法を知っているVMシステムでは、無駄なスペースを心配する必要はありません。現在使用されていないスペースを回収するには、一般的な「縮小」プロセスに従うだけです。

他の改善もあります。たとえば、オペレーティングシステムがパーティション名またはUUIDの代わりにディスクラベルを使用している場合は、-L /homeコマンドに同様の名前を指定する必要があります。mkfs.ext4/etc/fstab

おすすめ記事