USBメモリから起動するArchLinux、という環境を作る。通常のHDDやSSDにインストールしてそこからブートする感覚で、ストレージデバイスとしてUSBメモリを使う。
普通にArchLinuxをインストールする時、isoイメージから起動ディスクを作成して、そこからブートしてインストールするが、今回は既存の環境から必要なデータをコピーするようにした。
ちなみにUEFI+GPT環境。(今回のターゲットはSurface Pro 4だったりする。Secure bootは気にしない方向で…)
なにはともあれlsblkしてUSBメモリが/dev/sdbである事を確認。
ついでにarch-install-scriptsをインストールしておく。
最初の山(最初っていうか山はこれしかない気もする)、パーティショニング。
購入したばかりのUSBメモリ(16GB)、MBRだったのでGPTに変換して、パーティションを切る。作業はともかく、こんな状態であれば良さそう。
[bash]
GPT fdisk (gdisk) version 1.0.1
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): p
Disk /dev/sdb: 30497664 sectors, 14.5 GiB
〜略〜
Number Start (sector) End (sector) Size Code Name
1 2048 1050623 512.0 MiB EF00 EFI System
2 1050624 30497630 14.0 GiB 8300 Linux filesystem
Command (? for help):
[/bash]
要は、
・/dev/sdb1がEFI System(/bootになる)
・/dev/sdb2がLinux filesystem(/になる)
という事。
ターゲットになる環境はRAMが8GBあるし、メインストレージがUSBメモリになるのでswapは無しの方向で。
パーティショニングが完了したらファイルシステムのフォーマットとマウント。
普通にやれば良いが、
ジャーナルを無効にしたext4が良い
とあるので、そうする。
[bash]
[/bash]
次にベースシステムのインストール。
主要パッケージについては既存環境からコピーしてくるので、そのための準備をする。
手軽に取り扱える簡単なhttpdであるところのdarkhttpdを使う。
[bash]
$ sudo pacman -S darkhttpd
$ sudo darkhttpd /var/cache/pacman/pkg
[/bash]
そして/etc/pacman.d/mirrorlistにServer http://localhost/とでも先頭に書いておく。
この状態でpacstrapすれば、/var/cache/pacman/pkgに存在するパッケージはコピーされ、そうでないものは404が返され、(次のリポジトリを探す事になるので)自動的にダウンロードされる。
[bash]
[/bash]
fstabを作成する。
[bash]
[/bash]
/mnt/etc/fstabに書き込む許可が無いよ、と言われたので、genfstabの出力をクリップボードに放り込んで、# gedite /mnt/etc/fstabして強引に放り込んでおいた。
このfstabに、/dev/sdb1等ではなく、きちんとパーティションのUUIDで指定されているかどうか、必ず確認しておく。
chrootしてロケール設定その他諸々てきとうに…
[bash]
[/bash]
最後にブートローダーのセットアップ。
grubを使うのだけど、grub-install時に–removableオプションを付けておけと書いてあったのでそうしてある。
[bash]
[/bash]
/boot/efi/boot/bootx64.efiが存在しているか確認しておく。無ければ以下の感じで。
[bash]
[/bash]
初期RAMディスクの作成をする前にゴニョゴニョしておけとUSB キーに Arch Linux をインストール - ArchWikiに書いてあったのでしておく。タイミングはよくわかってない(最後にやった)。
[bash]
[/bash]
/etc/mkinitcpio.confの中でHOOKSのudev直後にblockと追加しておく。
以上で基本のインストールは完了。その後適宜環境を構築していこう。(今回はここでおしまい)