두 번째 파티션을 루트에 결합

두 번째 파티션을 루트에 결합

/dev/sda1파티션의 데이터가 자동으로 파티션으로 "오버플로"되기를 원합니다 /dev/vda. 그래서 내 질문은 다음과 같습니다. 2개의 파티션을 결합하여 /크기가 138GB가 되도록 하려면 어떻게 해야 합니까?

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(논리 볼륨 관리자)을 사용하여 여러 개의 볼륨으로 구성된 가상 블록 장치를 생성할 수 있습니다.진짜블록 장치. 이는 ~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. 라이브 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인 루트 파일 시스템이 제공됩니다. :)

관련 정보