내 시스템 드라이브를 더 큰 드라이브로 교체하고 싶고 기본 운영 체제(OpenSUSE) 또는 Windows(거의 사용되지 않음)를 다시 설치하고 싶지 않습니다. Windows 및 Suse를 설치하는 데 시간이 오래 걸리는 것 같으며 Suse 설치에 대한 기본 설정 및 사용자 정의를 다시 작성하고 싶지 않습니다.
다른 부팅 가능한 시스템은 테스트용으로 일시적이므로 손실이 미미합니다. 내 시스템은 BIOS 부팅에서 MBR 디스크를 사용하고 부트 로더의 첫 번째 디스크 MBR에서 GRUB2를 사용합니다. LABEL=
대신 모든 GRUB 섹션이 사용되며 UUID=
이는 문제가 되지 않습니다. 다시 말하지만, 내 /etc/fstab
목적 에 따라 LABEL=
UUID를 변경하거나 복제하는 것은 문제가 되지 않습니다. 나는 사용할 수 있다고 믿는다케렌질라 라이브Windows 파티션을 마이그레이션합니다. 파티션을 같은 크기와 같은 위치에 유지합니다. Clonezilla를 올바르게 이해하면 해당 복제본의 UUID가 동일하므로 Windows해서는 안 된다무슨 일이 일어나고 있는지 알고 있거나 적어도 신경 쓸 만큼은 아닙니다.
내 질문이나 우려사항은 다음과 같습니다.
- GRUB을 MBR에 설치하면 파티션이 바뀌기 때문에 직접 복제할 수 없는 것 같아요
- Suse 설치에서는 BTRFS를 사용하며 루트 파티션을 더 크게 만들고 싶습니다.
- 또한 Suse 파티션의 크기를 늘리고 싶습니다
/boot
(드물게 더 많은 공간이 필요한 경우도 있습니다/boot
). partclone
BTRFS 파일 시스템과 드라이버가 설치된 라이브 USB 배포판을 찾지 못했습니다.- 그냥 한 번 찍고 싶은데
내 이해 partclone
는 BTRFS 시스템을 복제하려면 시스템이 오프라인 상태여야 한다는 것입니다. Clonezilla Live는 어쨌든 부팅 가능한 시스템이기 때문에 이런 방식이어야 한다는 것을 알고 있습니다. 모든 데이터는 운영 체제 마이그레이션과 관련되지 않은 다른 디스크에 있으므로 데이터 손실은 문제가 되지 않습니다.
도구를 찾았는데,btrfs 클론이를 통해 프로세스가 단순화되고 성공 가능성이 높아지기를 바랍니다. 나는 그것을 테스트했고 라이브 시스템을 복제했습니다. 이 과정 동안 시스템을 상당히 조용하게 유지하는 것이 좋습니다. 마찬가지로, 파티션의 UUID는 자체 파티션만 볼 수 있는 Windows를 제외한 모든 것과 관련이 없습니다.
질문의 짧은 버전은 기존 시스템을 새 디스크에 복제하고 케이블을 교체할 때 부팅 가능하게 만들기 위해 새 디스크와 파티션에서 어떤 단계를 수행해야 합니까?입니다.
추가 참고사항으로는기존 문제이것이 맞는 것 같습니다. 내 관심사는 rsync
BTRFS 시스템을 사용하면 모든 스냅샷을 얻을 수 없고 시스템이 새 시스템에서 "그대로 유지"되지 않는다는 것입니다. btrfs-clone
대체를 사용하는 것만으로도 rsync
모든 문제를 해결할 수 있습니다. 이것이 나의 주요(유일한) 데스크톱 시스템이기 때문에 모든 작업을 한 번에 수행하고 싶었습니다.
답변1
이 작업을 완료해야 했기 때문에 내가 바라던 이상적인 상태는 아니더라도 효과가 있을 것이라고 확신하는 프로세스를 사용해야 했습니다. 누군가 더 나은 답변을 얻을 때까지 후속 사용자를 위해 제가 한 일에 성공적으로 답변하겠습니다.
초기 문제 설명에는 BIOS 부팅이 사용되고 있으며 디스크가 DOS 또는 MBR 형식으로 분할되어 있다는 정보가 포함되어 있습니다. 따라서 UEFI 부팅 또는 GPT 파티션 사용으로 인해 발생할 수 있는 합병증은 여기에서 고려되지 않습니다.
참고: 거의 모든 중요한 프로세스에는 루트 권한이 필요합니다. 루트로 로그인하거나(이 옵션은 일부 배포판에서는 사용할 수 없음), 스위치를 루트로 사용 sudo su
하거나, 각 명령 앞에 sudo
. 여기서 가정은 처음 두 옵션 중 하나를 사용하여 모든 작업이 루트로 수행된다는 것입니다. 모든 명령은 사용자 계정이 아닌 루트 계정에서 실행된 것처럼 작성됩니다.
이를 위해서는 다음이 필요합니다.
- 기존 시스템이 실행 중입니다.
- 시스템에 액세스할 수 있는 두 번째 디스크, HDD 또는 SSD(내부 또는 USB를 통해)
- 부팅 가능한 버전(CD 또는 USB)클로니즐라 라이브
- 실시간 배포 또는 복구 모드 진입 기능이 있는 USB 드라이브용 부팅 가능 디스크입니다.
마지막 항목이 동일하거나 매우 유사한 커널 복제본을 사용하는 시스템 버전인 경우 가장 좋습니다. 어떤 도구를 선택하든 chroot
새 시스템을 설치하고 사용할 수 있어야 합니다. USB 드라이브에 CD나 기타 도구가 필요하지 않습니다.
1. 관련된 디스크의 이름을 확인합니다.
을 통해 달렸다 mount | grep '/dev/sd'
. 현재 마운트된 모든 파티션이 표시됩니다. BTRFS 파일 시스템의 경우 질문에 표시된 대로 특정 파티션에 대해 여러 가지 마운트 지점이 나열될 수 있습니다 on / type btrfs
. 루트를 복제하는 과정에서 해당 파티션도 복제되므로 이러한 모든 파티션은 무시할 수 있습니다. 다른 물리적 디스크에서 마운트되어 마이그레이션 후에도 해당 디스크가 남아 있는 경우 다른 파티션을 건너뛸 수도 있습니다.
또한 필요하지만 찾기 어려운 것은 Windows가 설치된 파티션입니다. 일반적으로 Windows가 먼저 설치된 경우 Windows 파티션일 가능성이 높습니다 /dev/sda1
. 특히 Linux 시스템도 해당 파티션에 있는 경우 더욱 그렇습니다 /dev/sda
.
찾아야 할 일반적인 파티션은 /home
및 입니다 /boot
.
2. 새 디스크에 필요한 파티션을 생성합니다.
새 디스크를 USB를 통해 연결할 수 있다면 작업이 더 쉬워질 것입니다.
- 디스크가 연결되지 않은 상태에서 명령 실행
lsblk
- 디스크를 연결하고
lsblk
두 번째 실행 - 두 번째 목록의 장치는 첫 번째 목록의 장치가 아니며 사용되는 장치입니다.
참고: 이 프로세스 중에 언제든지 재부팅하고 여러 개의 USB 디스크가 연결된 경우 장치 이름이 변경될 가능성이 높습니다. 계속하기 전에 매번 올바른 장치 이름을 확인하십시오. 그렇지 않으면 어딘가에서 데이터가 손실될 수 있습니다.
사용되는 도구는 개인 선택이며 선호도에 따라 다릅니다. 대부분의 시스템에서 일반적으로 사용할 수 있는 일부 옵션에는 parted
, , , 및 등이 있습니다.gparted
cfdisk
fdisk
gdisk
파티션을 생성한 후 실행하여 partprobe
시스템이 새 파티션을 "인식"하는지 확인하십시오. 일부 도구는 이 작업을 수행해야 함을 커널에 알리고 일부 도구는 그렇지 않습니다. 직접 수행하면 실제로 완료되는 것이 보장됩니다.
명령을 다시 사용하여 파티션이 생성되었고 커널에서 볼 수 있는지 확인하십시오 lsblk
.
3. 새 파티션에 Linux 파일 시스템을 생성합니다.
BTRFS 루트 파티션은 mkfs.btrfs
이 명령을 통해 만들 수 있으며 만들고 파티션 mkfs.ext4
하는 데 사용할 수 있습니다 . 편의상 새 디스크에 스왑 파티션이 있는 경우 이 명령을 사용하여 새 스왑 파티션을 준비할 수 있습니다./boot
/home
mkswap
4. BTRFS 루트 파티션을 정리하여 복제 작업에 소요되는 시간을 줄입니다.
시스템의 스냅샷을 나열 snapper list
하고 가능한 한 많이 삭제를 사용하십시오 snapper delete <number>
. 따라서 롤백 옵션은 매우 제한됩니다. 시스템이 복제되는 경우 시스템은 안정적인 상태일 가능성이 높으며 이전 상태로 롤백할 필요가 없습니다.
BTRFS 파일 시스템에서 균형 조정 작업을 실행합니다. 완전한 균형을 맞추는 데는 매우 많은 시간이 소요될 수 있습니다! 특정 백분율 미만의 활용도를 갖는 블록의 균형을 맞추는 것으로 제한하면 기다리는 시간을 줄이면서 많은 작업을 완료할 수 있습니다. 시스템이 얼마나 더러운지에 따라 50%가 인내심의 한계일 수 있습니다. 내 시스템은 종종 균형을 이루므로 더 높은 비율(90%)을 사용할 수 있고 허용 가능한 시간이 소요됩니다. 이 -dusage
옵션은 밸런싱 작업을 주어진 데이터 블록 비율보다 적게 사용하도록 제한합니다.
내 시스템의 경우 명령은 다음과 같습니다.btrfs balance start -dusage=90 /
5. 마운트 지점을 생성하고 복제를 위한 새 파티션을 마운트합니다.
루트 파티션은 모든 경우에 분명합니다. 또한 필요한 것은 분할일 수 /home
있습니다 /boot
.
6. BTRFS가 아닌 파일 시스템 복제
이 명령은 복사된 파일의 소유권과 권한을 보존하는 데 사용할 수 있으므로 rsync
간단한 명령보다 낫습니다 . 프로세스가 중단되면 다시 시작할 수도 있습니다.cp
rsync
예는 다음과 같습니다rsync --archive -hh --hard-links --partial --info=stats1 --info=progress2 --modify-window=1 --one-file-system /boot/ /boot2/
7. 복제 루트, BTRFS, 파티션
이것btrfs-clone
프로그램은 내가 신뢰하기로 결정한 도구입니다. 문서에서는 사용된 공간 측면에서 가장 좋은 결과가 "생성" 전략에서 나온다고 제안하므로 이것이 제가 선택한 전략입니다.
명령은 매우 간단하지만 이를 수행하는 방법은 다음과 같습니다.btrfs-clone --strategy generation / /mnt
수술은 시간이 좀 걸릴 것으로 예상됩니다.
8. "새로운" 시스템을 수정하세요
/etc/fstab
새 시스템에 설치하려는 파티션의 변경 사항을 수용하려면 파일을 변경해야 할 수도 있습니다 . 전체 시스템이 정확히 동일하게 유지될 필요는 없습니다. 마이그레이션 프로세스 중에 태그 이름, UUID 및 장치 이름까지 변경할 수 있습니다.
openSUSE의 경우 문제의 또 다른 원인이 있을 수 있습니다. 시스템 설정에는 grub.cfg
메뉴의 특정 커널 매개변수를 하드코딩하기 위해 GRUB 구성 중에 사용되는 파일이 포함되어 있습니다 . 파일에는 /etc/default/grub
다음과 유사한 줄이 포함될 수 있습니다.
GRUB_CMDLINE_LINUX_DEFAULT="splash=silent resume=/dev/disk/by-label/Linux_swap quiet mitigations=auto"
주목할 만한 부분은 바로 이 부분이다 resume=....
. 이는 디스크 일시 중지 작업에 사용되는 스왑 파티션을 가리킵니다. 이 줄이 주석 처리되지 않고 resume=...
포함되어 있고 새 디스크의 레이블, UUID 또는 장치 이름이 현재 디스크와 다른 경우 새 버전을 반영하도록 변경해야 합니다. 이는 이후 단계에서 중요해집니다.
9. 사용클론속Windows 파티션을 복제합니다.
저는 Clonezilla의 전문가가 아닙니다. 옵션을 사용하는 것 같습니다.크로네즐라 라이브부팅 가능한 CD에. 언어/키보드 옵션 외에도 제가 따랐던 단계는 다음과 같습니다.
device-device work directly from a disk or partition to a disk or partition
Expert Expert mode: choose your own options
part_to_local_part local_partition_to_local_partition
Select the source partition
Select the target partition
Options menu changes
add Reinstall grub on target hard disk
drop Automatically adjust geometry ...
drop sfdisk uses CHS ...
drop Resize filesystem ...
add No GUI ...
add Remove NTFS volume dirty flag ...
-sfck Skip checking/repairing source file system
-p choose Choose reboot/shutdown/etc when everything is finished
완료되면 Windows 파티션이 복제되고 GRUB가 완료됩니다.가능한MBR에 추가합니다.
10. 기존 디스크를 새 디스크로 교체
그것이 바로 운동의 포인트이다. 기존 디스크를 마운트 해제하고 새 디스크를 설치합니다. 두 디스크가 모두 마운트되거나 연결된 상태로 유지되면 이후 시스템이 혼란스러울 수 있습니다. 대안으로, 두 개의 디스크를 사용하고 새 디스크를 부팅 디스크로 사용하는 경우 새 UUID 및 레이블을 제공하는 데 더 이상 필요하지 않은 이전 파티션을 변경하거나 다시 포맷해야 합니다.
11. 시작 프로세스를 다시 빌드하세요.
내 실험에 따르면 Clonezilla가 MBR(있는 경우)에 추가하는 부트로더는 불완전합니다. 위 설정으로 인해 이전 시스템 버전은 initrd
특히 openSUSE에서 새 시스템과 호환되지 않을 수 있습니다 /etc/default/grub
. 마지막으로 grub.cfg
파일에는 새 시스템과 호환되지 않는 요소가 포함될 수 있습니다. 이전 단계가 성공적으로 완료되면 세 단계를 모두 수정하는 것은 간단한 프로세스입니다.
라이브 디스크를 실행하고 필요한 경우 복구 옵션을 선택하십시오. Ubuntu와 같은 Live CD를 사용하는 경우 Live 시스템으로 이동하여 터미널을 열 수 있습니다. 라이브 시스템에서 터미널을 사용하려면 sudo su
루트 권한이 필요합니다. 대부분의 시스템에서 복구 모드는 이미 루팅되어 있습니다.
다음에서는 디스크에 /dev/sdx
다음과 같은 파티션이 있다고 가정합니다.
/dev/sdx1 Windows
/dev/sdx2 `/boot`
/dev/sdx3 `/`
/dev/sdx4 swap
파티션 번호와 장치 이름도 시스템에 따라 다를 수 있으며 상황에 맞게 다음 단계를 수정해야 합니다.
단계
- 작업 디렉터리를 만듭니다. 일반적
/mnt
으로 이미 존재할 수 있습니다. - 새 시스템의 루트 파티션을 마운트합니다.
mount /dev/sdx3 /mnt
- 새 시스템의 부팅 파티션을 마운트합니다.
mount /dev/sdx2 /mnt/boot
- 기존 시스템의 프로세스를 새로운 시스템에 연결
for item in proc sys dev run; do
mount /$item --rbind /mnt/$item
done
- 마운트된 시스템으로 전환
chroot /mnt
- 새 시스템이 일반적으로 마운트하는 다른 파티션을 마운트합니다.
mount -a
- 새로 만들기
initrd
mkinitrd
- MRB에 GRUB 설치
grub2-install /dev/sdx
- 새로 생성
grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
- 종료
chroot
하고 다시 시작
exit
reboot
- 라이브 또는 복구 시스템이 있는 USB 드라이브 디스크를 제거합니다.
- 새 디스크가 Window 및 Linux 시스템으로 부팅할 수 있는지 확인하세요.