1024GB 디스크(A 드라이브)에서 Ubuntu 14.04를 실행하고 있으며 최대 130GB의 공간만 사용합니다. 256GB SSD 디스크(디스크 B)에 복제하고 싶습니다. 그러나 그것은 실패했습니다.
gparted
B드라이브를 성공적으로 준비하기 위해 A드라이브의 파티션을 180GB정도로 줄인 적이 있습니다.
내가 어디에서 잘못되고 있는지 말해 줄 수 있나요?
1) 파티션 테이블 복원
A 드라이브의 파티션 테이블을 백업했습니다.
└──╼ $ sudo sfdisk -d /dev/sda
# partition table of /dev/sda
unit: sectors
/dev/sda1 : start= 2048, size= 997376, Id=83, bootable
/dev/sda2 : start= 999424, size= 15624192, Id=82
/dev/sda3 : start= 16623616, size=337020928, Id=83
/dev/sda4 : start= 0, size= 0, Id= 0
팁
/dev/sda1
를 위해 /boot
, /dev/sda2
를 위해 swap
, /dev/sda3
를 위해 /
.
파티션 테이블 저장
sudo sfdisk -d /dev/sda > partition.table
/dev/sdc
그런 다음 파티션 테이블을 B 드라이브( 이 경우) 로 복원하려고 했습니다 .
나는 file sda
로 교체했습니다 . 그러면 다음과 같습니다.sdc
partition.table
# partition table of /dev/sdc
unit: sectors
/dev/sdc1 : start= 2048, size= 997376, Id=83, bootable
/dev/sdc2 : start= 999424, size= 15624192, Id=82
/dev/sdc3 : start= 16623616, size=337020928, Id=83
/dev/sdc4 : start= 0, size= 0, Id= 0
그러면 복구에 성공했습니다.
sudo sfdisk /dev/sdc < partition.table
2) 디스크 파티션 내용 마이그레이션
sudo dd if=/dev/sda1 of=/dev/sdc1
sudo dd if=/dev/sda2 of=/dev/sdc2
sudo dd if=/dev/sda3 of=/dev/sdc3
마이그레이션 후에는 /dev/sdc에서 해당 파티션을 마운트하고 볼 수 있습니다.
실패하다
그러나 노트북에 SSD 디스크(디스크 B)를 삽입하면 일부 Thinkpad BIOS 출력 후 노트북이 부팅되지 않습니다. 오류는 발생하지 않지만 커서가 깜박입니다...
/boot
BIOS가 부팅 시 디스크 B를 감지하지 못했을 것입니다.
도와주세요? 매우 감사합니다!
고쳐 쓰다
누군가 나에게 그것을 사용하여 grub-install /dev/sdc
트릭을 수행하라고 제안했습니다.
나는 grub-install
능력 있는 사람을 검색했는데—협회나 해보자. 디스크 A(MBR이 설치되어 있음)가 확실합니다.
고쳐 쓰다
완료 후 dd if=/dev/sda of=/dev/sdc bs=512 count=1
드라이브 B만 삽입하면 커서가 계속 깜박입니다. BIOS 이후에는 아무것도 없습니다.
작업이 완료된 후 grub-install --boot-directory=/mnt/mypartition/boot /dev/sdc
부팅을 해보니 B 드라이브만 있었습니다.
하지만 그럽 콘솔이 나왔습니다. 그리고 보고했다
고쳐 쓰다
이제 작동합니다!
저는 이런 식으로 디스크 A를 OS로, 디스크 B( /dev/sdc
)를 USB 하드 드라이브로 실행했습니다.
sudo mount /dev/sdc3 /mnt
sudo mount /dev/sdc1 /mnt/boot
sudo grub-install --boot-directory=/mnt/boot /dev/sdc3
그런 다음 가서 /mnt/boot/grub/grub.cfg
파일의 2개 항목을 교체했습니다 grub.cfg
. (파일에 쓰기 권한을 부여하는 것을 잊지 마세요 grub.cfg
)
hd1
사용. . . 교체hd0
/dev/sdc3
사용. . . 교체/dev/sda3
그런 다음 파일을 저장하십시오. -> 컴퓨터 전원 끄기 -> SATA를 통해 B 드라이브를 삽입하고 A 드라이브를 영구적으로 제거합니다. ->부팅->grub 오류가 표시되지만 여전히 부팅됩니다.
오류가 발생하는 경우 Error: invalid environment block. Press any key to continue
이 문제를 확인하여 해결하세요. 아무 키나 누르면 시스템이 시작됩니다.https://askubuntu.com/questions/191852/error-invalid-environment-block-press-any-key-to-continue
sudo -i
그런 다음 각 명령을 하나씩 실행합니다.
cd /boot/grub
rm grubenv
grub-editenv grubenv create
grub-editenv grubenv set default=0
grub-editenv grubenv list
update-grub
이제 재부팅하면 됩니다!
이것이 제가 1024GB 디스크 드라이브의 크기를 줄이고 전체 시스템을 새로운 256GB SSD 디스크로 이동한 방법입니다.
답변1
저는 그것에 익숙하지 않지만 sfdisk
.dd
이것은 내 메모입니다. 나는 작성자가 아닙니다.
백업 MBR
MBR은 디스크의 처음 512바이트에 저장됩니다. 이는 3가지 부분으로 구성됩니다:
- 처음 446바이트에는 부트로더가 포함됩니다.
- 다음 64바이트에는 파티션 테이블이 포함됩니다(각각 16바이트의 항목 4개, 각 기본 파티션에 대한 항목 1개).
- 마지막 2바이트에는 식별자가 포함됩니다.
MBR을 mbr.img로 복제합니다.
dd if=/dev/sdX of=/path/mbr_file.img bs=512 count=1
파티션을 pX.img로 복제하세요.
dd if=/dev/sdX of=/path/pX.img bs=1024
MBR을 새 디스크로 복원
dd if=/path/mbr_file.img of=/dev/sdY bs=512
파티션을 새 디스크로 복원
dd if=/path/pX.img of=/dev/sdX bs=1024
또는
이를 사용하여 clonezilla
운영 체제의 이미지를 만들고 파티션이 생성된 디스크에 복원할 수 있습니다.
이렇게 하면 새 디스크에 grub을 다시 설치해야 할 수도 있습니다.
grub-install
grub-mkconfig
그리고 "새" OS에서 스왑 파티션을 설정하세요.
mkswap
swapon