리눅스를 다른 파티션으로 옮기는 방법?


9

/에 포함되어 있고 / mnt / sdb5에 새 장소가 준비되어있는 작동중인 Linux 시스템의 사본을 만들어야합니다. / dev에 상당한 양의 하드 링크, 소프트 링크 및 특수 파일이 들어있는 것 같습니다. cpio추가 마법을 적용하지 않고이 작업을 처리 할 수 있습니까?

현재 알려진 보호 조치 :

  • 복사본이 부팅 가능한 것으로 간주되어 작업 할 때까지 실행중인 시스템을 제거 / 수정하지 않습니다 root=/dev/sdb5. 제거하기 전에 전체 파티션 백업을 수행하십시오.
  • 각 루트 디렉토리를 따로 보관하기 위해 cpio를 사용하므로 LiveCD 환경에서 압축을 풀면 기증자 파티션이 손상되지 않습니다.

그러나 여전히 cpio가 일부 플래그를 놓치고 권한 / 노드 유형 / 소프트 또는 하드 링크를 무너 뜨렸다 고해서 시간을 잃지 않을 것입니다.

어떤 도구를 사용하거나 어떤 수중 암석을 피해야합니까?



@warren, 감사합니다. 이제 또 다른 CPIO - 대 - 타르 테스트를 할 것)
kagali 산

걱정하지 마십시오 : 도움이되기를 바랍니다 :)
warren

답변:


10

에 관한 실제 질문에 대답하려면 cpio다음과 같이하십시오 cpio.

find / -xdev -depth \! -path ./lost+found -print0 | cpio --pass-through --null --dot --make-directories --unconditional --preserve-modification-time --sparse /mnt/sdb5

물론 네트워크를 통해 복사하지 않기 때문에 다음을 사용합니다 cp.

cp --archive --sparse=always --verbose --one-file-system --target-directory=/mnt/sdb5 /

복사를 여러 번 수행하려면 rsync재개 기능을 사용하는 것이 좋습니다. (또한 마찬가지로 cpACL 및 확장 속성을 처리하고 선택적으로 네트워크를 통해 작동 할 수 있습니다 cpio. 따라서 로컬에서 첫 번째 사본을 수행하는 것을 제외하고 가장 유용한 옵션 cp입니다.

rsync --archive --inplace --hard-links --acls --xattrs --devices --specials --one-file-system --8-bit-output --human-readable --progress / /mnt/sdb5

복사하는 것을 잊지 마세요 /boot/dev!

/boot복사하기 만하면됩니다. 그러나 /dev에 의해 숨겨져 있기 때문에 요즘 훨씬 까다 롭습니다 udev. 다음 절차를 권장합니다.

  1. mkdir /tmp/dev
  2. mount --move /dev /tmp/dev
  3. 위 명령 중 하나 /dev/mnt/sdb5사용하여 복사
  4. mount --move /tmp/dev /dev
  5. rmdir /tmp/dev

6

@Klox가 언급했듯이 동일한 크기의 파티션을 복사 할 때 사용에 동의합니다 dd.

그러나 다른 크기의 디스크를 다른 파티션에 복사하려면을 사용하십시오 rsync. 새 파티션을 마운트하고 (/ mnt / new) 다음을 수행하십시오.

# rsync -a --exclude=/proc --exclude=/dev --exclude=/sys / /mnt/new

심볼릭 링크에 대한 추가 마술과 라이브 CD가 필요하지 않습니다 (단일 사용자 / init 1은 정상적으로 작동합니다).


예 나는 rsync항상 사용 하고 명백한 것을 놓쳤다. 내가 dd언급 한 이유가 마음에 들지만 rsyncOP의 요구에 더 적합합니다.
Klox

3

보다 최적의 변형 dd사용partimage 하면 파티션의 사용 된 섹션 만 복사하여 사용하지 않는 큰 파티션을보다 편리하게 복사합니다.

중요한 경고에 유의하십시오.

Partimage는 새로운 Ubuntu 설치에서 기본값 인 Ext4를 지원하지 않습니다.

편리한 사본이 System Rescue CD 배포판 에 포함되어 있습니다 .


2

하드 드라이브간에 Linux 설치를 이동할 때 항상 Live CD로 부팅 dd하고 전체 파티션을 복사하는 데 사용 합니다. 나는 이것이 디스크 크기의 변화를 다루지 않는다는 것을 알고 있습니다 (필연적으로 새로운 디스크가 더 커서 일을 단순화합니다).하지만 당신이 사용하는 것에 대해 정확히 우려하는 이유가있는 기술 cpio이 마음에 듭니다. 이 dd기술을 사용하면 새로운 디스크가 부팅되고 모든 것이 동일하거나 디스크가 부팅되지 않습니다. 나중에 숨어있는 문제가 발생할 위험이 없습니다.

물론 파티션이 새 디스크를 채우지 않는 문제가 있지만 여분의 공간을 채우고 심볼릭 링크를 사용하여 디렉토리를 이동하는 새 파티션을 만드는 것입니다. (파티션의 크기를 조정하는 도구도 있다고 확신하지만 사용하지는 않았습니다.)


내가 말한 시스템은 500GB XFS 파티션에서 약 50 기가의 여유 공간을 가지고 있으며 (축소 할 수 없으며 현재는 확장 만 지원 xfs_grow합니다) 루트 파티션도 XFS입니다. 더 나쁜 것은, 그것은 지방 자체 인 거의 잘 정립 된 젠투입니다. 더 나쁜 것은 더 많은 스토리지를 추가하지 않고 이동을 수행해야하며 현재 60 기가를 초과하는 백업을 수행 할 수 없으므로 파티션 작업이 없습니다. 물건을 테스트하려면 해당 기계에 Win '을 넣어야합니다.
kagali-san

또한 dd는 훌륭하지만 드라이브 / 파티션 작업에는 더 많은 독점 솔루션을 사용하는 경향이 있습니다. Acronis TrueImage가 더 잘 작동하는 것 같습니다 (livecd / liveusb 플래시에서 압축, samba 공유).
kagali-san
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.