ArchLinuxでchroot環境を構築した話

タイトル通り。
とりあえず適当にディレクトリを作って#ArchInstallBattleと同じようにpacstrap ~/dir base base-develしたけどエラーが出た。
調べてみると、pacstrapを利用するにはarch-install-scriptsをインストールする必要があるらしい。
でも実環境を汚したくないので、どうすればいいものか…とググってみると、ArchbootstrapというGentooでいうstage3みたいなのがあったので使ってみた。
以下手順。

とりあえずjaistからbootstrapを落としてきます、32bitなOSの場合は末端のx86_64をi686に置き換えてください。

# curl -O http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/2014.01.05/archlinux-bootstrap-2014.01.05-x86_64.tar.gz
# tar xvfp archlinux-bootstrap-2014.01.05-x86_64.tar.gz
# cd ./root.x86_64

ネットワークに接続する場合はresolv.confを、さらにpacmanを使用する場合はmirrorlistをコピーする必要があります。

# sudo cp -L /etc/resolv.conf ./etc/resolv.conf
# sudo cp /etc/pacman.d/mirrorlist ./etc/pacman.d/mirrorlist

dev,proc,sysをマウント

# sudo mount -t proc none ./proc
# sudo mount -t sysfs none ./sys
# sudo mount -o bind /dev ./dev
# sudo mount -o bind /dev/pts ./dev/pts
# sudo mount -o bind /dev/shm ./dev/shm

chroot。自分の環境はzshなので/bin/bash付けないとエラーが出ましたがbashな環境ならいらないかな…。

# sudo chroot ./ /bin/bash

pacmanのgpgキーを生成。これをしないとpacmanが使えない。

# pacman-key --init
# pacman-key --populate archlinux

更新とbase,base-develのインストール

# pacman -Syu
# pacman -S base base-devel --needed

あとは用途に合わせてパッケージを入れればいいかと思います。

参考記事
Install from Existing Linux – ArchWiki