볼륨 그룹에 두 개의 물리적 디스크(각각 1TB)가 있는 LVM 드라이브에 Linux Mint를 설치하고 시작했습니다. 새 하드 드라이브(4TB)를 구입했고 전체 하드 드라이브를 복제하고 새 디스크에서 부팅하고 싶습니다.
루트 파일 시스템이 LVM 드라이브에 있을 때 이 프로세스에 대한 지침을 찾는 데 정말 어려움을 겪고 있습니다.
나는 팔로우한다이 지침mint-vg/root 및 mint-vg/swap_1 논리 볼륨을 새 디스크에 성공적으로 미러링한 다음 분할 미러를 사용 lvconvert --splitmirror
하고 분할 볼륨 그룹을 사용했습니다 vgsplit
. 이렇게 하면 내 모든 파일의 멋진 복제본이 만들어지지만 평생 동안 새 복사본에서 부팅하는 방법을 알 수 없습니다!
먼저 모든 LV와 VG의 이름을 변경하여 이전 LV와 VG에는 "OLD_" 접두사가 붙고 새 LV에는 이전 이름이 붙도록 했습니다. 예를 들어, "mint-vg"는 "OLD_mint-vg"가 되고, "new_mint-vg"는 "mint-vg"가 됩니다.
그러다가 이전 드라이브 중 하나에 부팅 가능한 기본 파티션이 있다는 것을 깨달았습니다. 이것은 드라이브의 원래 구성입니다. (sde 및 sdf는 기존 드라이브이고 sdg는 새 드라이브입니다)
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sde 8:64 0 931.5G 0 disk
└─sde1 8:65 0 931.5G 0 part
└─mint--vg-root 253:2 0 1.8T 0 lvm /run/timeshift/backup
sdf 8:80 0 931.5G 0 disk
├─mint--vg-root 253:2 0 1.8T 0 lvm /run/timeshift/backup
└─mint--vg-swap_1 253:3 0 976M 0 lvm [SWAP]
sdg 8:96 0 3.7T 0 disk
나는 노력했고 grub-install /dev/sdg
얻었습니다."grub-install: error: failed to get canonical path of '/cow'"
나도 시도했다이 지침하지만 새 디스크가 최대 파티션 크기인 2048G보다 크기 때문에 기본 파티션을 생성할 수 없습니다.
또한 파티션 구성 방법을 확인하기 위해 새 디스크에 Linux Mint를 설치했는데 다음과 같습니다.
sdg 8:96 0 3.7T 0 disk
└─sdg1 8:97 0 1M 0 part
└─sdg2 8:98 0 513M 0 part
└─sdg3 8:99 0 3.7T 0 part
└─vgmint-root 253:1 0 3.7T 0 lvm
└─vgmint-swap_1 253:2 0 967M 0 lvm [SWAP]
이제 이전 루트를 복제하고 LV를 교체한 다음 새 Mint 설치에서 LV를 교체하는 것이 가능합니까? 정말 그렇게 간단할 수 있을까요? 그렇지 않고 복제된 시스템을 다시 실행할 수 있도록 필요한 시작 구성을 설정하는 과정을 누군가가 안내해 주거나 몇 가지 명확한 지침을 알려준다면 매우 감사하겠습니다.
감사해요,
부담.
편집하다
도와주셔서 정말 감사합니다. 정말 미칠 것 같아요!
좋아요,페이스트빈 링크입니다당신이 요청한 것은 내 시스템에 7개의 드라이브가 있고 Linux Mint Live USB에서 부팅한다는 점에 유의하십시오.
원래 운영 체제는 드라이브에 있으며 /dev/sde
접두사 /dev/sdf/
"OLD_"를 사용하여 VG 및 LV의 이름을 변경했습니다. 현재 새 드라이브 /dev/sdg
에 Linux Mint가 새로 설치되어 있으며 나중에 제거해야 합니다. 파티션 구성 방법을 이해하기 위해 설치했습니다.
/dev/sdg1
새로운 Mint 설치 프로그램이 언급한 BIOS 옵션과 BIOS_grub 파티션( ) 을 선택한 것 같습니다.
이제 Mint 설치 프로그램이 위의 파티션을 설정했으므로 이제 새로 설치에서 볼륨 그룹 "vgmint"를 제거하고 복제된 볼륨 그룹 "mint-vg"로 교체할 수 있습니까? 그렇다면 부팅하려면 무엇을 재구성해야 합니까? 아니면 드라이브를 지우고 다시 시작해야 합니까?
답변1
나는 며칠 동안 이 문제를 해결하지 못했기 때문에 비슷한 문제가 있는 다른 사람을 위해 내 솔루션을 게시해야겠다고 생각했습니다. 2개의 1TB 디스크에 걸쳐 있는 LVM에 설치된 경우 Mint 설치를 새 4TB 디스크에 복제하는 방법은 다음과 같습니다.
유용한 링크:
용어
- PV = 물리적 볼륨
- VG = 볼륨 그룹
- LV = 논리 볼륨
LVM 시스템에 설치된 시스템 디스크를 복제하고 복제에서 부팅하려면 다음 단계를 수행합니다.
- 새 디스크 준비(파티션 생성)
- PV 생성
- 대상 LV를 포함하는 동일한 VG에 새 PV를 추가합니다.
- 새 PV에 대상 LV의 미러를 생성합니다.
- 이미지를 두 개의 독립적인 LV로 분할
- 미러링된 LV가 활성화된 새 PV가 새 VG에 있도록 VG를 분할합니다.
- 구성(LV, VG 이름 바꾸기)
- Grub을 설치하고 부팅 가능하도록 설정
1 - 새 디스크 준비
디스크가 2048GB보다 작은 경우 디스크용 MBR 파티션을 준비할 수 있지만 여기서는 다루지 않습니다.
2TB보다 큰 드라이브로 부팅하려면BIOS 부팅 파티션. 내가 찾은이것들지침은 도움이 되지만 솔직히 말해서 약간의 속임수를 썼습니다.
내가 파티션을 구성한 방법은 새 드라이브에 Linux Mint를 새로 설치하는 것이었습니다. 3개의 파티션 설정 BIOS 부팅 파티션(bios_grub) 일부 알 수 없는 fat32 파티션(아직 작업 중이고 삭제를 고려 중입니다. 절반의 작업입니다!!!) 및 LVM2 파티션(LV ``root' 및 ``swap_1``).
그런 다음 새로 설치된 Mint의 새 볼륨 그룹을 삭제하고 빈 파티션(/dev/sdg3)을 남겨두고 이전 Mint VG를 해당 빈 파티션에 복제했습니다.
에 설명된 대로 fdisk를 사용하여 1meg Bios 파티션을 생성하면 어떨까 생각했습니다.이 지침그런 다음 나머지 디스크와 함께 LVM 파티션을 사용하면 민트를 다시 설치하지 않아도 될 수 있습니다. 그래도 작동하므로 자유롭게 시도해 보거나 속이는 것은 귀하에게 달려 있습니다.
2 - PV 생성
lsblk
fdisk -l
이제 디스크를 분할했으므로 가장 큰 파티션 (내 이름은 ) 의 장치 이름을 사용하거나 찾아야 합니다 /dev/sdg3
. 이제 새 PV를 만듭니다.
pvcreate /dev/sdg3
3 - 대상 LV와 동일한 VG에 새 PV를 추가합니다.
다음과 같이 ("mint-vg"를 사용하겠습니다) 논리 볼륨을 나열 vgs
하고 새 PV를 추가할 수 있습니다.
vgextend mint-vg /dev/sdg3
4 - 새 PV에 대상 LV의 미러 생성
를 사용하여 LV를 나열합니다 lvs
. 내 이름은 "root"입니다. 또한 swap_1도 복제하여 두 LV에 대해 이 지침을 반복할 수 있습니다.
LV가 상당히 크면 미러가 모든 데이터를 복사하는 데 오랜 시간이 걸릴 수 있습니다. 화면에 진행 상황에 대한 정보가 계속 표시되며, 정전 등이 발생하면 다음에 라이브 디스크로 부팅할 때 중단된 부분부터 다시 시작해야 합니다. 이 -b
옵션을 사용하여 백그라운드에서 실행할 수도 있습니다 .
lvconvert --type mirror -m1 /dev/mint-vg/root /dev/sdg3
완료되면 모든 것이 괜찮은지 확인할 수 있습니다.
lvs -a -o +devices | egrep "LV|root"
Cpy%Sync
복제 비율을 표시해야 하는 열을 확인하세요 .
이제 이 섹션을 다시 시작하고 "swap_1" LV를 미러링하세요.
5 - 이미지를 두 개의 별도 LV로 분할
다음으로 미러 LV를 실제 LV로 변환합니다. 두 LV(원본 및 복제본)는 모두 동일한 VG에 있으므로 이 작업을 수행할 때 이름을 바꿔야 합니다("new_root"를 사용하겠습니다). 또한 sync
안전을 위해 먼저 명령을 사용하여 캐시를 플러시하는 것이 중요합니다.
sync
lvconvert --splitmirrors 1 --name new_root /dev/mint-vg/root /dev/sdg3
지금 반복해/dev/min-vg/swap_1
6 - 미러링된 LV가 있는 새 PV가 새 VG에 있도록 VG를 분할합니다.
VG를 분할하기 전에 LV를 비활성화해야 합니다. (-a는 활성화 [y|n]을 나타냄)
lvchange -an /dev/mint-vg/new_root
lvchange -an /dev/mint-vg/new_swap_1
이제 미러링된 LV가 있는 /dev/sdg3에서 새 VG를 만들 수 있습니다.
vgsplit mint-vg new_mint-vg /dev/sdg3
이제 복사된 LV와 두 개의 VG 및 관련 장치를 볼 수 있습니다.
lvs -o +devices
7 - 구성(LV, VG 이름 변경, 내보내기를 위해 VG 태그 지정)
(나처럼) 부팅하려는 새 디스크에 시스템을 복사하고 이전 시스템 드라이브를 지우려고 한다면 이전 "mint-vg"가 "OLD_mint-"가 되도록 모든 LV 및 VG의 이름을 바꿔야 합니다. vg" , 새로운 "new_mint-vg"는 "mint-vg" 등으로 불리며 LV도 마찬가지입니다.
다음과 같이 LV 및 VG의 이름을 바꿀 수 있습니다. (먼저 제거하세요!)
umount /dev/mapper/mint—vg-root
lvrename mint-vg root OLD_root
vgrename mint-vg OLD_mint-vg
볼륨 그룹을 삭제하려는 경우(아마도 배송을 위해 외부 드라이브에 복사했을 수 있음) LV 및 VG 자체를 비활성화하고 내보내기용으로 표시해야 합니다.
lvchange -an /dev/mint-vg/old_root
vgchange -an old_mint-vg
vgexport old_mint-vg
이제 실행하면 VG 속성에 내보내기용으로 표시되었다는 속성이 있고 활성화되지 않았음을 의미하는 속성 은 없다는 pvs
것을 알 수 있습니다 .x
a
8 - 부팅 가능하도록 Grub을 설치합니다.
fstab에 대한 빠른 언급
여기 파일에 대한 간단한 설명입니다 /etc/fstab
.
나는 단지 당신의 파일을 빨리 언급하고 싶었을 뿐입니다 /etc/fstab
. 이는 어떤 파티션을 어떤 순서로 설치해야 하는지 시스템에 알리고 설치 중에 특정 옵션을 할당하는 데 사용됩니다. 제 경우에는 원래 버전과 동일하도록 LV를 VG로 이름을 바꿨습니다. 또한 내 /etc/fstab
파일에서 내 파티션은 고유한 UUID가 아닌 장치 이름으로 식별됩니다. 이는 모든 것이 제대로 작동한다는 것을 의미합니다.
/etc/fstab
파일에 익숙해지려면 한 번 살펴보는 것이 좋습니다.
cat /etc/fstab
VG의 이름을 바꾼 경우 모든 LV 또는 파티션은 fstab 파일의 UUID로 식별되며 시스템을 부팅하고 볼륨을 마운트하려면 fstab 파일을 편집해야 할 수도 있습니다.
blkid
터미널에 UUID를 입력하여 찾을 수 있습니다.
애벌레
새 디스크에서 클론을 부팅하려면 해당 디스크에 Grub을 설치해야 합니다. 이렇게 하려면 먼저 루트 폴더를 마운트하여 grub이 /boot 폴더를 가리키도록 해야 합니다.
이 지침작동할 수도 있지만 /boot 폴더를 알려주지 않으면 "cannot find canonical /cow"라는 오류가 발생합니다. Grub 매뉴얼을 읽은 후 info grub-install
grub을 루트 LV의 /boot/ 폴더로 지정하여 grub을 설치할 수 있었습니다. 그게 다야 :
먼저 마운트 지점 폴더를 만듭니다. 그런 다음 루트 LV를 마운트하고 마지막으로 grub을 설치합니다.
mkdir /mnt/root
mount /dev/mint-vg/root /mnt/root
grub-install --boot-directory=mnt/root/boot /dev/sdg
이렇게 하면 "/boot" 폴더가 설정되고 BIOS 부팅 파티션에 새 "core.img"가 생성됩니다. 이제 부팅할 수 있습니다. BIOS에서 부팅 장치를 변경하는 것을 잊지 마세요!
맙소사, 속도!