
sudo fdisk -l /mnt/hdd/19_02.img
3つのパーティション()で構成されるハードドライブのイメージバックアップファイルがあります。
Device Start End Sectors Size Type
/mnt/hdd/19_02.img1 2048 1050623 1048576 512M EFI System
/mnt/hdd/19_02.img2 1050624 34686975 33636352 16G Linux swap
/mnt/hdd/19_02.img3 34686976 976773134 942086159 449.2G Linux filesystem
3番目のパーティションはタイプですcrypto_LUKS
。暗号化されていない場合は、次のようにsudo mount -o loop,offset=$(expr 512 \* 34686976) /mnt/hdd/19_02.img /mnt/img
マウントできます。mount: /mnt/img: unknown filesystem type 'crypto_LUKS'.
私が試したこと
sudo cryptsetup luksOpen /mnt/hdd/19_02.img3 img
明らかにするDevice /mnt/hdd/19_02.img3 doesn't exist or access denied.
sudo cryptsetup plainOpen --offset=$(expr 512 \* 34686976) /mnt/hdd/19_02.img img
私のパスワードを尋ねましたが、これも許可されましたが、Requested offset is beyond real size of device /mnt/hdd/19_02.img.
「まあ、cryptsetup
オフセット値にブロックサイズを掛けます」と返しました。
sudo cryptsetup plainOpen --offset=34686976 /mnt/hdd/19_02.img img
私のパスワードを尋ね、パスワードも受け入れられ、正常に返されました。しかしsudo mount /dev/mapper/img /mnt/img
文句を言うmount: /mnt/img: wrong fs type, bad option, bad superblock on /dev/mapper/img
。分析の結果、sudo lsblk -f /dev/mapper/img
ファイルシステムが認識されないことがわかりました。
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
img
暗号化されたデバイスはLUKS
スキーマによって生成されるためplainOpen
。ただし、オプションは提供されませluksOpen
ん--offset
。
これがすることはsudo cryptsetup luksOpen --offset=34686976 /mnt/hdd/19_02.img img
ですcryptsetup: Option --offset is supported only for open of plain and loopaes devices and for luksFormat
。 (試していませんが、luksFormat
LUKSデバイスヘッダを設定し、マスターキーを暗号化します。)
問題は結局
cryptsetup luksOpen
画像ファイルのオフセットを処理する方法は?
答え1
fdisk
ここでは少し愚かです。パーティションのデバイス名を表示するときは、指定されたディスク装置全体の名前を取得してパーティション番号を追加します(ディスクp
装置名全体の最後の文字も数字の場合はプレフィックスを追加します)。 。その名前のデバイスが実際に存在することを確認せずにこれを行います。
つまり、イメージファイルに名前が付けられていて/mnt/hdd/19_02.img
直接スキャンするために使用するfdisk
場合、そのようなパーティション名は/mnt/hdd/19_02.img3
完全にフィクションであり、使用できません。
オフセットを手動で計算する代わりに、イメージファイルをループデバイスに追加し、自動的にパーティションを検出することができます。
sudo losetup -P /dev/loop0 /mnt/hdd/19_02.img
-P
システムがオプションをサポートするのに十分な新しいシステムである場合は、自動的losetup
にパーティションデバイスが必要です。/dev/loop0p1
/dev/loop0p2
/dev/loop0p3
パーティションループデバイスをサポートしていない以前のディストリビューションでは、同じ目的でこのkpartx
コマンド(device-mapper-multipath
別途パッケージ化されていない場合はツールに付属する可能性があります)を使用できます。この場合、2つのステップを実行する必要があり、デバイス名は少し異なります。
sudo losetup /dev/loop0 /mnt/hdd/19_02.img
sudo kpartx -a /dev/loop0
kpartx
このように使用すると、パーティションデバイスが、たとえば背面/dev/mapper
に/dev/mapper/loop0p1
表示されます。
これで、次のいずれかを実行できます。
sudo cryptsetup luksOpen /dev/loop0p3 img
または
sudo cryptsetup luksOpen /dev/mapper/loop0p3 img
パーティションデバイスを使用するのか処理するのlosetup -P
かkpartx
によって異なります。
イメージにアクセスしたら、パーティションデバイスにマウントされているすべてのファイルシステムをアンマウントし、sudo cryptsetup luksClose
イメージを暗号化してループデバイスのバインドを解除します。
お使いの場合は、kpartx
まず実行してsudo kpartx -d /dev/loop0
パーティションデバイスを解放してください。これを使用した場合は、losetup -P
この手順は必要ありません。
その後、ループデバイスを解放します。sudo losetup -d /dev/loop0
。