2番目のパーティションをルートに結合する

2番目のパーティションをルートに結合する

パーティションからのデータが/dev/sda1自動的に/dev/vdaパーティションに「オーバーフロー」するようにしたいです。そこで、私の質問は、2 つのパーティションを結合して/138 GB のサイズにするにはどうすればよいかということです。

root@vps:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.8G     0  3.8G   0% /dev
tmpfs           780M   34M  747M   5% /run
/dev/sda1        39G  7.7G   32G  20% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs           780M     0  780M   0% /run/user/1000
/dev/vda         99G   60M   94G   1% /mnt/vda

利用可能なディスクは次のとおりです。

root@vps:/# fdisk -l
Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 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 /dev/sda: 40 GiB, 42949672960 bytes, 83886080 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
Disklabel type: dos
Disk identifier: 0xffcebafc

Device     Boot Start      End  Sectors Size Id Type
/dev/sda1  *     2048 83886046 83883999  40G 83 Linux

私はこのことについてあまり知識がないので、適切な質問をしないかもしれません。

答え1

2つの物理デバイスを扱っている場合、物理レベルでパーティションを結合することはできません。ただし、LVM(論理ボリュームマネージャ)を使用して、複数のパーティションで構成される仮想ブロックデバイスを作成できます。本物ブロックデバイス。これは約 138 GB のパーティションをシミュレートします。BTRFS を使用してファイルシステム レベルで同様の操作を行うこともできますが、LVM で実行できることは次のとおりです。

注: LVM サポートとは別に、システムには LVM から起動する機能が必要です。これはブートローダーとその構成によって異なります。

LVMへの変換

/dev/sda1当然ですが、このプロセスによりシステムが消去されるため、まずシステムをバックアップしてください/dev/vda。次に、Live CD/USB ドライブから Linux を起動して...

  1. 実行するwipefs /dev/vdaとすぐにパーティションがクリアされます。
  2. 実行してLVM物理ボリュームを作成します。pvcreate /dev/vda
  3. ボリューム グループを作成します。vgcreate vg0 /dev/vda
  4. ルート ファイルシステムの論理ボリュームを作成します。80 lvcreate -L80G -n rootfs vg0GB のサイズについては心配しないでください。これは後で増やす予定です。
  5. 論理ボリュームにファイルシステムを配置します (例: ext4):mkfs.ext4 -L ROOTFS /dev/vg0/rootfs
  6. 新しいファイルシステムをマウントして、次のようにします... /mnt/newroot:mount -L ROOTFS /mnt/newroot
  7. これをライブ CD から実行するので、実際の CD を/どこかにマウントする必要があります (例: /mnt/oldroot)。mount /dev/sda1 -o ro /mnt/oldroot
  8. コピー古いルートどうなるか新しいルート:cp -aR /mnt/oldroot/* /mnt/newroot/

今のところ、 にあったものがすべて失われたこと以外/dev/vda、取り返しのつかないことは何も起きていません。したがって、これはブートローダー (例: GRUB2) をセットアップして起動できるようにし、起動できることを確認する絶好の機会です/dev/vg0/rootfs。 df 出力が次のようになることを除けば、すべて同じであるはずです。

root@vps:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.8G     0  3.8G   0% /dev
tmpfs           780M   34M  747M   5% /run
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs           780M     0  780M   0% /run/user/1000
/dev/vg0/rootfs  99G  7.7G   92G   ?% /

ここまで来たら、次の手順に進んで LVM の魔法の力を活用することができます。EXT4 などの一部のファイルシステムでは、ライブ CD を必要とせず、ライブ システムで次の手順を実行できます。

  1. 古いルートを消去します。wipefs /dev/sda1
  2. 新しい物理ボリュームを作成します。pvcreate /dev/sda1
  3. 新しい物理ボリュームを LVM に追加します。vgextend vg0 /dev/sda1

この時点で、2 つのパーティションは LVM で使用可能ですが、まだ使用されていません。両方のパーティション (実際には現在は LVM 物理ボリューム) を で使用するには/、使用可能なすべてのスペースを使用するようにルート論理ボリュームを拡張します。

  1. 論理ボリュームを拡大します。lvextend -l 100%FREE /dev/vg0/rootfs
  2. ファイルシステムを拡大します:resize2fs /dev/vg0/rootfs

これにより、ルート ファイルシステムのサイズは約 138 GB になります :)

関連情報