전체 Linux 설치를 다른 드라이브로 이동


55

나는 많은 패키지와 함께 우분투 14.04를 가지고 있으며 매우 기쁘다. 그것은 120GB의 메인 SSD 드라이브에 설치됩니다 (우분투를 설치할 때 "/"를 선택 했으므로 모든 것이이 드라이브에 있어야한다고 생각합니다). / dev / sda로 표시됩니다

이제 240Gb 인 다른 SSD를 컴퓨터에 추가했습니다. 현재 다른 저장 매체가 없습니다 (예 : 외장 하드 드라이브).

새로운 240GB 드라이브는 용량이 더 크고 더 빠르기 때문에 (120GB보다 새로운 세대) Linux를이 새 드라이브로 옮기고 싶습니다. 이 새로운 드라이브는 / dev / sdb로 나타나며 현재 포맷되지 않았거나 아무것도 없습니다 (말 그대로 포장을 풀고 현재 PC에 넣었습니다 : P)

리눅스 설치를 새 드라이브로 안전하게 옮기려면 어떻게해야합니까?

필요한 경우 새 드라이브가 / dev / sda로 표시되도록 SATA 케이블을 변경할 수 있습니다.

도움이되는 경우 "fdisk -l"의 출력입니다.

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00076d7a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   226064383   113031168   83  Linux
/dev/sda2       226066430   234440703     4187137    5  Extended
Partition 2 does not start on physical sector boundary.
/dev/sda5       226066432   234440703     4187136   82  Linux swap / Solaris

Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

4
지금 두 가지를 모두 사용하려는 것 같습니다. 그렇다면 /home전체 시스템 대신 새롭고 더 큰 것을 사용하는 것이 좋습니다. 더 쉽게 변경해야합니다 (모든 항목을 옮기고 한 줄을 / etcs / fstab에 추가하면 됨). 대부분의 큰 파일은 홈 디렉토리 (및 더 큰 디스크)로 이동할 수 있습니다.
Kevin

답변:


35

이 목적으로 CLONEZILLA 를 사용할 수 있습니다 .

Clonezilla는 무료 파티션 및 디스크 이미징 / 복제 도구로, 모든 데이터 (전체 디스크 또는 파티션)를 압축 된 방식으로 백업 한 다음 하드 디스크에 다시 복제하여 정확히 동일한 상태로 유지할 수 있습니다. 이것은 대부분의 경우 OS를 설치하는 것보다 빠릅니다.

여기에 이미지 설명을 입력하십시오

귀하의 경우 "device-device"옵션도 사용할 수 있지만 익숙하지 않습니다.

Clonezilla에 대한 자세한 가이드는 여기에서 찾을 수 있습니다 : http://clonezilla.org



1
이것은 또한 좋은 옵션입니다. 그러나 clonezilla 스틱을 만들기에는 너무 게으른 ;-)
Pilot6

내가 clonezilla 그래서 전체 디스크 이미지와 gparted를 함께 작업 약간의 트릭해야 MBR을 복사하지 않았다 발견
adampski

1
와! ;-), 부팅 시간, 그것은 UUID가 변경 되었기 때문입니다. 즉, 새로운 UUID와 중요한 파티션의 오래된 파티션 (홈, 스왑)이 막혔습니다. 이 문제를 해결하려면 여기 제공된 지침을 적절히 변경하십시오 . askubuntu.com/a/737340/497359 문제가 있으면 의견을 말하십시오.
Severus Tux

1
@adampski : 이것은 Clonezilla 2.4.5의 버그 인 것 같습니다. 해결 방법으로 Clonezilla 2.4.2 또는 DRBL (Clonezilla 2.4.2 Server Edition)이 수정 될 때까지 사용할 수 있습니다. :)
cl-netbox

40

몇 가지 방법으로 수행 할 수 있습니다. 그러나 가장 쉬운 방법은 모든 파일을 기존 드라이브에서 새 드라이브로 복사하는 것입니다.

  1. 새 드라이브에 ext4 파티션과 스왑 파티션을 만듭니다.

  2. LiveUSB에서 부팅하십시오.

  3. 이전 우분투 파티션을 어떤 디렉토리에 마운트하고 새로운 것을 다른 디렉토리에 마운트하십시오.

  4. cp -a명령을 사용하여 이전 파일에서 새 파일로 모든 파일을 복사하십시오 .

  5. 새 드라이브에 grub을 설치하십시오 .

  6. /etc/fstab새로운 UUID로 업데이트하십시오 .

분명하지 않은 내용이 있으면 설명을 추가 할 수 있습니다.


