MacBookPro2016で、Ubuntu16.04LTSが起動できるUSBメモリを作ろうと思ったら、思いの外大変だったので、やり方をまとめます。
Ubuntu 17.10 Desktopでも試しましたが、USBメモリに対してインストールしようとすると、失敗しました。
概要
- 通常のLinuxのvfatフォーマットのEFI領域だとMacでは起動できないので、ファイルシステムをHFS+フォーマットに書き換える必要がある。
- Ubuntuを普通にインストールしてから、LiveCDで起動して、HFS+にフォーマットしてgrub-installする。
- UbuntuのGRUBのメニューからInstall Ubuntuを選ぶと、Bootcampのブート領域壊すので、ブートローダーをインストールしないインストール方法を取る必要がある(LiveCD起動後
ubinstall -b
を実行)が、VirtualBox上でインストールを行うのが楽だと知った。
必要なもの
- USBメモリ
- USBキーボード(インストール直後認識しないため)
- USBマウス(インストール直後認識しないため)
手順
VirtualBoxをインストールする。VirtualBox Extension Packも必要。
Ubuntu 16.04 Desktopのisoをダウンロードする。
VirtualBoxで以下のような仮想マシンを作る。
- Type: Linux
- Version: Ubuntu 64-bit
- System->Motherboard: Enable EFIにチェック
- Storage: Ubuntuのisoのみマウントする
- Ports->USB: Enable USB Controllerにチェックを入れて、USB 3.0 Controllerを選ぶ
- 仮想マシン起動前に、DiskUtilityを起動して、MacでUSBメモリがマウントされていないことを確認する
仮想マシンを起動して、"Install Ubuntu"を選ぶ。インストール先について、Something Elseを選ぶ。
USBメモリに以下のようにパーティションを作る。
- EFI Partition,512MB
- Ext4,マウントポイント:/,残りの容量を割り当てる
あとはそのままインストールする。
インストール後、仮想マシンにUbuntuのisoを再びマウントして(インストール後自動的に外される)、再度仮想マシンを起動し、今度はTry Ubuntuの方を選ぶ。
以下、ターミナルで操作する。
# USBメモリのストレージの名前を特定する。(以下、/dev/sdaとする)
lsusb
# USBメモリが既にマウントされていたら一度マウントを外す。
sudo umount /dev/sda2
# パーティションを変更する。
sudo gdisk /dev/sda
パーティションの変更は以下のようにする。
-
p
で、EFIとext4の2つパーティションがあることを確認する(間違ってもMacBook本体出ないことを確認する) -
d
->1
で、EFIのパーティションを削除する -
n
->1
->サイズについてはそのまま->タイプ:AF00 -
w
で書き込み
HFS+を扱うためのソフトウェアをインストールする
sudo apt update
sudo apt install hfsprogs
上記でインストール出来ない場合(なぜかそんなことがあった)、以下から直接ダウンロードしてインストールする。
sudo apt install ./hfsprogs_332.25-11_amd64.deb
HFS+でEFIのパーティションをフォーマットする。
sudo mkfs.hfsplus /dev/sda1
USBメモリのファイルシステムをマウントして、chrootする。
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
sudo mount -o bind /dev /mnt/dev
sudo mount -o bind /sys /mnt/sys
sudo mount -t proc none /mnt/proc
# 以下をしておくとネットワークが使える
cp /etc/resolv.conf /mnt/etc/resolv.conf
sudo chroot /mnt
grub-installに必要なものと、Macでの起動に必要なものをインストールする。
sudo add-apt-repository ppa:detly/mactel-utils
sudo apt-get install mactel-boot grub-efi-amd64
grub-installをする。
mkdir -p /boot/efi/EFI/Ubuntu/
# 以下はMacの仕様上必要らしい
touch /boot/efi/EFI/Ubuntu/mach_kernel
touch /boot/efi/mach_kernel
grub-install --target x86_64-efi --boot-directory=/boot --efi-directory=/boot/efi --bootloader-id=Ubuntu
# Macでブート可能にする
hfs-bless /boot/efi/EFI/Ubuntu/System/Library/CoreServices/boot.efi
exit
EFIをフォーマットしたので、fstabを書き換える。
# UUIDを調べる
lsusb -o NAME,UUID
sudo vi /mnt/etc/fstab
# UUIDとファイルタイプvfat->hfsplusを書き換える
UUID=C59D-1B30 /boot/efi hfsplus defaults 0 1
仮想マシンをシャットダウンする。
Optionボタンを押しながらMacを起動することで、Ubuntuが出現する。
あとは、こちらのMacBookPro上でUbuntuを動かした記事を参考に、キーボードとタッチパッドその他が使えるようにセットアップする。
参考
- https://medium.com/@mmiglier/ubuntu-installation-on-usb-stick-with-pure-efi-boot-mac-compatible-469ad33645c9
- http://takuya-1st.hatenablog.jp/entry/2016/12/03/011022
- http://takuya-1st.hatenablog.jp/entry/2016/10/28/011306
- https://moneyforward.com/engineers_blog/2016/02/22/ubuntu/
- https://unix.stackexchange.com/questions/280500/unable-to-reach-network-from-chroot
- http://d.hatena.ne.jp/tmatsuu/20101225/1293262061