私は2017 iMacを持っていますが、外部USB3ドライブにUbuntuをインストールしようとしています。外付けドライブにはGPTパーティションテーブル(ハイブリッドMBRなし)があり、次のようにパーティション化されています。
/dev/sda1: EFI partition
/dev/sda2: Windows-To-Go partition
/dev/sda3: ext4 Linux boot partition
/dev/sda4: LUKS / LVM partition
/dev/sda5: extra partition, not currently being used
LUKSパーティションが復号化されると利用できるLVMグループには、Linuxシステムのメインパーティションとなるext4パーティションとスワップパーティションが含まれます。
これらの異なるオペレーティングシステムの起動を容易にするために、Macでrefindを使用しています。
Ubuntuをインストールしたとき、すべてのパーティションがすでに復号化されてマウントされていることを確認し、インストーラーで手動ディスクセットアップを選択しました(Windowsインストールを含む外部ディスク全体を吹き飛ばしたくないので)、手動で指定しました以下:
/boot
のマウントポイントとしての/dev/sda3
/
はLVMグループのメインext4パーティションのマウントポイントとして/dev/sda3
にインストールする必要がありますインストーラーはエラーなしで終了しました。ただし、再起動すると、このUbuntuインストールを起動する方法について2つのオプションがあり、どちらも機能しません。
内蔵ハードドライブのEFIパーティションにインストールされたgrubブートローダーから起動できます。 not Linuxまたは他のオペレーティングシステムがブートローダーをこのドライブに追加するようにしたことに注意してください。 refindを追加して、通常のmacOSドライブのままにしておきたいだけです。それにもかかわらず、refindを使用して起動すると、(initramfs)
プロンプトにエラーメッセージなしでドロップする前にUbuntuロゴが表示されます。
/dev/sda3
にインストールする必要があると指定したブートローダーを選択すると、ロードが開始され、次のエラーで失敗します。
mount: can't find /root in /etc/fstab
...
mount: mounting /dev on /root/dev failed: No such file or directory
mount: mounting /run on /root/run failed: No such file or directory
run-init: current directory on the same filesystem as the root: error 0
Target file system doesn't have requested /sbin/init
run-init: current directory on the same filesystem as the root: error 0
(repeats four more times)
No init found. Try passing init= bootarg.
...そして(initramfs)
プロンプトが表示されます。
これを修正する方法がわかりません! Boot-Repairを使用してみましたが、まったく違いはありませんでした。助けて!
ようやく機能しました!主に 別の暗号化関連の質問に対するこの回答 に感謝します。ブートパーティションを暗号化する必要はないと思っていたので、最終的には暗号化しませんでしたが、上記とは異なるいくつかの重要なことがありました。大きな問題は、Ubuntuインストーラーがパーティションの設定方法を正確に把握できなかったため、新しい[/ projects/freshmeat_linux/linux]インストールにchroot
を実行し、何が起こっているかを示す変更を加えてから、 GRUBを再インストールします。私がやったことは次のとおりです。
/dev/sda
ではなく/dev/sda3
にインストールするように指定しました/dev/sda1
を指定しましたインストールが正常に終了した後、再起動しないように指示し、ターミナルで次の操作を行いました。
Sudo mount /dev/mapper/my_linux_lvm_partition /target Sudo mount /dev/sda3 /target/boot Sudo mount /dev/sda1 /target/boot/efi Sudo mount --bind /dev /target/dev Sudo mount --bind /proc /target/proc Sudo mount --bind /sys /target/sys Sudo chroot /target
インストールにchroot
'したので、/etc/default/grub
を編集し、次の行を追加しました:GRUB_ENABLE_CRYPTODISK=y
blkid
を使用して、さまざまなパーティションのUUIDを取得しました
/etc/crypttab
に行を追加しました:my_luks_partition_name UUID=<UUID of /dev/sda4> none luks,discard
Sudo grub-install --target=x86_64-efi --efi-directory /boot/efi --bootloader=ubuntu --boot-directory=/boot/efi/EFI/ubuntu --recheck
Sudo grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg
Sudo update-initramfs -c -k all
LUKSパーティションの名前を正しく取得することが重要であることに気付きました。そうしないと、update-initramfsの実行時にエラーが発生します。
これは私が理解するために欲求不満を引っ張って2日間丸ごとかかった。この情報が、他の誰かがあまり苦労せずにそれを行うのに役立つことを願っています。