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