1
+1-LiveUSB에서 부팅하는 것을 피하고 원래 드라이브에서 부팅하는 동안 모든 작업을 수행하고 모든 변경, 재부팅, voila를 수행 할 수도 있습니다.
Sergey

1
@ Étienne : 해당 디렉토리를 복사하지 말고 /dev대상 드라이브에 빈 디렉토리를 작성하고 소스 드라이브와 동일한 소유자 / 권한을 설정하십시오.
Sergey

10
나는 sudo rsync -a / /mnt/linux/ --exclude sys --exclude proc --exclude dev --exclude tmp --exclude media --exclude mnt --exclude run 다음 을 사용하여 끝났다 : then sudo mkdir sys proc dev tmp media mnt run
Étienne

1
@ Étienne --exclude-comment를 편집 해 주시겠습니까? 당신이 그것을 쓸 때 그것을하면 / var / tmp도 제외됩니다 (나에게 보입니다), 복제 후 systemd-resolved.service에 의해 누락 된 이름 확인이 작동하지 않습니다. --exclude / tmp --exclude / proc 등
이어야합니다

1
@swe 의견을 유지하지 말고 원래 답변의 수정을 제안하십시오.
Étienne

20

시간이 있고 안전하게 가고 싶은 경우 :

$ dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync

명령 설명 :

  • if입력, of목적지입니다
  • bs블록 크기를 설정합니다. dd가 읽고 쓰는 청크의 크기입니다. 청크 크기가 높을수록 일반적으로 입력 디스크에 오류가있는 경우 성능은 향상되지만 데이터 손상은 커집니다 . 여기 에서 dd의 archwiki
  • noerror r / w 오류가 계속됩니다.
  • sync 오류가 발생하면 오프셋을 동기화합니다.

이것은 기본적으로 디스크 sda의 이미지를 생성하고 sdb (동일한 파티션 레이아웃 등)에 기록합니다. 물론 이것은 120GB의 전체 파일을 파일과 무관하게 기록합니다. 따라서 디스크의 작은 부분 만 사용하는 경우 매우 안전하지만 가장 빠르지는 않습니다. 그러나 입력 디스크가 가득 차면 더 빠를 수도 있습니다.

그러나:

  • 그 후에는 여분의 공간을 이용할 수 없으므로 파티션 크기를 조정하고 싶을 것입니다.
  • 어쨌든 / etc / fstab 파일을 편집해야 할 수도 있습니다.
    하드웨어 ID를 사용하여 디스크를 인식하는 경우입니다.

2
당신의 dd명령은 영원히 실행될 것입니다. bs=1M그것에 추가 고려
Dmitry Grigoryev

Afaik 블록 크기는 SSD에서 1M 일 필요는 없지만 이것에 대해 살펴보고 업데이트
하겠습니다

제한 사항은 SSD 기술이 아니라 bs기본값 인 512 바이트입니다.
Dmitry Grigoryev 11

1
헤드 업 덕분에 bs로 연장 된 답변
larkey

1
자세한 답변 주셔서 감사합니다 ... 나는 물건을 배웠습니다! 그러나 나는 clonezilla와 함께 가서 파티션의 크기를 조정하기로 결정했습니다.
Saeid87

5

새 HDD로 전환 할 때 수행하는 방법은 다음과 같습니다.

  • 새 드라이브에서 원하는 파티션 레이아웃을 만듭니다.
  • Live CD / USB에서 부팅하거나 설치, 복구 등
  • 복사 할 이전 하드 디스크 파티션을 마운트하십시오. /mnt/a
  • 파일을받을 새 하드 디스크 파티션을 마운트하십시오. /mnt/b
  • cp -a또는 tar를 사용하여 파일을 /mnt/a에서/mnt/b
  • 새 디스크에 부트 로더 (lilo 또는 grub)를 설치하십시오 ¹
  • 업데이트 /etc/fstab( blkid새 UUID를 식별하는 데 사용할 수 있음)
  • 재부팅하고 모든 것이 정상인지 테스트

참고 ¹ :

다음 명령을 사용하여 모든 하드 디스크 및 파티션을 확인하십시오.

sudo fdisk -l 

이제 Ubuntu가 설치된 파티션을 기록해 두십시오. /dev/sda1

GRUB 2 (하드 디스크 파티션)를 설치해야하는 파티션을 마운트하면 파일 시스템이 노틸러스에 나타납니다. 이제 실제 하드 디스크 MBR을 변경하려면 올바른 하드 디스크 파티션을 마운트해야합니다. 이를 위해서는 다음이 필요합니다.

sudo mount /dev/sda1 /mnt
mount

이제 파티션을 다른 위치에 마운트하십시오.

sudo mount /dev/sda1 /mnt/boot

