こんにちは、河野です。
開発用の仮想環境構築のためpackerを試そうとしていたんですが、それ以前にkickstartのところで躓いてしまったのでした。
最初の設定ファイル
手動でインストールしたCentOS6.5の環境にあるanaconda-ks.cfgを利用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# Kickstart file automatically generated by anaconda. #version=DEVEL install cdrom lang ja_JP.UTF-8 keyboard jp106 network --onboot no --device eth0 --bootproto dhcp --noipv6 rootpw --iscrypted $6$sOuGA57tEaS0yCfQ$S8jfkx4.BPc1nZ4UZKzyNEC7VXNVlxkeTiD0JU77VnQ8fYipeeZPhNkJgtcUzKPRklsKyGEmnO5V.5VBCDz2F. firewall --service=ssh authconfig --enableshadow --passalgo=sha512 selinux --enforcing timezone --utc Asia/Tokyo bootloader --location=mbr --driveorder=sda --append="nomodeset crashkernel=auto rhgb quiet" # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work #clearpart --linux --drives=sda #volgroup VolGroup --pesize=4096 pv.008002 #logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200 #logvol swap --name=lv_swap --vgname=VolGroup --grow --size=819 --maxsize=819 #part /boot --fstype=ext4 --size=500 #part pv.008002 --grow --size=1 repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100 %packages --nobase @core %end |
とりあえずこのファイルをhttpでアクセスできる場所に設置して、kickstartのオプションを指定して起動します。tabを押してから、ks=anaconda-ks.cfgのURL を入力します。
こんな感じです。
これでkickstart自体は上手く開始されたのですが、
1. パーティションの設定が必要
2. CentOSってRepoないと怒られる
という現象がおきました。
パーティションの設定
kickstartの設定で、パーティション設定をお任せにするオプションがあるので、コメントアウトされているパーティション設定部分を削除し、代わりに以下を追加しました。
1 2 |
clearpart --linux --drives=sda autopart |
リポジトリの設定
anaconda-ks.cfgには記載されていても、実際にはマウントされていないとか、そういう問題があるそうです。
CentOS • View topic - Kickstart install error - Cannot find a valid baseurl for repo: CentOS
Try removing the following line from your kickstart file:
repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
Anaconda should find the repodata without this line if the repodata is located on the CD that you just booted from.
削除してみたら?と書いてあったので、repo
の行を削除しました。
変更後の設定
コメントも削除して、以下のようになりました。これでもう一度試してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
install cdrom lang ja_JP.UTF-8 keyboard jp106 network --onboot no --device eth0 --bootproto dhcp --noipv6 rootpw --iscrypted $6$sOuGA57tEaS0yCfQ$S8jfkx4.BPc1nZ4UZKzyNEC7VXNVlxkeTiD0JU77VnQ8fYipeeZPhNkJgtcUzKPRklsKyGEmnO5V.5VBCDz2F. firewall --service=ssh authconfig --enableshadow --passalgo=sha512 selinux --enforcing timezone --utc Asia/Tokyo bootloader --location=mbr --driveorder=sda --append="nomodeset crashkernel=auto rhgb quiet" clearpart --linux --drives=sda autopart %packages --nobase @core %end |
この設定でパッケージもインストールされ、一通りのセットアップが完了したのですが、最後に再起動を促す画面で止まってしまいました。
インストール後に再起動する
%packages の直前にrebootと追加しました。
他、気になったところの修正
network, fiewall, selinux の設定を修正しました。
再度変更した設定
以下のようになりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
install cdrom lang ja_JP.UTF-8 keyboard jp106 network --onboot yes --device eth0 --bootproto dhcp --noipv6 rootpw --iscrypted $6$sOuGA57tEaS0yCfQ$S8jfkx4.BPc1nZ4UZKzyNEC7VXNVlxkeTiD0JU77VnQ8fYipeeZPhNkJgtcUzKPRklsKyGEmnO5V.5VBCDz2F. firewall --disabled authconfig --enableshadow --passalgo=sha512 selinux --disabled timezone --utc Asia/Tokyo bootloader --location=mbr --driveorder=sda --append="nomodeset crashkernel=auto rhgb quiet" clearpart --linux --drives=sda autopart %packages --nobase @core %end |
これで再度インストールしてみたところ、最後の再起動も自動で行われるようになりました。
セットアップできたのに上手く起動しない!!!
再起動後、また起動オプションの画面になったので、boot from local driveを選択します。
すると、boot failureになってしまいました…
boot failureの解決策
エラーメッセージでググったところ、以下のページを発見しました。
https://www.virtualbox.org/ticket/2680
回避策は2つあるようです。
1. VMの起動時にCentOSのisoファイルを、仮想ドライブから除去しておく
2. システムの起動順序を変えて、HDDをCD-ROMより優先しておく
とりあえず、isoファイルを仮想ドライブから除去したところ、問題なく起動しました!
と、あっさり書いていますが、このエラーが起きてから原因がわかるまで、kickstartの方でインストールが上手く行っていないんだと思い込んでいて、何度もanaconda-ks.cfgを書き換えたりして、数時間を無駄にしたのでした。
まとめ
エラーが起きたら、エラーメッセージでググりましょう。思い込み良くない。
Enjoy kickstart!
パーティションの設定画面で止まってしまう(2014/01/28 追記)
↑上の設定で最初は上手く行っていたのですが、環境によってはパーティション初期化の設定画面で止まってしまうことがありました。
色々とググってみたところ、zerombrという設定を追加することで解決できました。
[CentOS] unexpected 'reinitialize disk?' prompt form anaconda during kickstart with zerombr
16.13. ハードディスクの初期化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
install cdrom lang ja_JP.UTF-8 keyboard jp106 network --onboot yes --device eth0 --bootproto dhcp --noipv6 rootpw --iscrypted $6$sOuGA57tEaS0yCfQ$S8jfkx4.BPc1nZ4UZKzyNEC7VXNVlxkeTiD0JU77VnQ8fYipeeZPhNkJgtcUzKPRklsKyGEmnO5V.5VBCDz2F. firewall --disabled authconfig --enableshadow --passalgo=sha512 selinux --disabled timezone --utc Asia/Tokyo bootloader --location=mbr --driveorder=sda --append="nomodeset crashkernel=auto rhgb quiet" zerombr clearpart --linux --drives=sda autopart %packages --nobase @core %end |