lsblkは、EFIパーティションのファイルシステムはcrypto_LUKSと言い、diskotilはFAT32(デュアルブートArch / mac)と言います。

lsblkは、EFIパーティションのファイルシステムはcrypto_LUKSと言い、diskotilはFAT32(デュアルブートArch / mac)と言います。

MacBookでArchをダブルブートしようとしています。最初はLUKS暗号化でArchをインストールしてみました。残念ながら、ガイドを途中で読んで、それが少し古くなったことに気づいたので、ガイドなしでインストールを続けることができる知識がなかったので、すべてを削除し、今回は暗号化なしで最初から始めました。私ができないまでは大丈夫でしたmount /dev/<appleEFIpartition> /mnt/boot(例:このガイド)誤ったファイルシステム(crypto_LUKSなど)が原因で発生します。 Macブートローダを暗号化していませんでしたが、まだ完全に動作し、macOSで起動して問題なく使用できるため、これがどのように可能かは本当に驚きました。 (私のブートローダプログラムを暗号化すると、コンピュータがクラッシュすると予想しました。)私は再びチェックすることにしました、そしてMacではdiskutil私のEFIはFAT32だと言いました(ボリュームに対するcrypto_LUKSへの言及はありません)。

私はこれがどのように可能であるかとても混乱しています。ここにいるスクリーンショットまず、アーチインストールメディアのファイルシステムを確認し、diskutilmacOSで使用しました。

答え1

通常、LUKS ヘッダーはフォーマット後は保持されません。

設定:

# truncate -s 100M foobar.img
# losetup --find --show foobar.img
/dev/loop0
# parted /dev/loop0 mklabel gpt mkpart boot 1MiB 100%

ルーク:

# cryptsetup luksFormat /dev/loop0p1
# wipefs /dev/loop0p1
DEVICE  OFFSET TYPE        UUID                                 LABEL
loop0p1 0x0    crypto_LUKS d9a4c128-1cb9-4252-a7ec-697ae4c35535
loop0p1 0x4000 crypto_LUKS d9a4c128-1cb9-4252-a7ec-697ae4c35535

脂肪:

# mkfs.vfat /dev/loop0p1
# wipefs /dev/loop0p1
DEVICE  OFFSET TYPE UUID      LABEL
loop0p1 0x36   vfat 524F-02F3
loop0p1 0x0    vfat 524F-02F3
loop0p1 0x1fe  vfat 524F-02F3

したがって、mkfs.vfat 以降、crypto_LUKS ヘッダー署名は消えます。

しかし、これは最終的にLinuxです。 LUKSヘッダーが既知のものであるため、削除される理由があります。 LUKS を使用しない他のオペレーティングシステムでは、状況が異なる場合があります。

後ろに消去されたLUKSヘッダの修正、次のことができます。

# wipefs /dev/loop0p1
DEVICE  OFFSET TYPE        UUID                 LABEL
loop0p1 0x0    crypto_LUKS key to try again ...
loop0p1 0x4000 crypto_LUKS
loop0p1 0x36   vfat        615E-AF44
loop0p1 0x1fe  vfat        615E-AF44

この時点で、次のように指定すると、ファイルシステムを正常にマウントできます。

# mount /dev/loop0p1 /mnt/foobar
mount: /mnt/foobar: unknown filesystem type 'crypto_LUKS'.
       dmesg(1) may have more information after failed mount system call.
# mount -t vfat /dev/loop0p1 /mnt/foobar
# grep foobar /proc/mounts
/dev/loop0p1 /mnt/foobar vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0

したがって、同じデバイスにLUKSとvfat Magicの両方があります。

この時点では、wipefsLUKSヘッダーのみを削除できます。

# umount /mnt/foobar
# wipefs -a -t crypto_LUKS /dev/loop0p1
/dev/loop0p1: 6 bytes were erased at offset 0x00000000 (crypto_LUKS): 4c 55 4b 53 ba be
/dev/loop0p1: 6 bytes were erased at offset 0x00004000 (crypto_LUKS): 53 4b 55 4c ba be

vfatにのみ戻る:

# wipefs /dev/loop0p1
DEVICE  OFFSET TYPE UUID      LABEL
loop0p1 0x36   vfat 615E-AF44
loop0p1 0x1fe  vfat 615E-AF44

そしてそれは次のように検出されます

# file -s /dev/loop0p1
/dev/loop0p1: DOS/MBR boot sector
# blkid /dev/loop0p1
/dev/loop0p1: SEC_TYPE="msdos" UUID="615E-AF44" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="boot" PARTUUID="e3d8e408-2e48-45c4-bd6d-9be685d95ed5"

そして、再びファイルシステムの自動検出を介してインストールされるので、もはや-t vfat必要はありません。

# mount /dev/loop0p1 /mnt/foobar

関連情報