メジャーバージョンアップグレードの場合、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
2つのパーティションを持つドライブ:
$ 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
そのドライブの最初のパーティションの上のイメージを復元し、2番目のパーティションをそのままにしたいと思います。このコマンドを試しましたが、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