파티션의 데이터가 해당 파티션 /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를 부팅하고...
- 파티션을 빠르게 지우려면 실행하세요
wipefs /dev/vda
. - 다음을 실행하여 LVM 물리 볼륨을 생성합니다.
pvcreate /dev/vda
- 볼륨 그룹을 생성합니다:
vgcreate vg0 /dev/vda
- 루트 파일 시스템에 대한 논리 볼륨을 생성합니다
lvcreate -L80G -n rootfs vg0
. 80GB 크기에 대해 걱정하지 마십시오. 나중에 늘어날 것입니다. - 파일 시스템을 논리 볼륨(예: ext4)에 배치합니다.
mkfs.ext4 -L ROOTFS /dev/vg0/rootfs
- 새 파일 시스템을 마운트합니다.../mnt/newroot:
mount -L ROOTFS /mnt/newroot
- Live CD에서 이 작업을 수행하므로 실제 CD를 다음과 같은 곳에 설치해야 합니다
/
. /mnt/oldroot:mount /dev/sda1 -o ro /mnt/oldroot
- 복사오래된 뿌리무엇이 될 것인가?새로운 뿌리:
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가 필요하지 않습니다.
- 오래된 뿌리 지우기:
wipefs /dev/sda1
- 새로운 물리 볼륨을 생성합니다:
pvcreate /dev/sda1
- LVM에 새 물리 볼륨을 추가합니다.
vgextend vg0 /dev/sda1
이 시점에서 이 두 파티션은 LVM에서 사용할 수 있지만 아직 사용되지는 않습니다. 두 개의 파티션(실제로는 현재 LVM 물리 볼륨임)을 사용하려면 /
루트 논리 볼륨을 확장하여 사용 가능한 모든 공간을 사용하십시오.
- 논리 볼륨 확장:
lvextend -l 100%FREE /dev/vg0/rootfs
- 파일 시스템을 확장합니다.
resize2fs /dev/vg0/rootfs
그러면 크기가 약 138GB인 루트 파일 시스템이 제공됩니다. :)