読者です 読者をやめる 読者になる 読者になる

USBメモリにUbuntuをインストール "USBuntu"

技術ネタ 環境構築 Ubuntu

最近、Ubuntu 14.04をインストールしたUSBメモリを外出時に携帯しています。

USBメモリにインストールしたUbuntu、名付けて「USBuntu」。

これがあると、外出先にPCさえあれば、いつでも自分専用の環境を使うことができ、なおかつ、そのPCに一切変更を加えず不要なデータも残さなくて済む、というメリットがあります。

この環境の作り方を忘れてしまいそうなので、以下に作り方を記録しておきます。(自分用のメモとして)

ちなみに、現在使用しているUSBメモリは、コレ。

f:id:yu39n:20160611202750j:plain
シリコンパワーのUSB 3.0対応の64GB。

USB 3.0対応を選択したのは、やっぱり速度を重視したため。

Ubuntuをインストールするだけなら容量は64GBも必要としないけれど、WindowsMacとデータ共有するための領域を用意しておきたかったことと、あとになって容量を増やしたくなる可能性も考慮したため、自分の財布事情と相談した結果、64GBを選択。

要件

とりあえず、以下。

参考情報

以下のサイトの情報を参考とさせていただきました。感謝。

準備

環境構築に先駆けて、以下の準備を行う。

  • USBメモリを調達しておく。
  • 事前にUbuntu 14.04 LTS 日本語 RemixのISOイメージをダウンロードし、DVD-Rに書き込み、Ubuntuインストール用DVDを作成しておく。

手順

以下、自分用のメモなので、超簡単に。

Ubuntu Live DVDで起動

事前に準備したUbuntuインストール用DVDを使って、Ubuntuを起動する。

USBメモリパーティション設定

Ubuntuが起動したら、USBメモリを挿入。

GPartedを使って、USBメモリ上に、4GBのfat32領域と、残りを全てext4領域でパーティション設定。

ちなみに、fat32領域がWindowsMacとのデータ共有用領域、ext4領域がUbuntuインストール用領域。

USBメモリUbuntuをインストール

ext4の領域にUbuntu 14.04をインストール。

インストールの詳細は割愛。だって、一般的なインストール方法だし。

ただし、注意点としては、ブートローダのインストール先。

USBメモリを指定すること。間違ってもHDDを指定してはいけない。

万が一を考慮して、上記の準備段階で、PCからHDDを外しておくほうが良い。

USBブートでUbuntu起動

UbuntuをインストールしたUSBメモリを使って、USBブートでUbuntuを起動する。

ごにょごにょ

Ubuntuが起動したら、Terminalを起動して、以下を実行。

$ sudo chmod -x /etc/grub.d/30_os-prober
$ sudo apt-get update
$ sudo apt-get -u dist-upgrade
$ 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/
$ emacs -nw efi/EFI/BOOT/grub.cfg
$ sudo umount efi

尚、上記で /dev/sdb1 の部分は、環境にあわせて適宜変更。

また、下から2行目のemacsによる編集では、grub.cfgに以下の記述を追加する。

configfile (hd0,2)/boot/grub/grub.cfg

※この部分が参考にしたサイトとの違いで、参考にしたサイトの通りに記述すると、うちのMacBook AirではUbuntuの起動ができなかった・・・

結果

上記で完成した「USBuntu」を使った結果。

まずはWindows PC。
f:id:yu39n:20160611203724j:plain

そして、MacBook Air
f:id:yu39n:20160611203749j:plain

もちろん、どちらもHDD(SSD)には別のOS(WindowsMacOS)がインストールされたままなので、USBメモリを挿入していない状態で通常ブートさせれば、それぞれの環境が使用可能。

トラブルシューティング

以下、参考まで。(環境依存の可能性あり)

うまく起動しない場合

/etc/default/grub を開いて、GRUB_CMDLINE_LINUX_DEFAULTを以下のような内容に変更。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video.use_native_backlight=1"

2016年3月1日追記

チューニングを行いたいと思います。

まず、/tmpをRAMに移して、USBメモリの書き込みを減らします。

/etc/fstabに以下の記述を追加します。

tmpfs /tmp tmpfs defaults,noatime 0 0
tmpfs /var/tmp tmpfs defaults,noatime 0 0

次に、swapをファイルで1GB確保し、実メモリを使い切るまではswapを使わないように設定します。

まずはswapファイルの作成から。

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1000
$ sudo mkswap /swapfile
$ sudo echo "/swapfile swap swap defaults 0 0" >> /etc/fstab

そして、/etc/sysctl.confに以下の記述を追加。

vm.swappiness = 0

以上。