주요 버전 업그레이드의 경우 Tails에서는 다음을 권장합니다.복잡한 업그레이드 경로새 USB 드라이브에 이미지를 쓴 다음 운영 체제 파티션을 원래 USB 드라이브에 복제할 수 있습니다. 나는 이 작업을 수행하는 더 좋은 방법을 찾으려고 노력하고 있습니다.
파티션 테이블과 단일 파티션이 포함된 .img 파일이 있습니다.
$ sudo kpartx -av tails-amd64-5.2.img
add map loop12p1 (253:0): 0 2553856 linear 7:12 2048
$ sudo parted tails-amd64-5.2.img UNIT b print
Model: (file)
Disk tails-amd64-5.2.img: 1309671424B
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1048576B 1308622847B 1307574272B fat32 Tails boot, hidden, legacy_boot, esp
두 개의 파티션이 있는 드라이브:
$ sudo kpartx -av /dev/sdb
add map sdb1 (253:2): 0 16777216 linear 8:16 2048
add map sdb2 (253:3): 0 43655168 linear 8:16 16781312
$ sudo parted /dev/sdb UNIT b print
Model: Kingston DataTraveler 3.0 (scsi)
Disk /dev/sdb: 30943995904B
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1048576B 8590983167B 8589934592B fat32 Tails boot, hidden, legacy_boot, esp
2 8592031744B 30943477759B 22351446016B TailsData
해당 드라이브의 첫 번째 파티션 위의 이미지를 복원하고 두 번째 파티션은 그대로 두고 싶습니다. 이 명령을 시도했는데 GRUB로 부팅되었지만 OS는 부팅되지 않았습니다.
$ sudo dd if=tails-amd64-5.2.img of=/dev/sdb1 bs=16M
fsck에 따르면 이는 GPT 파티션이 시작 부분에 있기 때문입니다. 이 명령은 아무 작업도 수행하지 않습니다.
$ sudo kpartx -d tails-amd64-5.2.img
이 명령을 실행하면 드라이브가 GRUB으로 부팅되지 않습니다.
$ sudo dd if=tails-amd64-5.2.img of=/dev/sdb1 bs=512 count=2
GUID 파티션 테이블을 제거하고 작동하게 만드는 방법이 있습니까?
답변1
당신은 거의 대답을 했습니다. 이미 kpartx
결과를 사용하고 있지만 활용하지 않고 있습니다.
$ sudo kpartx -av tails-amd64-5.2.img
add map loop12p1 (253:0): 0 2553856 linear 7:12 2048
반응을 관찰하십시오 add map loop12p1
.
이 명령은 /dev/mapper/loop12p1
GUID 파티션 테이블을 건너뛰고 이미지 파일의 파티션에 직접 액세스할 수 있는 장치를 생성했습니다.
그래서 당신은 이것을 할 수 있습니다 :
sudo dd if=/dev/mapper/loop12p1 of=/dev/sdb1 bs=16M
/dev/mapper/loop12p1
루프백 장치(또는 기타 장치)가 더 이상 필요하지 않으면 다음 명령으로 제거합니다.
sudo kpartx -d tails-amd64-5.2.img