Windows PCでmac OS、Windows、Linuxをトリプルブート (High Sierra編)

High Sieeraの通知が来たのでアップグレードすることにしました。機種は前回と同じ、Thinkcentre M73とThinkpad X220です。

注意:macOSは動作する機種が限られるのでインストールする前に機種のスペックをチェックして下さい。またBIOSもOSX86のサイトで見でmacOS用に最適化してください。

Thinkcentre M73のアップグレード

直接アップグレードする方法で試してみました。方法はサイトにあるとおりです。

私の機種はSSDでなくHDDなのでAlternative Guideの方法を使います。ところがインストール途中で止まってリブートしてしまうので先に進めません。High Sierra用のUniBeastはまだないのでUSBドライブを使った方法にしてみました。

まず8GB以上のUSBドライブを挿してmacOSでバニラのインストールディスクを作ります。

$ sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ High\ Sierra.app --nointeraction

sourceforgeから最新のCloverをダウンロードしてサイトのとおりにインストールします。そしてUSBドライブのEFIにkextsとconfig.plistをインストールします。

このUSBドライブドライブをブートします。アップグレードもできますが、問題の少ないクリーンインストールをお勧めします。インストールが終わったら、最新のsierraのMultiBeastを使ってCloverをインストールします。

以上で終了です。

Thinkpad X220の再インストール

用意するもの

  • High Sierraのインストールディスク

Thinkpad X220用のEFIを入れ替えればOKです。

  • MS Windows 7のインストールディスク

CDまたはUSBをディスクまたはイメージファイル(WIMファイル:cdrivebackup.wim)

  • MS Windows 10のインストールディスク(WIMファイルを使う場合)

Windows 10のISOをMSサイトからダウンロードします。MS WindowsでrufusユーティリティでPartition SchemeをGPT partition Scheme for UEFIにしてUSBインストールディスクを作成します。

  • LinuxのLive用ディスク(例:Linux Mint 18.2 Sonya KDE)

LinuxのターミナルまたはrufusユーティリティのddコマンドでUSBディスクを作成します。

High Sierraのインストール

これにはかなりはまって、MS Windowsのパーティションが引っかかってインストーラーが動きません。そこでバックアップをとってMSとmacOSのパーティションを消してインストーラーを走らせてみました。

ところがHDDユーティリティでパーティションのみでHDDドライブを認識しません。そのためパーティション作成が出来なくなっています。そこで前バージョンのSierraのUSBインストールでパーティションを作成してからHigh Sierraのインストールをします。

Disk Utilityの左上のアイコンからすべてのデバイスを表示にチェックします。

パーティションを作成してHigh Sierraのインストールをします。

インストールがおわったらunidentified developersのアプリケーションを開けるように設定します。

$ sudo spctl --master-disable

Windows 7のインストール

BIOSでUEFI Onlyにしてブートします。UEFIとMBRの両方だとインストーラーがMBRとディスクを認識して先に進めません。

Windows 7のインストールディスクでインストールする場合は、macOSで作ったMS用のパーティションを消してMS用の用のパーティションを作成し、そのままインストールを続けます。

WIMイメージファイルの場合は、まずWindows 10のインストーラでmacOSで作ったMS用のパーティションを消してMS用の用のパーティションを作成します。

MSRパーティションとWindows用のパーティションの2つが作成してあることを確認してリブートして電源をオフにします。

BIOSをUEFIとMBR両方の設定にしてLive用Linuxを起動します。WIMファイルはWindowsのインストーラからdismを使ってもできるのですが、WIMファイルはP7zipで圧縮してあるだけなので、Linuxから操作したほうが簡単です。

バックアップのイメージファイル、cdrivebackup.wimをHDDのWindows用パーティションに移して、ターミナルから、

$ sudo 7z x cdrivebackup.wim

として展開します。

Windows 10のインストーラを起動してCMDターミナルを開きます。ブートシステムを作成します。

x:\>diskpart
x:\>list volume
x:\>select volume 1 <-- UEFI
x:\>assign letter b
x:\>list volume
x:\>exit
x:\>bcdboot c:\windows /s b: /f UEFI

Linuxのインストール(例:Linux Mint 18.2 Sonya KDE)

BIOSをUEFIMBR両方の設定にしてLive用Linuxを起動します。パーティションを多くしたくないのでLVMを使ってみます。

formatコマンドでブート用(500MB)とLVM用(残り全部)を作成します。タイプをブート用はLinux filesystem(20)、LVM用にはLinux LVM(30)にします。

Optional: LUKS暗号化する場合

LVM用のディスクをcryptsetupでLUKSディスクにします。このあとLVMの作業にとりかかります。

LVMでパーティションの作成

