2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Cobblerを使ってRedHat系OSをネットワーク経由(非PXE)でインストールする

Last updated at Posted at 2015-01-03

前口上

ECS LivaのOSなしモデルを買ったのでOSをインストールすることに。
先人の調査により、少なくともLinuxカーネル3.13以降が必要なのがわかっているので、とりあえずFedora 21 64-bitをインストールしてみた。

Cobblerを使ってPXEブートでインストールしようとしたが、モニターが真っ黒になるだけで先に進まないのでとりあえず諦めて、USBメモリからブートしてCobblerが提供するkickstartファイルを使用してインストールを行った。

というわけで何らかの理由でPXEブートが使えない環境で、ネットワーク経由でRedHat系OSをインストールする方法をECS Livaでの手順を例に挙げ記述する。
手順はシステムのファームウェアモードがBIOSかUEFIかで多少異なる。LivaはUEFIモードしか使用できないが、少し古いコンピュータだとBIOSモードのみだし、最近のコンピュータは大抵どちらかを設定で選ぶことができる。

CentOS 7は同じ手順でできるはずだが、UEFIモードは利用可能な環境が手元にないため未確認。
CentOS 6だとBIOSモードなら以下の手順でできる。UEFIモードは未調査だがこの手順ではできない。
CentOS 5以前はやったことがないのでわからない。私には今さらインストールする機会はないだろう。

CobblerのOSイメージとしてFedora 21を追加

Cobbler自体のインストール手順はこちらで紹介している。CentOS 7をOSイメージとして追加する方法もこの中に書いてある。
さらにOSイメージとしてFedora 21を追加するためには以下のようにする。

2015-04-05追記: 現在私は別の方法でFedora 21のCobblerへの追加を行っている。→Cobblerの省力化のためにプロキシと組み合わせる

Cobbler 2.6.5(ソースを見る限り、この文章を書いている時点で最新の2.6.7でも)が持っているsignatureではFedora 21が追加できないのでmasterブランチの最新からsignatureを持ってくる。

# cobbler signature update

イメージの中身をどこから引っ張ってくるかは、私があまりFedoraに詳しくないので多少試行錯誤した。
結果、まずcobbler importはFedora 21 Serverから。

# cobbler import --name f21 --path rsync://ftp.iij.ad.jp/pub/linux/fedora/releases/21/Server/x86_64/os/

しかる後にPackagesとrepodataをEverythingから引っ張ってくる。
Packagesは40GB以上ある。

# rsync -avSHP --del rsync://ftp.iij.ad.jp/pub/linux/fedora/releases/21/Everything/x86_64/os/Packages/ /var/www/cobbler/ks_mirror/f21/Packages
# rsync -avSHP --del rsync://ftp.iij.ad.jp/pub/linux/fedora/releases/21/Everything/x86_64/os/repodata/ /var/www/cobbler/ks_mirror/f21/repodata

updatesリポジトリをCobblerに取り込む。

# cobbler repo add --name f21-updates --mirror http://ftp.iij.ad.jp/pub/linux/fedora/updates/21/x86_64/
# cobbler reposync --only f21-updates

kickstartファイルのテンプレートを、LivaにFedora 21をインストールする用に1ファイル作る。

# cp /var/lib/cobbler/kickstarts/sample_end.ks /var/lib/cobbler/kickstarts/f21.ks

ここまでのコマンドを打っていればFedora 21のプロファイル名は「f21-x86_64」になっているので取り込んだupdatesリポジトリ、およびkickstartファイルのテンプレートをこのプロファイルにセットする。

# cobbler profile edit --name f21-x86_64 --repos f21-updates --kickstart /var/lib/cobbler/kickstarts/f21.ks

kickstartファイルのテンプレートの修正

先程作ったkickstartファイルのテンプレートである /var/lib/cobbler/kickstarts/f21.ks には以下のような修正を行う。

インストール中USBメモリを差しているのでUSBメモリの中身を消されないようにする必要がある。
そのため、ignoredisk, bootloader, clearpartで内蔵ストレージだけを対象にするようにする。
Livaの内蔵ストレージのデバイス名はmmcblk0である。もっともこれは特別な例で、大抵のコンピュータではOSをインストールする対象のストレージはsdaになるだろう。しかしたまにUSBメモリがsdaになったりするので試行錯誤が必要になることがある。
CentOS 6ではbootloaderのオプションに--boot-driveはないので代わりに--driveorder=<デバイス名>とする。

