두 번째 파티션을 루트 디렉터리에 병합

두 번째 파티션을 루트 디렉터리에 병합

파티션의 데이터가 해당 파티션 /dev/sda1에 자동으로 "유출"되기를 원합니다. /dev/vda그래서 내 질문은 다음과 같습니다: 크기가 /138GB가 되도록 2개의 파티션을 병합하는 방법은 무엇입니까?

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

두 개의 물리적 장치를 다루는 경우 물리적 수준에서 파티션을 결합할 수 없습니다. 그러나 LVM(Logical Volume Manager)을 사용하여 여러 개의 가상 블록 장치로 구성된 가상 블록 장치를 생성할 수 있습니다.진짜블록 장치. 그러면 ~138GB 파티션이 시뮬레이션됩니다. 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. 루트 파일 시스템에 대한 논리 볼륨을 생성합니다 lvcreate -L80G -n rootfs vg0. 80GB 크기에 대해 걱정하지 마십시오. 나중에 늘어날 것입니다.
  5. 파일 시스템을 논리 볼륨(예: ext4)에 배치합니다.mkfs.ext4 -L ROOTFS /dev/vg0/rootfs
  6. 새 파일 시스템을 마운트합니다.../mnt/newroot:mount -L ROOTFS /mnt/newroot
  7. Live 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

이 시점에서 이 두 파티션은 LVM에서 사용할 수 있지만 아직 사용되지는 않습니다. 두 개의 파티션(실제로는 현재 LVM 물리 볼륨임)을 사용하려면 /루트 논리 볼륨을 확장하여 사용 가능한 모든 공간을 사용하십시오.

  1. 논리 볼륨 확장:lvextend -l 100%FREE /dev/vg0/rootfs
  2. 파일 시스템을 확장합니다.resize2fs /dev/vg0/rootfs

그러면 크기가 약 138GB인 루트 파일 시스템이 제공됩니다. :)

관련 정보