$ sudo pvcreate <LVMパーティション> (例:/dev/sda7、LUKSの場合は/dev/mapper/LUKS name)
$ sudo vgcreate <VG name> <LVMパーティション>
$ sudo lvcreate --name <NAME> --size <SIZE> <VG name>

lvcreateで最小限の区分けでシステム用、home用、swap用を作ります。

最大限ディスクを使うには次のようにします。

lvcreate --name <NAME> -l +100%FREE <VG name>

Installation

インストーラーを起動します。

パーティションのところでManualを選択します。

home、swap、システムそしてbootのパーティションを変更します。

homeパーティション:

Use as EXT4
Formatにチェック
Mount Point: /home

システムパーティション:

Use as EXT4
Formatにチェック
Mount Point: /

swapパーティション:

Use as SWAP

bootパーティション

Use as EXT2
Formatにチェック
Mount Point: /boot

Boot loaderはUEFIのある/dev/sda1を選択します。

パーティショニングが終わったらインストールを続けます。

インストールが終わったらリブートしないでインストーラを終了します。

Post Installation

LVMとLUKS(Optional)がブート時に使えるように修正します。

HDDにインストールしたパーティションをマウントします。

$ sudo mkdir /target
$ sudo mount /dev/<VG name>/<system name> /target
$ sudo mount /dev/<VG name>/<home name> /target/home
$ sudo mount  /dev/<boot partition> /target/boot
$ sudo mount -o bind /dev /target/dev
$ sudo mount -o bind /sys /target/sys
$ sudo mount -o bind /proc /target/proc
$ sudo chroot /target
$ sudo cd /etc/initramfs-tools

hooks:

$ sudo cp -a /usr/share/initramfs-tools/hooks/lvm2 ./hooks
$ sudo chmod 755 ./hooks/lvm2

script: (なくても動きます)

$ sudo mkdir -p ./scripts/local-block
$ sudo cp -a /usr/share/initramfs-tools/scripts/init-premount/lvm2 ./scripts/init-premount
$ sudo cp -a /usr/share/initramfs-tools/scripts/init-bottom/lvm2 ./scripts/init-bottom
$ sudo cp -a /usr/share/initramfs-tools/scripts/local-top/lvm2 ./scripts/local-top
$ sudo cp -a /usr/share/initramfs-tools/scripts/local-block/lvm2 ./scripts/local-block
$ sudo chmod 755 ./scripts/init-premount/lvm2  ./scripts/init-bottom/lvm2 ./scripts/local-top/lvm2 ./scripts/local-block/lvm2

initramfsを更新します。

$ sudo update-initramfs -u -k all

LUKSを使う場合(Optional)

NOTE: 最新の方法ではなくて旧式の方法です。

blkid <LUKSパーティション>でUUIDを調べます。

conf.d/cryptroot:

CRYPTOPTS=target=sdaX_crypt,source=/dev/disk/by-uuid/<UUID>

hooks:

旧式のスクリプトファイルをダウンロードして実行形式にします。

https://labs.hottuna.tk/OpenWrt/stuff/archives/triple_boot/

$ sudo chmod 755 ./hooks/cryptroot

modulesファイルに追加します。

dm-crypt 
dm-mod

modules(Optional): レノボキーボードを使う場合追加します。(LUKSのパスワード解除にキーボードを使うため)

hid
usbhid
hid_generic
ohci_pci
hid-lenovo

initramfsを更新します。

$ sudo update-initramfs -u -k all

リブートします。

UEFIの編集

WindowsからEasyUEFIを使いUEFIメニューを編集します。もしCloverのブートメニューがなければ次のように作ります。

アプリケーションのHomeに戻ってメニューの一番上にもっていきます。

Optional

Numix Icon Theme

$ sudo add-apt-repository ppa:numix/ppa
$ sudo apt-get update
$ sudo apt-get install numix-icon-theme

IME

aptまたはaptitudeでfcitxをインストールします。

fcitxと関連のlibs、frontend、mozc、fcitx-classic-uiをインストールします。

ターミナルからim-configを実行して、fcitxを選択します。

ログアウトして再ログインします。

メニュー->Applications->Settingsからfcitxを実行してmozcを追加します。

  • BroadcomのFirmware

BroadcomのWi-Fiモジュールの換装を行った場合、Firmwareをイントールします。

$ sudo apt install firmware-b43-installer

Troubleshoot

  • High Sierra(Thinkpad X220)音がならない

ThinkPad X220 macOS 10.13 Utility and Kext Pack の中の/EFI/CLOVER/kexts/Other/AppleHDA_20672/Library/Extentionsにコピーし、Kext Utilityでアップデートします。

References:

How to Create a macOS High Sierra Public Beta Installation USB