ignoredisk --only-use=mmcblk0
bootloader --location=mbr --boot-drive=mmcblk0
clearpart --all --drives=mmcblk0

私は/homeパーティションを作られるのは自分1人で使う環境では好きではないため、autopartは使用せずpart等でパーティションの切り方を定義しているが、LivaのようにUEFIモードでOSをインストールしなければならないコンピュータでは/boot/efiパーティションを--fstype=efiで作る必要がある。
したがって、パーティションを作る辺りは以下のようにしている(part /boot/efi行以外はBIOSモードでも同じ)。
CentOS 6はルートパーティションにxfsは使えないので代わりにlogvol /のfstypeをext4とする。

part /boot/efi --fstype=efi --size=128
part /boot --fstype=ext4 --size=512
part pv.1 --size=1 --grow
volgroup vg1 --pesize=4096 pv.1
logvol swap --fstype=swap --name=lv_swap --vgname=vg1 --size=512
logvol / --fstype=xfs --name=lv_root --vgname=vg1 --size=1 --grow

その他はこちらに記載している。
なお、CentOS 7のbaseパッケージグループに当たるのはFedora 21ではstandardパッケージグループである。
よって%packagesと%endの間に指定するなら@baseではなく@standardになる。

USBメモリの準備

私はWindows上でこれを行っている。他のOSだとできるかどうかわからない。

OSのブータブルISO、Fedora 21だと Fedora-Server-netinst-x86_64-21.iso を例えば http://ftp.iij.ad.jp/pub/linux/fedora/releases/21/Server/x86_64/iso/Fedora-Server-netinst-x86_64-21.iso からダウンロードする。
ここでnetinstでなくDVD等でも目的を達することはできるが、ファイルサイズが一番小さいもので問題ない。

netinstのブータブルISOを使えばUSBメモリは容量が1GBもあれば十分である。
FAT32でフォーマットしておく。

UNetbootinをダウンロードし実行する。
"ディスクイメージ"にFedora-Server-netinst-x86_64-21.isoを選んでUSBメモリに焼く。焼いた後再起動は特に必要ない。

Cobblerが提供するf21-x86_64プロファイルのkickstartファイルのURLは http://<CobblerサーバのIPアドレス>/cblr/svc/op/ks/profile/f21-x86_64 となる。プロファイル名が違うなら「f21-x86_64」の部分を変える。
このURLを起動時に使用するkickstartファイルとして設定すれば良いが、BIOSモードかUEFIモードかで書き換えるファイルや書き方が違う。

UEFIモードでOSをインストールする場合

USBメモリに EFI\BOOT\grub.cfg というファイルができているので、このkickstartファイルを使用してインストールする以下のメニューを追加する。場所は「menuentry 'Install Fedora-Server 21'」の次にしておくと、選ぶ時にカーソル移動する必要がないし、時間切れで自動選択されるので良い。

menuentry 'Install from Cobbler Fedora 21 profile' --class fedora --class gnu-linux --class gnu --class os {
	linuxefi /images/pxeboot/vmlinuz inst.ks=http://<CobblerサーバのIPアドレス>/cblr/svc/op/ks/profile/f21-x86_64 quiet
	initrdefi /images/pxeboot/initrd.img
}

BIOSモードでOSをインストールする場合

USBメモリに syslinux.cfg というファイルができているので以下のメニューを追加する。場所はすべてのlabelの中で一番上にしておくと、選ぶ時にカーソル移動する必要がないし、時間切れで自動選択されるので良い。
CentOS 6でNICが複数ある場合にはksdevice=eth0などをappendのオプションに付ける必要があるはず。

label cobbler-fedora21-kickstart
kernel /isolinux/vmlinuz
append initrd=/isolinux/initrd.img ks=http://<CobblerサーバのIPアドレス>/cblr/svc/op/ks/profile/f21-x86_64

あとは

ブートメニューからUSBメモリを選んで EFI\BOOT\grub.cfg あるいは syslinux.cfg に追加したメニューを選ぶと勝手にインストールが進む。

ECS LivaだとUSBメモリとキーボードを差して電源を入れ、DeleteキーでBIOSセットアップユーティリティに入り、ExitのBoot OverrideのところにUSBメモリがいるはずなのでそれを選んでブートしてメニューを選ぶことになる。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?