/dev부팅 한 라이브 이미지의 /dev폴더에서 마운트 한 파티션 의 폴더 로 깨지지 않는 링크를 만듭니다./mnt

sudo mount --bind /dev /mnt/dev/

이제 루트를 라이브 CD 루트 (/)에서 마운트 된 파티션의 루트로 변경해야합니다

sudo chroot /mnt

이제 마운트 된 파티션이 새로운 루트 인 새로운 루트 쉘에 있습니다. 이 입력을 확인할 수 있습니다 ls. 이제 마운트 된 파티션에 있으므로 GRUB 2를 설치할 수 있습니다.

sudo grub-install /dev/sda 

오류없이 설치가 완료됩니다

+ 를 입력 exit하거나 눌러 CHROOT 셸을 종료 하면 Live CD / USB 셸로 돌아갑니다.CtrlD

완전히 재부팅하기 전에 마운트 한 파티션을 마운트 해제하십시오.

sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt

Live CD 또는 USB 스틱을 제거한 후 다시 부팅하여 하드 디스크에서 부팅하십시오.

sudo reboot

출처


@ baobab33 : 여기에이 사이트에 복사하여 붙여 넣기를 수행 한 다음 속성을 지정할 수 있습니다. 외부 소스에만 링크 할 수 없습니다. 위의 수정 사항으로 소스를 업데이트하십시오.
Fabby

4

다른 답변과 달리 Linux 설치를 복제하고 현재 설치가 그대로있는 상태에서 Grub 메뉴에 추가 할 수 있습니다. 또한 자동으로 사용자를 수정 /etc/fstab하고 grub부팅 메뉴를 업데이트 합니다.

복제 할 올바른 파티션을 선택하는 데 도움이되는 메뉴가 제공됩니다. 파티션의 복제본은 현재 부팅 된 파티션입니다.

rsync파티션을 복제하도록 선택한 경우 최적의 속도를 위해 사용됩니다. 업그레이드에 실패한 경우 버그 수정을 기다렸다가 업그레이드를 다시 실행하려는 경우에 유용합니다. 마찬가지로 업그레이드 중에 잘못된 옵션을 선택하고 다시 수행하려고 할 수 있습니다.

전체 스크립트는 여기에서 찾을 수 있습니다 : 18.04 LTS 업그레이드를 테스트하기 위해 Ubuntu를 새로운 파티션으로 복제하는 Bash 스크립트 는 다음과 같습니다.

clone-ubuntu.png


0

이 게시물과 관련된 실험을하기로 결정했습니다.

Lenovo ThinkCentre를 인수했습니다. 256GB SSD와 1TB HDD (스피너 유형-빠르지 만 SSD만큼 빠르지 않음)가있었습니다.

Linux Mint 19.2 (LM19.2)를 설치할 때 1TB 드라이브에 설치했습니다. SSD는 복구 할 수 없게되었고 새로운 Kingston 240GB SSD를 구입했습니다.

LM19.2를 새 SSD에 설치하려고했지만 잘 개발 된 LM19.2 이미지를 1TB 드라이브에서 새 SSD로 전송할 수있는 방법이 있어야했습니다.

이 게시물을 찾았으며 위의 확실한 조언이 있지만 실험 모드에있었습니다. 아래는 내가 한 일에 대한 설명이며 매우 잘 작동했습니다 .

  1. GParted를 사용하여 SSD에서 1TB HDD와 동일한 유형의 파티션 테이블과 파티션을 만들었습니다.
  2. LM19.2 1TB HDD에서 EVERYTHING의 TimeShift (Ubuntu / Linux Mint의 새로운 도구) 스냅 샷을 수행했습니다.
  3. 해당 스냅 샷을 SSD로 복원했습니다.
  4. 위의 단계가 완료되면 (2와 3과 동시에 1을 수행 할 수도 있음) 재부팅하여 SSD를 선택했는지 확인했습니다.
  5. 재부팅 중에 이상한 점은 INITIAL grub 화면에서 Ubuntu로 부팅 할 것인지 물었다는 것입니다. 나는 이것이 TimeShift 복원에 특유한 것이라고 생각했습니다.
  6. LM19.2는 일반적으로 부팅됩니다.
  7. PC에 외부에 매달려있는 새 드라이브 로이 작업을 수행 할 수 있음을 확인한 후에이 답변을 편집 할 것입니다. 새로운 하드웨어에.

부팅 속도만으로도 이러한 간단한 단계를 수행 할 가치가 있습니다. Dropbox조차도 잘 전송했습니다. 다시 로그인하기를 원했고 파일을 색인하는 데 시간이 걸렸지 만 훌륭했습니다.

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