Patriot Memory 64GB
タブレット端末向けに、Ubuntu を起動するためのUSB メモリ環境を作成しました。
その2(GRUB2 編)です。

以下の環境で作業します。

環境 状態
作業PC/HDD 作業PC を内蔵HDD から起動
作業PC/USB 作業PC を外付USB から起動
タブレット/SSD タブレットを内蔵SSD から起動
タブレット/USB タブレットを外付USB から起動

[作業PC/HDD] パーティションの作成

GPrted を使って64GB のUSB メモリに3つの基本パーティションを作成します。

Partition FS Type Size Label
/dev/sdb1 fat32 384MB efi
/dev/sdb2 ext4 52GB patriot
/dev/sdb3 swap 5GB -

[作業PC/HDD] Ubuntu のインストーラの設定

ISO で配布されているUbuntu のインストーラをGRUB から起動するように設定します。
ubuntu-gnome-15.04-desktop-amd64.iso を第1HDDの第3パーティション(hd0,3)の/boot/iso/ ディレクトリに配置しておきます。

/etc/grub.d/40_custom
menuentry 'ISO Ubuntu GNOME 15.04' {
isofile=ubuntu-gnome-15.04-desktop-amd64.iso
loopback loop (hd0,3)/boot/iso/$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/boot/iso/$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}
$ sudo update-grub

[作業PC/HDD] Ubuntu のインストール

GRUB からUbuntu のインストーラISO Ubuntu GNOME 15.04を選択して、/dev/sdb2 にインストールします。

  • サードパーティのソフトウェアをインストール
  • ブートローダは/dev/sdb にインストール

[作業PC/HDD] /dev/sdb1 にEFI ブートローダをインストール

$ sudo apt-get install grub-efi-amd64-bin
$ grub-mkimage -d /usr/lib/grub/x86_64-efi/ -o BOOTx64.EFI -O x86_64-efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot
$ mkdir efi
$ sudo mount /dev/sdb1 efi
$ mkdir -p efi/EFI/BOOT
$ cp BOOTx64.EFI efi/EFI/BOOT/
$ cp -r /usr/lib/grub/x86_64-efi efi/EFI/BOOT/
efi/EFI/BOOT/grub.cfg
configfile (hd0,msdos2)/boot/grub/grub.cfg
$ sudo umount efi

[作業PC/USB] GRUB 設定の更新

USB から起動してGRUB の設定を更新します。

$ sudo chmod -x /etc/grub.d/30_os-probe
$ sudo update-grub

[作業PC/USB] カーネルのダウングレード

Ubuntu GNOME 15.04 x86_64 (カーネル3.19)をインストールしましたが、利用するタブレットのWi-Fi はカーネル3.19 環境においてフリーズを誘発します。
https://bugs.archlinux.org/task/44269

そこでカーネルを3.18 にダウングレードすることにしました。
http://kernel.ubuntu.com/~kernel-ppa/mainline/

USB から起動して、カーネル3.18.17 のDEB パッケージをインストールします。

$ mkdir kernel-3.18.17
$ cd kernel-3.18.17
$ wget -c kernel.ubuntu.com/~kernel-ppa/mainline/v3.18.17-vivid/linux-headers-3.18.17-031817_3.18.17-031817.201506292232_all.deb
$ wget -c kernel.ubuntu.com/~kernel-ppa/mainline/v3.18.17-vivid/linux-headers-3.18.17-031817-generic_3.18.17-031817.201506292232_amd64.deb
$ wget -c kernel.ubuntu.com/~kernel-ppa/mainline/v3.18.17-vivid/linux-image-3.18.17-031817-generic_3.18.17-031817.201506292232_amd64.deb
$ sudo dpkg -i *.deb

[タブレット/SSD] タブレットでセキュアブートを解除

セキュアブートを解除した後、USB から起動します。

[タブレット/USB] タブレットでUbuntu を起動

USB デバイスからの起動を選択すると、GRUB の画面が表示されます。
デフォルトでは最新カーネルが選択されます。追加オプションからカーネル3.18.17 を選択して起動します。