最近、基本的な4MiB LUKS2デバイスを作成しました--offset
。このfile
コマンドはデバイスを正しく識別し、対応するUUIDを一覧表示しますが、起動時に自動的に開いたり表示されたりしません/dev/disk/by-uuid/...
(その後もupdate-initramfs
)。
手動で実行すると期待cryptsetup open
どおりに動作しますが、cryptdisks_start
開くことはできません。私の他の機器UUID=
と同様に指定されます。/etc/crypttab
UUIDの代わりに「親」ブロックデバイスパスを使用することが有効です。
確認すると、xxd
正しいマジック番号(オフセット0の「LUKS」)が表示され、ヘッダーは他のLUKS2デバイスと同じオフセットで始まります(ここではい正しく検出されました)。デバイスが検出されないのはなぜですか? UUIDで開くにはどうすればよいですか?
ベストアンサー1
技術的には、ここではカーネルに問題はありません。これに関連する唯一のカーネルは、dmcrypt
デバイスによって構成されたデバイスマッパーですcryptsetup
。
cryptsetup
ブロックデバイスに保存されているメタデータに基づいてデバイスマッパーデバイスを設定できるため、エラーもありません。
実際、/dev/disk/by-uuid
LUKSudev
デバイスを指す項目やLUKSデバイスの検索を担当する項目は保存されていません(出力を参照udevadm info /dev/the-block-device
)。
udev
これについては、使用してくださいblkid
(たとえば、/lib/udev/rules.d/60-persistent-storage.rules
組み込みバージョンのDebianのルールを参照)。
あなたの場合はblkid
報告してください。TYPE="jmicron_raid_member"
。 RAIDアレイメンバーの場合は、直接アクセスしないでください。blkid
内部に何が保存されているかを報告しないことが正しいです。
これでなければjmicron_raid_member、たぶん、いくつかのRAID構成の署名がまだ含まれている可能性があります。たとえば、SSDが一度PCに接続され、ATAモードがBIOSでAHCIの代わりにRAIDに設定されたためです(そして、blkdiscard
使用する前に実行するのを忘れました)。あるいは、最後の512バイトが正確にJ
511番目のバイトである可能性がありますM
。
blkid
検出を中止するにはjmicron_raid_member
意図的なものではなく、最後の512バイト単位が何も使用されていないことが確実な場合は、RAID署名を消去する必要があります。これは明らかにjmraidの場合です。ブロックデバイスの最後の512バイト単位で見つかりました、または次のようなものを手動で使用する:
size=$(blockdev --getsize -- "$dev") &&
dd if=/dev/zero of="$dev" seek="$((size - 1))" count=1
またはutil-linux
' wipefs
:
wipefs -t jmicron_raid_member -- "$dev"
署名をリストします。
wipefs -a -t jmicron_raid_member -n -- "$dev"
削除する項目を表示します。
wipefs -a -t jmicron_raid_member -- "$dev"
ワイプ。