내 노트북의 하드 드라이브에 Lubuntu 17.04가 설치되어 있습니다. 이제 교체품과 거의 같은 크기의 SSD를 구입했는데, SSD는 비어 있고 손상되지 않았습니다.
이제 디스크를 전환하고 기본적으로 HDD에 이미 있는 것과 동일한 항목을 SSD로 옮기고 싶습니다. 그리고 더 이상 조정하지 않고 Linux를 실행하고 싶습니다(UUID /etc/fstab
문제 제외).
어떻게 해야 하나요?
- 추가 컴퓨터의 도움이 필요하지 않습니까?
- 추가 컴퓨터에 대한 도움이 필요하십니까?
노트:
- 필요한 경우 부팅 가능한 USB 스틱을 생성할 수 있습니다.
- 필요한 경우 CD/DVD 리더를 사용할 수 있습니다.
- HDD를 33% 사용하므로 데이터를 담을 수는 있지만 HDD 용량이 조금 더 큽니다.
- HDD의 일부 섹터가 위험 상태에 있을 수 있습니다(그러나 현재는 Linux가 부팅되고 작동함).
- 내가 아는 한 HDD에는 파티션이 하나만 있습니다. 나만 유일한 사용자이고 일부 공용 서버 등으로 사용되지 않는다는 점을 고려하면 SSD에 파티션을 유지할 수도 있습니다.
답변1
설치를 새 디스크로 전환하거나, 디스크를 복제하거나, 내용을 복사하고 시스템을 복구하는 두 가지 기본 방법(예: 부트로더, fstab 항목)이 있습니다. 두 방법 모두 장점과 단점이 있습니다.
두 방법 모두 디스크가 연결된 또 다른 시스템과 추가 저장 공간 또는 두 번째 디스크가 필요합니다. 이는 다른 노트북이나 데스크탑일 수도 있고 실제 노트북에 있는 라이브 USB/CD일 수도 있습니다.
두 디스크를 모두 시스템에 연결할 수 있으면 가장 쉬운 방법입니다. 하지만 그렇게 할 수 없는 경우 드라이브를 교체하는 동안 추가 저장소를 임시 스크래치 영역으로 사용할 수 있습니다. 대용량 USB 하드 드라이브가 있으면 사용할 수 있습니다. 더 쉬운 옵션은 다음과 같습니다.USB 케이스대신 이렇게 하면 두 디스크를 동일한 컴퓨터에 연결할 수 있습니다.
따라서 Live USB 및 USB 인클로저를 사용하면 드라이브를 교체하려는 노트북에서 전체 작업을 수행할 수 있습니다. 두 가지 방법 모두 두 디스크가 모두 연결되어 있고 어느 쪽도 마운트되지 않은 상태에서 직접 디스크 전송에 대해 설명하겠습니다(예: 이미 다른 컴퓨터에 마운트했거나 라이브 USB/CD를 사용하고 있음). 저는 /dev/sdS
소스 디스크(귀하의 경우 HDD)를 표시하고 /dev/sdD
대상 디스크를 표시하는 데 사용합니다 . 이러한 디스크를 시스템의 실제 디스크로 교체하십시오. 오류로 인해 대상의 모든 데이터가 삭제될 수 있으므로 이러한 디스크를 확인하십시오.
방법 1: 디스크 복제
이는 디스크에서 크기가 같거나 더 큰 디스크로 이동할 때 가장 간단한 방법이지만 추가 단계를 사용하면 더 큰 디스크에서 더 작은 디스크로 이동할 수 있습니다. 이 방법의 가장 큰 단점은 디스크를 블록 단위로 복사하므로 전체 디스크를 읽고 써야 한다는 것입니다. 디스크가 거의 비어 있는 경우 시스템을 복사하는 것보다 시간이 더 오래 걸립니다.
약간 큰 디스크에서 더 작은 디스크로 전환한다고 언급하셨으므로 첫 번째 단계는 원본 디스크의 파티션 크기를 대상 디스크보다 작게 조정하는 것입니다. 이게 제일 쉽네요갈라진, 여유 공간이 디스크 끝에 있도록 드라이브를 축소하십시오. 디스크 끝에 있는 모든 데이터를 새 위치로 이동해야 하므로 시간이 걸릴 수 있습니다.
dd
이제 소스 디스크를 대상 디스크에 사용하거나 복제하기만 하면 됩니다 ddrescue
. ddrescue
귀하가 언급한 불량 섹터를 다시 읽으려고 더 열심히 노력하는 것이 현명할 수 있습니다.
sudo ddrescue /dev/sdS --force /dev/sdD
또는 다음을 사용하십시오 dd
.
sudo dd if=/dev/sdS of=/dev/sdD
쓰기 중에 대상 디스크가 가득 찼다는 오류 메시지가 표시된다는 점에 유의하세요. 크기를 조정한 이후로 디스크 끝 부분에 유용한 내용이 포함되어서는 안 되기 때문에 이는 좋습니다. 그렇기 때문에 대상 크기보다 약간 작게 크기를 조정해야 합니다.
이제 gparted를 다시 사용하여 드라이브를 채우도록 대상 크기를 조정할 수 있습니다.
이제 디스크를 교체하고 새 시스템을 부팅할 수 있습니다.
방법 2: 루트 파일 시스템 복사
큰 디스크에서 적은 양의 공간만 사용하지만 시스템을 부팅하기 위해 부트 로더와 fstab을 재구성하는 데 더 많은 단계가 필요한 경우 이 방법이 더 빠를 수 있습니다. 또한 원본 디스크에서 읽기 전용이라는 장점이 있으므로 원본 디스크가 손상될 가능성이 적습니다. (위 방법은 그렇지 않지만 대상 디스크가 원본 디스크보다 작기 때문에 디스크 크기를 조정해야 하기 때문에 이는 사실이 아닙니다. 원천). 또한 필요에 따라 파티션을 쉽게 변경할 수 있으므로 더욱 유연합니다.
첫 번째 단계는 새 드라이브에 파티션 테이블을 설정하고 파티션을 포맷하는 것입니다. 드라이브에 파티션이 하나만 있다고 언급하셨습니다. 여기서는 이전 BIOS에서 부팅한다고 가정합니다(uefi에는 루트 파일 시스템 외에 vfat 파티션이 필요하기 때문입니다). 가장 쉬운 방법은 다음과 같습니다 parted
.
sudo parted /dev/sdD mklabel msdos
sudo parted /dev/sdD mkpart primary ext4 0% 100%
sudo mkfs.ext4 -F /dev/sdD1
그러나 원하는 경우 fdisk
또는 를 사용할 수도 있습니다 gdisk
. gparted
원본 디스크에 더 많은 파티션이 있거나 파티션 레이아웃을 변경하려는 경우 지금 그렇게 할 수 있습니다. 필요에 따라 대상 디스크를 설정하기만 하면 됩니다.
이제 소스 및 대상 디스크를 마운트합니다.
sudo mkdir -p /mnt/src /mnt/dest
sudo mount /dev/sdS1 /mnt/src
sudo mount /dev/sdD1 /mnt/dest
이보다 더 많은 파티션이 있거나 원하는 경우 루트 디렉터리와 이와 관련된 다른 파티션을 위 위치에 마운트하세요. (예를 들어 소스에 추가 부팅 파티션이 있는 경우 이를 /mnt/src/boot에 마운트합니다.)
이제 소스에서 대상으로 콘텐츠를 복사합니다.
sudo rsync -avh /mnt/src/ /mnt/dest/
시간이 좀 걸립니다. 중단된 경우 명령을 다시 실행하여 재개할 수 있습니다.
더 이상 필요하지 않으므로 이제 소스 드라이브를 마운트 해제할 수 있습니다.
sudo umount /mnt/source
마지막 단계는 시스템이 부팅될 수 있도록 복구하는 것입니다. 먼저 새 시스템을 열고 복구합니다. /mnt/dest/fstab
파티션 레이아웃이 동일한 경우 새 파티션을 반영하도록 UUID/드라이브 문자를 업데이트해야 합니다. blkid
필수 정보, 권장 정보 UUID=
또는 PARTUUID=
가능한 경우 정보를 얻는 데 사용됩니다 .
마지막으로, 부트로더를 복구해야 합니다. 여기서는 이전 BIOS와 함께 grub2를 사용하고 있다고 가정합니다. 그렇지 않은 경우 이를 무시하고 부트로더를 복원하는 방법에 대한 지침을 따르십시오.
sudo grub-install --boot-directory=/mnt/dest/boot /dev/sdD
Ubuntu 부트로더 복원에 대한 자세한 내용은 다음을 참조하세요.여기.
모든 것이 순조롭게 진행되면 종료하고, 드라이브를 교체하고, 새 디스크를 부팅할 수 있습니다.
추가 기능
세 번째 디스크를 통한 작업
두 개의 디스크를 한 컴퓨터에 연결할 수 없는 경우 추가 저장소가 필요합니다. 이는 USB 디스크, 네트워크 연결 저장소 또는 로컬로 액세스할 수 있고 디스크나 루트 파일 시스템을 저장할 수 있을 만큼 큰 기타 저장소일 수 있습니다. .
위 두 가지 방법의 전체 프로세스는 동일하지만 한 디스크에서 다른 디스크로 복사하는 대신 먼저 임시 준비 영역에 복사됩니다.
사용법 1:이를 위해서는 준비 영역이 복사하려는 디스크만큼 커야 합니다.
다음에 스토리지 마운트 /mnt/staging
:
sudo ddrescue /dev/sdS /mnt/staging/rootfs.img
모든 파일에 대해 원하는 것은 무엇이든 할 수 있습니다. 원하는 경우 여기에서 압축하여 시스템 백업으로 보관할 수 있습니다.
그런 다음 스왑 드라이브를 닫고 라이브 USB를 다시 부팅하여 이미지를 복원할 수 있습니다.
sudo ddrescue /mnt/staging/rootfs.img --force /dev/sdD
이 방법을 사용하는 경우 원본 및 대상 드라이브 문자가 동일할 수 있습니다.
사용법 2:압축할 때 준비 영역이 전체 디스크가 아닌 파일 시스템만큼 크면 된다는 점에 유의하세요.
다음에 스토리지를 마운트하고 /mnt/staging
다음을 소스로 사용합니다 /mnt/src
.
sudo tar -C /mnt/src -caf /mnt/staging/roofs.tar.gz /
그런 다음 스왑 드라이브를 닫고 라이브 USB를 다시 시작하여 대상 디스크 파일 시스템을 설정한 후 파일 시스템을 복원할 수 있습니다.
sudo tar -C /mnt/dest -xf /mnt/staging/roofs.tar.gz /
그런 다음 계속해서 fstab 및 부트로더를 복원합니다.
답변2
가장 간단한 해결책(HDD가 SDD보다 작고 SDD를 컴퓨터에 연결할 수 있는 경우)은 다음과 같습니다.
- 펜 드라이브 배포판으로 부팅합니다. 이렇게 하면 하드 드라이브에서 임시 파일을 열지 않아도 됩니다.
dd를 사용하여 전체 디스크 HDD를 SDD에 복사합니다.
dd if=/dev/HDD of=/dev/SDD bs=4k
물론 HDD, SDD는
/dev/sda
또는/dev/sdd
(파티션 아님/dev/sda1
) 등 전체 디스크의 정확한 이름으로 교체해야 합니다.컴퓨터의 HDD를 SDD로 교체하세요.
- 언제나처럼 시작하세요.
유일한 문제는 두 하드웨어의 UUID가 동일하기 때문에 HDD 파티션을 추가 드라이브로 마운트하지 못할 수 있다는 것입니다. 필요한 경우 나중에 수정할 수 있습니다.