概要
ディスプレイ/キーボードを持たないPC (Intel NUC BOXNUC5PPYH) にArch Linuxをインストールするために行ったことを書きます。
前提
- ターゲットとなるPCはディスプレイ、キーボードを持ちませんが、USBでBootできるように設定されている。
- ネットワーク上にはDHCPサーバがあり、適切にIPアドレスが振られる。
- 別PCのVirtualBox上にArch Linuxをインストールし、archisoを使ってsshサーバをデフォルトでenableにしたISOイメージを作る。
- ISOイメージをUSBメモリに書き込み、ターゲットPCで起動する。
手順
Arch LinuxをVirtualBox上にインスールする。
Arch Linux をゲストにする を参考に、Guest Additionsを入れましたが、よくよく考えてみれば、scpでゲストPCからイメージを取り出すことでもよさそうです。
archisoのダウンロード
archiso をダウンロードします。
pacman -S archiso
設定ファイルのコピー
relengプロファイルをコピーします。
mkdir ~/myarchive
cp -r /usr/share/archiso/configs/releng/ ~/myarchlive
設定ファイルの修正
~/myarchive/releng/airootfs/root にコピーされたcustomize_airootfs.shにrootパスワードとsshのenableを追加します。
vi ~/myarchive/releng/airootfs/root/customize_airootfs.sh
下記を追記します。rootのパスワードはpasswordを適切な文字に置き換えてください。
echo root:password | chpasswd
systemctl enable sshd.service
ISOイメージを作成
ISOイメージを作成します。時間がかかります。
cd ~/myarchive/releng
./build.sh -v
イメージファイルをVirtualBoxのホストPCにコピー
出来上がったイメージファイルをVirtualBoxのホストPCにコピーします。
cp ~/myarchive/releng/out/archlinux-2016.03.31-dual.iso /media/sf_test
お試し実行
VirtualBox に別インスタンスを作成して、上記で作成したisoファイルを指定して正常にsshログインできるか試します。
VirtualBox のゲストPCにログインするには、設定 - ネットワーク - 高度でゲストポート22に対するポートフォワーディングを有効にします。
USBに書き込む
USBインストールメディア を参考にUSBに書き込みます。
USBメディアをターゲットPCに接続して起動
USBメディアをターゲットPCに接続して起動します。archisoで作成したイメージが起動するので、DHCPサーバにより振られたIPアドレスにsshでログインすることができます。
ssh root@(ターゲットPCのIPアドレス)
Arch Linux を インストール
ビギナーズガイド を参考にArch Linuxをインストールします。
sshサーバを有効にする。
ビギナーズガイドを参考にする場合、最後にopensshをインストールしておくのを忘れないでください。
pacman -S openssh
rootでログインする際には /etc/ssh/sshd_config の PermitRootLoginもyesとしておく必要があります。
メディアを抜いて再起動
ターゲットPCをシャットダウンし、USBメディアを抜いて再起動します。
HDD上にインストールしたArch Linuxが起動すれば成功です。
最後に
サーバとかLinuxの勉強用にNUCを購入しましたが、自宅はnote pcのため専用のディスプレイがなく、ヘッドレスインストールをする予定でした。本当はどこかからイメージをダウンロードしてインストールすればいいかなと思っていたのですが、あまり情報がなかったので、自分でやってみました。
似たような方の参考になれば幸いです。
おまけ
この記事からおおよそ1年経って、訳あって再インストールしようとしたのですが、NUCがUSBから起動せず、BIOSの設定でBOOT順序を変更しても、保存されなくて悩みました。
調べてみると BOXNUC5PPYH では、BIOSのBoot Configuration の UEFI Boot のところに Boot USB Devices Firstという項目があり、ここをチェックしていなかったのが原因でした。
せっかく、この記事を見直せばいいと思っていたのに、わざわざNUCをdisplayにつなぎ直す羽目になりました(T_T)。