
질문은 아주 간단합니다. 한동안 답변을 검색했지만 정확한 답변을 얻었는지 확실하지 않습니다. 실수로 인해 내 드라이브와 데이터가 쉽게 파괴될 수 있으므로 상황을 명확히 하고 싶습니다.
/dev/sda
저는 각각 약 125GB 크기의 두 개의 파티션이 있는 250GB SSD( )에서 Ubuntu를 실행하고 있습니다 . sda1은 에 마운트 /
되고 sda2는 에 마운트됩니다 /home
. 이제 모든 것을 새로운 1TB SSD로 옮기고(예를 들어 /dev/sdc
) 각 드라이브를 500GB로 확장하고 싶습니다. 몇 가지 연구 끝에 저는 두 가지 접근 방식을 제안했습니다.
dd if=/dev/sda of=/dev/sdc
전체 디스크를 복제하려면 수행하십시오 . 그런 다음 두 개의 125GB 파티션과 일부 할당되지 않은 공간이 있는 부팅 가능한 디스크를 얻어야 합니다. 오른쪽? 그런 다음 gparted와 같은 것을 사용하여 sdc1 및 sdc1의 크기를 500GB로 조정해야 합니다. 크기를 조정하는 데 시간이 오래 걸릴 수 있습니다. 그렇죠?두 번째 접근 방식은 먼저 새 드라이브를 포맷하고 500GB 파티션 두 개를 만드는 것입니다. 두 파티션을 모두 복제
dd if=/dev/sda1 of=/dev/sdc1
하고dd if=/dev/sda2 of=/dev/sdc2
복제 하십시오 . 이 시점에서 이 디스크는 부팅할 수 없어야 합니다. 그렇죠? 부팅 가능하게 만들려면 부트로더를 새 부트로더에 복사해야 합니다. 필요한 것은 처음 446바이트뿐입니다.dd if=/dev/sda of=/tmp/mbrsda.bak bs=512 count=1
그러면 나는 할 수 있다dd if=/tmp/mbrsda.bak of=/dev/sdc bs=446 count=1
. 이렇게 하여 부팅 가능하게 만들고 500GB+500GB의 파티션 테이블도 보존했습니다. 이 접근 방식을 사용하면 디스크 크기를 조정할 필요가 없습니다.
두 가지 접근 방식 모두 파일에서 UUID를 변경해야 합니다 /etc/fstab
. 복제 후 먼저 새 드라이브를 마운트한 sudo mount /dev/sdc1 /mnt/
다음 파일을 편집 하면 됩니다 /mnt/etc/fstab
.
이 모든 것이 맞습니까?
여기에서 내 기존 드라이브를 망칠 위험이 있나요?
답변1
dd
( d
isk estroyer라고도 함)을 사용할 때마다 d
데이터가 엉망이 될 가능성이 있습니다. dd
실수로 이전 드라이브 위에 새 드라이브를 쓰는 경우에 대한 보호 장치가 없습니다. 올바른 작동을 유지하는 유일한 방법은 명령을 올바르게 입력하고 소스와 대상을 혼동하지 않도록 매우 주의하는 것입니다. if=
그리고 of=
단지 하나의 작은 잘못 입력된 키 입력이 서로 떨어져 있을 뿐입니다!
또 다른 문제는 dd
속도가 느리고 대상 SSD에 불필요한 마모를 초래한다는 것입니다. 대부분의 파티션은 일반적으로 활용도가 100%에 가깝지 않습니다. dd
사용 가능한 공간이 많은 파티션을 복사하는 데 를 사용하면 해당 파티션의 모든 바이트가 복사됩니다. 실제로 할당된 데이터가 포함되지 않은 바이트도 마찬가지입니다.
내 시스템이라면 다음과 같이 할 것입니다.
- 나중에 새 SSD의 파티션 테이블을 설정할 때 참조할 수 있도록 기존 SSD의 파티션 테이블의 스크린샷을 찍어두세요.
- 새 SSD를 컴퓨터에 연결하고 기존 SSD를 분리합니다. 기존 SSD를 연결 해제된 상태로 유지하면 잠재적으로 파괴적인 작업을 수행하는 동안 귀중한 데이터를 파괴할 수 없습니다.
- Linux 라이브 모드에서 Ubuntu 설치 USB 썸 드라이브로 부팅합니다. 이전 시스템이 MBR을 사용하는 것처럼 들리므로 BIOS가 항상 UEFI 모드 대신 레거시/MBR 모드에서 썸드라이브를 부팅하는지 확인하세요. 내 가정이 유효하지 않은 경우 대신 BIOS가 UEFI 모드에서 썸드라이브를 부팅하는지 확인하세요. 여러 가지를 섞으면 나중에 grub을 제대로 설치하기가 훨씬 더 어려워집니다.
gparted
원하는 파티션 테이블로 새 SSD를 설정하고 파일 시스템을 포맷하는 데 사용됩니다 . 모든 것을 이전 SSD의 파티션 테이블과 동일하게 유지하십시오(파티션 크기 및 UUID 제외). 기존 SSD와 마찬가지로 루트 파일 시스템을 //
로 표시하는 것을 잊지 마세요 .activebootable- 이제 위험한 파티션 편집 작업이 모두 완료되었으므로 컴퓨터를 안전하게 종료하고 컴퓨터에 연결된 기존 SSD를 추가할 수 있습니다.
- 이번에는 두 드라이브를 모두 연결하여 Linux 라이브 USB 썸 드라이브를 다시 부팅합니다. 기존 SSD에서 부팅하지 마세요. 깨끗한 복사본을 만들려면 해당 시스템을 비활성 상태로 유지해야 합니다.
부팅되면 터미널을 열고 다음 명령을 통해 작업을 시작하여 기존 SSD의 데이터를 새 SSD로 복사하세요. 를 사용하는 것과 달리 이전 파일 시스템 위에 빈 파일 시스템을 복사하여 아무것도 파괴할 수 없기 때문에
dd
이 명령은 훨씬 더 오류 방지가 가능합니다. 이 경우에는 복사된 것이 없습니다!cp
또한 기존 SSD를 "읽기 전용" 모드로 마운트하여 기존 SSD를 수정할 가능성을 방지할 수 있습니다.mkdir oldroot newroot oldhome newhome sudo mount -o ro /dev/sda1 oldroot sudo mount -o ro /dev/sda2 oldhome ls oldroot ls oldhome
이전 데이터를 볼 수 있는지 확인하세요. 보이는 것이 빈 파일 시스템뿐이라면 아마도 잘못된 "/dev/sdXX" 장치를 가지고 있는 것일 수 있습니다.
sudo mount -o noatime /dev/sdc1 newroot sudo mount -o noatime /dev/sdc2 newhome ls newroot ls newhome
대상으로 빈 파일 시스템만 표시되는지 확인하십시오. 모든 것이 양호하다면 다음 명령을 실행하여 모든 권한/소유권/SELinux 컨텍스트 설정을 유지하면서 모든 파일을 복사하십시오.
sudo cp -Rfax oldroot/* newroot/ sudo cp -Rfax oldhome/* newhome/
완료되면 모든 것을 마운트 해제하고 캐시된 쓰기를 영구 저장소에 동기화합니다.
sudo umount oldroot sudo umount oldhome sudo umount newroot sudo umount newhome sync
이제 기존 SSD를 안전하게 종료하고 연결을 끊을 수 있으므로 새 SSD를 부팅 가능하게 만드는 동안 SSD에 있는 어떤 것도 파괴할 수 없습니다.
새 SSD만 연결된 상태에서 Linux 라이브 모드에서 USB 썸 드라이브를 사용하여 컴퓨터를 부팅합니다. 터미널을 열고 다음 명령을 통해 작업을 시작하세요.
mkdir newroot sudo mount -o noatime /dev/sda1 newroot sudo chroot newroot /bin/bash mount -t devtmpfs udev /dev mount -t proc proc /proc mount -t sysfs sysfs /sys nano -w /etc/fstab
fstab
이제 UUID 번호가 새 SSD에 있는 것과 일치하도록 파일을 수정해야 합니다 .gparted
파티션 테이블을 열어서 새로운 UUID가 무엇인지 알아낼 수 있습니다. 완료되면 CTRL-X를 누르고 fstab 변경 사항을 디스크에 저장합니다.update-grub grub-install /dev/sda
모든 것이 제대로 작동한다면 grub을 구성하고 새 SSD의 MBR에 설치해야 합니다. grub을 설치한 후 종료하기 전에 chroot 환경 내에서 이전에 마운트한 모든 항목을 마운트 해제해야 합니다. 그렇지 않으면 Ubuntu를 종료할 때 Linux 파티션을 깔끔하게 마운트 해제하는 데 어려움을 겪게 됩니다.
umount /sys umount /proc umount /dev exit sudo umount newroot sync
그리고 거기에 있습니다! 새 SSD가 부팅 가능하고 이제 모든 것이 좋아지기를 바랍니다.
답변2
답변3
내 경험을 공유하기 위해 여기에 게시하고 게시된 질문에 답변하기 위해 이 글을 게시합니다. 그러나 내 목표는 OP에서 명시된 목표와 동일했습니다.
저는 512GB SSD에서 이중 부팅 시스템으로 시작했습니다. 여기에는 Microsoft가 예약한 EFI 파티션, Windows 시스템 파티션, Linux 시스템 파티션, Linux 홈 파티션 및 복구 파티션 등 두 개의 파티션이 포함되어 있습니다.
내 목표는 모든 것을 2TB SSD로 마이그레이션하는 것이었습니다.
Ubuntu Live-USB에서 컴퓨터를 부팅하고 dd
. USB를 통해 연결할 수 있는 NVMe SSD용 소형 인클로저를 구입했습니다.
새 SSD는 포맷이나 파티션, 아무것도 없이 완전히 그대로 사용되었습니다.
복제 후 dd
SSD를 교체했습니다. 즉, 컴퓨터에서 소형 SSD를 제거하고 새 SSD를 설치했습니다.
Linux는 문제 없이 부팅되었지만 Windows에서는 일부 진단/복구를 실행했지만 아무 결과도 나오지 않았습니다.
다음으로 Ubuntu Live-USB에서 시스템을 다시 부팅하고 gparted
.
gparted
복구를 제안한 GPT 테이블에 일부 오류가 보고되었습니다. 복구 옵션을 선택하고 기존 파티션의 크기를 조정하고 이동하는 작업을 진행했습니다. 이 모든 작업이 완료된 후 놀랍게도 Windows도 오류 없이 부팅되었습니다.
나는 이 전체 복제 작업이 그렇게 순조롭게 진행되었다는 사실에 기분 좋게 놀랐습니다.
이번 주에 다시 이중 부팅 시스템을 사용하여 다시 수행했습니다.
- Live-USB를 사용하여 소형 SSD가 내부에 있는 컴퓨터를 시작합니다.
- 새 SSD를 인클로저에 장착하고 연결합니다.
- 다음을 사용하여 디스크를 복사합니다.
dd
dd
완료 되면gparted
GPT 테이블 복구를 시작하고 파티션 크기 조정 및 이동- 컴퓨터를 종료하고 SSD를 교체합니다.
- 두 OS 모두 정상적으로 부팅되었습니다.
몇 가지 참고사항:
- 기존 SSD에 Windows 파티션이 포함된 경우 BitLocker가 제대로 비활성화되어 있는지 확인하세요.
dd
진행 상황을 표시하는 옵션을 사용하여 실행하는 것을 잊은 경우 다음을 참조하세요.이 답변. 신호를 보내dd
작업을 방해하지 않고 진행 정보를 표시할 수 있습니다.