부팅 및 루트 파티션을 다른 드라이브로 이동하는 방법


27

내 컴퓨터에는 다음과 같은 구성을 가진 두 개의 드라이브가 있습니다.

Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /

불행히도, 드라이브 2에 쓰려고하면 오류가 발생하고 SMART 설정을 확인하면 슬픈 일이 발생하기 때문에 드라이브 2가 죽어 가고 있습니다.

드라이브 1에 충분한 공간이 있으므로 / 및 / boot 파티션을 이동하고 시스템에서 드라이브 2를 제거하고 드라이브 2를 새 드라이브로 교체 한 다음 프로세스를 취소하십시오.

나는 grub하기 위해 업데이트를해야한다고 생각하고, 주위를 움직일 필요가 있지만, 이것에 대해 정확하게 다루는 방법은 당황합니다. 이것이 메인 컴퓨터이므로 부팅 할 수 없도록 엉망이되지 않도록주의하고 싶습니다.


답변:


29

라이브 CD로 부팅해야합니다. 디스크 1에 파티션을 추가하고 모든 내용을 복사 한 다음 sudo blkid각 파티션의 UUID를 얻는 데 사용 하십시오. 디스크 1의 새로운 /에서 방금 찾은 새로운 UUID를 사용하도록 / etc / fstab을 편집하십시오.

GRUB 업데이트는 GRUB1인지 GRUB2인지에 따라 다릅니다. GRUB1 인 경우 /boot/grub/device.map을 편집해야합니다.

GRUB2 인 경우 실제 상황에서와 같이 파티션을 마운트해야한다고 생각합니다. 예를 들면 다음과 같습니다.

sudo mkdir /media/root
sudo mount /dev/sda1 /media/root
sudo mount /dev/sda2 /media/root/boot
sudo mount /dev/sda3 /media/root/home

(물론 복사 한 실제 파티션이 무엇이든 채움)

그런 다음 / media / root에서 / proc 및 / dev 마운트를 바인드하십시오.

sudo mount -B /proc /media/root/proc
sudo mount -B /dev /media/root/dev
sudo mount -B /sys /media/root/sys

이제 chroot를 드라이브에 넣으면 GRUB이 새로운 레이아웃에 따라 스스로 업데이트되도록 할 수 있습니다 :

sudo chroot /media/root
sudo update-grub

두 번째 명령은 한 가지 불만을 제기하지만 (그것이 무엇인지 잊어 버립니다 ...) 무시해도됩니다.

불량 드라이브를 제거하여 테스트하십시오. 작동하지 않으면 불량 드라이브가 여전히 시스템을 부팅 할 수 있어야하지만 이것이 모두 필요한 단계라고 생각합니다.


3
참고로 요즘에 본 사람이라면 EFI 설정에는 적용되지 않습니다. /media/root/boot/efi무엇보다도 마운트해야합니다 .
wjandrea

1
나는에에 필요한 sudo grub-install /dev/sda전과sudo update-grub
윌리엄 Mortada

5

드라이브를 즉시 교체하면 사용할 수 있습니다 dd(몇 달 전에 서버에서 시도했지만 매력처럼 작동했습니다).

이것도 부팅 CD가 필요합니다.

  1. 부팅 CD 시작
  2. 드라이브 1 만 마운트
  3. dd if=/dev/sdb1 of=/media/drive1/backuproot.img루트 ( /) 파티션 인 sdb1을 실행하십시오 . 전체 파티션을 파일로 저장합니다.
    • 동일 /boot
  4. 전원 끄기, 디스크 교체, 전원 켜기
  5. 실행 dd if=/media/drive1/backuproot.img of=/dev/sdb1-다시 작성하십시오.
    • 동일 /boot

위는 이전과 동일한 크기의 파티션 2 개를 생성합니다. grub을 조정해야 할 수도 있습니다 (macos post 확인).

파티션 크기를 조정하려면 (내가했던 것처럼) :

  1. 새 드라이브에 파티션 2 개 생성 ( //boot원하는 크기)
  2. 백업 이미지를 마운트하십시오. mount /media/drive1/backuproot.img /media/backuproot/
  3. /파티션을 마운트하십시오 :mount /dev/sdb1 /media/sdb1/
  4. 내용을 새 파티션에 복사하십시오 (이 명령에 대해 잘 모르겠습니다. 소유권을 유지하는 것이 중요 cp -R합니다.하지 마십시오!) cp -R --preserve=all /media/backuproot/* /media/sdb1
    • 동일 /boot/

그렇게해야합니다.


설치하려는 새 "40GB"드라이브가 현재 "40GB"드라이브보다 작습니다. 둘 다 연결되어 있으며 liveCD로 부팅됩니다. 이전 방법에서 새로운 방법으로 쉽게 처리하고 완료된 거래라고 부르는 쉬운 방법이 있습니까?
mlissner

사실, 나는이 질문을 정리했습니다. 너무 큰 파티션은 ext4 파티션이므로 liveCD를 부팅하고 gparted를 사용하여 약간 줄였습니다.
mlissner

4

이것에 대한 나의 마지막 해결책은 여러 가지 기술의 조합이었습니다.

  1. 죽어가는 드라이브와 교체품을 컴퓨터에 동시에 연결했습니다.
  2. 새 드라이브는 기존 드라이브보다 작았으므로 GParted를 사용하여 이전 파티션을 축소했습니다.
  3. 그런 다음 이전 드라이브의 파티션을 복사하여 새 파티션에 붙여 넣었습니다 (GParted 사용).
  4. 그런 다음 새 드라이브의 올바른 파티션에 부팅 플래그를 추가 했으므로 이전 드라이브의 미러였습니다.

이 모든 것이 잘 작동했지만 여기 지침에 따라 grub2를 업데이트해야했습니다 .

이 모든 작업이 끝나면 문제가있는 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.