適当なlinuxからarchlinuxをインストールする
やり方
https://raw.github.com/tokland/arch-bootstrap/master/arch-bootstrap.sh
このスクリプトを使えば簡単に導入ができますが、現在(2013/03/04)、このスクリプトを使うと
pacmanを呼び出す時にライブラリがないとエラーが出るので
PACMAN_PACKAGES変数にlzo2を足せば問題なく動きます
(今はもう修正がされてるかもしれない)
もう少し詳しいやり方
まずインストールしたいhddを用意して
fdiskなどを使ってパーティションを区切っていきます
例えば、/bootを例にすると
# fdisk /dev/sda Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4, default 1): 1 First sector (2048-117266687): 2048 Last sector +sectors or +size{K,M,G} (2048-117266687):+64M Command (m for help): t Partition number (1-4): 1 Hex code (type L list codes): 83
だいたいこんな感じで、必要に応じてswapや/や/homeなども好きなように区切って行きましょう
終えたら書き込みます
Command (m for help): w
区切り終えたらきちんとフォーマットもしておきましょう
またも、/bootを例にして、ファイルシステムはext2にしたいとすると
# mkfs.ext2 /dev/sda1
こんな感じで書き換えます
他に用意したパーティションもこんな感じでフォーマットをしていきましょう
詳しくは割愛します
パーティションを用意できたら
ルートディレクトリにしたいパーティションを
適当なディレクトリにマウントさせて
その他の/homeや/bootなどやchrootするのに必要なprocなども一緒にその中でマウントさせておきます
コマンドにすると
# mount /dev/(ルートディレクトリ) /mnt # mkdir /mnt/{home,boot,proc,sys,dev} # mount /dev/(ホームディレクトリ) /mnt/home # mount /dev/(ブートディレクトリ) /mnt/boot # mount -t proc none /mnt/proc # mount -t sysfs none /mnt/sys # mount -o bind /dev /mnt/dev
だいたいこんな感じです
後はインターネットを用意して
% cd /tmp # wget https://raw.github.com/tokland/arch-bootstrap/master/arch-bootstrap.sh # chmod +x ./arch-bootstrap.sh # ./arch-bootstrap.sh -a i686 -r 'http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/' /mnt
スクリプトを落としてきて実行するだけですが実行する前に
最初に書いたように依存関係の問題でPACMAN_PACKAGES変数にlzo2を足しておきましょう
./arch-bootstrap.shの引数には-aオプションでi686もしくはx86_64を書いてアーキテクチャを指定します
-rオプションでミラーサーバーを指定できます
最後の引数はインストール先です
うまくこのスクリプトが動くと、後は
# chroot /mnt
をして自由に使えますが、カーネルなどが導入されていないので
# pacman -S base
で入れておきましょう
しかし、最初は何もしなければエラーが出ると思うので
# pacman-key --init # pacman-key --populate archlinux
ちゃんと鍵の初期化などをしておきましょう
後はgrubをいれるなり、アカウントを作りなりすればhddから起動できます
後書き
スクリプトを読んでみたけど、いじれば他のディストリビューションでもできそう
ネットワークインストールをすると中でこんなことをしているのかなあ