상상하다
/boot
내 컴퓨터에는 및 / 파티션이 있는 SSD(250GiB)가 있습니다 /
./home
더 큰 새로운 M.2 NVME 드라이브(1TiB)로 옮기고 싶습니다.
제가 사용하는 배포판은 Fedora 37입니다.
내 /etc/fstab
모습은 다음과 같습니다.
#
# /etc/fstab
# Created by anaconda on Tue Jun 28 05:26:41 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=5ed1bf26-ab2f-4e5a-ab5e-d2d56f5f3803 / btrfs subvol=root,compress=zstd:1 0 0
UUID=a14f6d42-3a64-4f96-856c-51e0f4344481 /boot ext4 defaults 1 2
UUID=5ed1bf26-ab2f-4e5a-ab5e-d2d56f5f3803 /home btrfs subvol=home,compress=zstd:1 0 0
lsblk
다음과 같습니다.
NAME KNAME PATH TYPE MODEL STATE RO RM HOTPLUG FSTYPE FSVER LABEL PTTYPE PARTTYPE PARTTYPENAME PARTLABEL PARTFLAGS SIZE FSSIZE FSAVAIL
sda sda /dev/sda disk Samsung SSD 850 EVO 250GB running 0 0 0 dos 232.9G
├─sda1 sda1 /dev/sda1 part 0 0 0 ext4 1.0 dos 0x83 Linux 0x80 1G 973.4M 608.1M
└─sda2 sda2 /dev/sda2 part 0 0 0 btrfs fedora_localhost-live dos 0x83 Linux 231.9G 231.9G 108.3G
zram0 zram0 /dev/zram0 disk 0 0 0 7.5G
노트:둘 다 동일한 파티션의 하위 볼륨 /
입니다 ! /home/
그들은 별도의 파티션 자체에 있지 않습니다.
질문
업무 시간에 지장을 최소화하려면 어떻게 해야 합니까? 라이브 배포판을 시작하고 파티션을 옮겨야 한다고 생각 gparted
하지만 UUID가 현재 설정 전체에 분산되어 있기 때문에 문제가 발생할 수 있다고 생각하고 이것이 선호되는 접근 방식인지 잘 모르겠습니다.
로서보너스, 내 하드 드라이브에 현재 RAM 용량(8GB)보다 큰 스왑 파티션을 갖고 싶다고 생각했습니다. 현재는 ZRAM만 사용하고 있지만 컴퓨터를 안전하게 절전 모드로 전환할 수 있도록 현재 RAM 용량보다 큰(아마 두 배 정도) 스왑 파티션이 있으면 좋겠습니다. 또한 내 VM에 더 많은 스왑이 있으면 좋을 것 같은데 현재 2개 이상의 VM을 실행하는 데 어려움을 겪고 있습니다.
대략적으로 다음과 같이 접근해야 할 것 같습니다.
- 현재 레이아웃을 1TB 드라이브에 복제하고 싶지만 어떤 도구를 사용하는 것이 가장 좋은지 확신할 수 없어 드라이브의 많은 부분을 비워 둡니다.
- 그런 다음 할당되지 않은 공간 끝에 스왑 파티션을 만듭니다.
/dev/sda2
그런 다음 전체 드라이브 등을 사용할 수 있도록 파티션을 확장합니다 .
절차 순서(물론 0단계는 백업 생성), 어떤 도구를 사용해 봐야 하는지 등을 알려주시기 바랍니다.
답변1
가장 간단한 방법은 다음과 같습니다.
- gparted와 같은 라이브 ISO 실행
- 베어 메탈 복사 250G SATA SSD - NVMe SSD
- SATA SSD를 분리하세요
- NVMe에서 부팅
- 모든 것이 여전히 작동하는지 확인
- 파티션 크기를 최대로 조정
btrfs filesystem resize max /
선택사항이지만 권장되는 추가 단계:
- 라이브 ISO를 다시 사용하려면 재부팅하세요.
- SSD를 다시 삽입해 보세요.
blkdiscard
SATA SSD- 새로운 기능으로 SATA SSD 포맷
중요한 질문:
- 복제 후 두 디스크가 모두 연결된 동안에는 파일 시스템을 마운트하지 마십시오. (시작하면 파일 시스템이 마운트됩니다!)
- 디스크를 복제하는 방법은 중요하지 않습니다. 를 사용해도 됩니다
cp
. 중요한 것은 1:1 복사본이라는 것입니다. /dev/disk/by-id/
CLI에 디스크를 입력해야 할 때마다 node.js를 사용하세요. 오류가 덜 발생하도록 만드세요.
답변2
또는
- 복제된 파일을 위한 로컬 공간이 충분하지 않은 경우 다른 대상 디스크를 추가하십시오.
sudo mkdir /media/disk sudo mount /dev/sdb1 /media/disk sudo chmod ugo+wx /media/disk
여유 공간 지우기https://unix.stackexchange.com/a/506097/518235
그런 다음 사용된 공간만 복제합니다.
sudo dd if=/dev/xvda bs=16M conv=sparse,noerror | pv | sudo pigz -c > /media/disk/TargetImg.dd.gz
pv가 없으면 dd 옵션을 선택할 수 있습니다.status=progress
- 로컬 전송(8 참조) 또는 원격 대상에 cp/rsync를 사용하십시오.
sshpass -p "xxxxxxxxx" scp TargetImg.dd.gz [email protected]:/home/fedora | pv -lep -s 42
- 복구(로컬 또는 원격):
sudo pigz -cdk TargetImg.dd.gz | pv | sudo dd of=/dev/sdb bs=16M
- 또는 디스크 형식을 다음과 같은 선택된 가상 머신으로 변환하도록 선택하십시오.
sudo dnf install qemu sudo qemu-img convert -O vmdk TargetImg.dd TargetImg.vmdk -p
- 예를 들어 ESXi 호스트에서 선택적 HD 크기 조정:
vmkfstools -X 100G "TargetImg.vmdk"
- 첫 번째와 두 번째 또는 기존 드라이브와 새 드라이브 간의 로컬 동기화도 가능합니다.
sudo rsync -aHAXS \ --filter='-x security.selinux' \ --no-compress \ --no-inc-recursive \ --stats \ --numeric-ids \ --info=progress2 \ /media/disk/ \ /
출처: stackoverflow 등