ブラウザの JavaScript がオフ(ブロックまたは許可しない)に設定されているため、このページは正常に機能しません。
disklessfun’s Wiki*
[
ホーム
]
一覧
最終更新
バックアップ
ヘルプ
Top
>
disklessfc
>
複製
?
ms
disklessfc をテンプレートにして作成
これらのキーワードがハイライトされています:
開始行:
TITLE:ディスクレス化(Linux, FreeBSD等)
(2009-01-18追記)このページに辿りついた方なら多分ご存知だと思いますが[[%%%この項%%%>#diskless-multipleboot]]を記述した後の2008年05月にRedHat ELのsystem-config-netbootがリリースされました。
----
''&size(17){旧コンテンツ:Fedora Core Linux ディスクレス化キット};''
RIGHT:新コンテンツ初出 2008-3-5
RIGHT:最終更新 2009-01-18(メインコンテンツの最終更新は2008-03-05)
LEFT:
いくつかののディストリ群をdiskless化する為の情報を簡単に紹介しています。
設定に関する情報は書いたのでとりあえず正式公開とします。
#br
----
本当に知りたい情報はこのページにありますか?
検索エンジンの検索結果というのは「どのサイトにどんな情報があるか」についてはまずまず正確ですが、
「サイト内のどのページにどんな情報があるか」について解析する力はまだまだ不十分です。
このページに検索エンジンから直接来た方!
望みの情報は、実は当サイト内の他のページにある可能性がかなりありますよ。
#br
Googleのような優秀な検索エンジンでも当サイトを必ずしも正確に解析出来るとは言えません。ヤフーやLive Searchなんかはお話にならないレベルです。&size(10){(加えて言えば、いきなりディストリ名を絞って検索すると誤りが多くなるようです。)};
知りたい情報は、
&size(19){&color(Blue){''←''};};このあたりのページにあるのかもしれません。
&size(19){&color(Blue){''←''};};
&size(19){&color(Blue){''←''};};
&size(19){&color(Blue){''←''};};
#br
----
旧コンテンツはゴテゴテと自前で作ったものでしたが、間もなくRed Hat ELが標準でディスクレスブート運用に対応すると思われるこの頃ですので、今度のコンテンツではほぼ全て、各ディストリの標準的な方法だけを使ってディスクレス環境を構築する手順を紹介し
#br
&size(19){とりあえずは、nfsrootやディスクレスに興味を持ってこのページに来た方は、&br;[[''%%%ディスクレス化に関する情報%%%''>disklessinfo]]にお立ち寄り下さい。};
#br
----
#contents
----
* 前書きの後半 [#w01e3591]
このページで扱うネットワークブートは、PXEブート+NFSROOTです。しかしLinuxのカーネルnfsroot機能を使用したものは一つもありません。少し考えてもらうとわかると思いますが、Linuxのカーネルnfsroot機能に依存すると自由度や柔軟性がなくなり、いまどきの
#br
Debianは標準でカーネルnfsroot機能に依らない{nfsroot,pxeboot,ディスクレスブート}に対応しています。
しかもその仕組みは、本ページの旧コンテンツ(Fedora Core Linux ディスクレス化キット)で用いていた手法と同じです。個人で使用するのに向いています。
「Fedora Core Linux ディスクレス化キット」に代わるものが欲しい方はDebianを使ってみて下さい。
#br
その他の取り上げる予定のディストリビューションについて簡単に...
-Ubuntuのディスクレス化手法は当然Debianのそれと同じです。使えるものか否かが違いでしょう。
-Fedora(標準)のディスクレス化手法は教育機関などで同じ構成の多数のディスクレスクライアントを設ける場合に向いた方式です。でも別に個人で使用するのに向いていないわけではありません。さすが商売で開発してるだけに開発パワーが割かれていることがよく
-FreeBSDのそれは個人用、大勢での共同利用、二つの方式があると言えるでしょう。公式に二つの方式があるという意味ではなく実質的にです。個人用のディスクレス化だと構築が非常に簡単です。
#br
本サイトには他にもブートに関わる様々なページ群があります。→[[□>disklessinfo]] [[□>multipleboot]] [[□>dlsolaris]] [[□>usbboot]] [[□>onecddebian]] [[□>onecdlin]] [[□>cfide]] [[□>mbm]] [[□>fixpbr]] [[□>hduse]] [[□>singledriveinstall]] [[□>recv
* ネットワークブートの共通事項 [#u525218a]
現在の普通の方法を書きます。
** ディスクレスクライアントとディスクありクライアント(普通のクライアント)との違い [#w5838b39]
ファイルの配置と中身の違いだけについて触れます。
SolarisもFreeBSDもLinuxもほぼ共通です。
ブート周りとfstabが異なる程度です。
** サーバに必要なもの [#l54d9f73]
-dhcpサーバ
-tftpサーバ
-nfsサーバ
&aname(diskless-multipleboot);
* Fedora8 CentOS5のディスクレス・マルチブート環境を構築する [#qb7268c9]
簡素に見えるかもしれませんが、この章はほぼ完成させたつもりです。
----
[[Solaris>dlsolaris]]とは異なりディスクレス環境をいきなり構築することは出来ず、最低1台のクライアントは一旦普通にローカルHDDにインストールする必要があります。つまりここで紹介する手順はディスクレス化手順です。
でも逆に言うと仮に100台のディスクレスクライアントを構築する場合でも一旦ローカルHDDにインストールしなければならないのは%%%1台だけ%%%です。
----
ディスクレスブートには言うまでもなくディスクレス母艦とディスクレスクライアントの双方が必要です。(標準で用意されている手段に限れば、)Red Hat EL 5, CentOS 5は今のところディスクレスクライアントにはなれますが、ディスクレス母艦にはなれません。具
このFedoraが実装を始めている、(Red Hat EL系にも同様にも実装される筈の、)ディスクレスブート機能は、前述のとおり、教育機関などで多数のクライアントを必要とする場合に対応できるものです。
#br
ということで、現在(2008年2月)は暫定期間なので、%%%母艦はFedora8で、クライアントはRed Hat EL 5互換のCentOS 5とFedora8のディスクレス・マルチブート構成%%%という環境の構築手法を簡単に紹介します。
#br
※:これをおこなう人はある程度の知識がある人ばかりの筈なのでポイントだけを記します。母艦には既にFedora8がインストールされているとして説明を始めます。
** 母艦のdhcpサーバ [#g4200268]
Linuxのpxeブートは一般にpxegrubとpxelinuxの2つの選択肢があるわけですが、ここではFedoraが採用しているpxelinuxの方を使用します。てことで、クライアントにはdhcpdで固定のIPアドレスを与えて下さい。
option domain-name "hoge.com";
filename "linux-install/pxelinux.0";
host hoge {
hardware ethernet 00:AA:BB:CC:DD:EE;
fixed-address 192.168.1.48;
option host-name "hoge";
}
基本的にはクライアントをインストールするより前にdhcpdを設定して稼動させておいて下さい。
最低限、system-config-netbootを使用する前(際)にdhcpdを稼動させておいて下さい。
** 母艦にpxelinux [#o121306d]
Fedora8がインストールしてくれたpxelinux 3.10は何故だか使い物にならないので、[[syslinuxのサイト:http://syslinux.zytor.com/index.php]](ダウンロード元は[[kernel.org:http://www.kernel.org/pub/linux/utils/boot/syslinux/]])からもっと新しいバージ
#br
そして/tftpboot/linux-installに、&color(Blue){pxelinux.0とvesamenu.c32};を置いて下さい。
勿論そこに既にpxelinux.0があれば上書きです。
** 母艦のnfsサーバ [#re3cd82d]
/etc/exportsの一例(適宜セキュリティに気を使って下さい)
/DISKLESS/Fedora8Clients 192.168.1.0/255.255.255.0(rw,no_root_squash,async)
/DISKLESS/CentOS5Clients 192.168.1.0/255.255.255.0(rw,no_root_squash,async)
必ずクライアントのOSの種類毎にexportしなければなりません。これはnfsrootの仕様ではなく、system-config-netbootがチェックするからです。
#br
system-config-netbootを使用する前(際)に必ずnfsサーバを稼動させておいて下さい。
** クライアントのインストール [#faea4e9a]
一旦、Fedora 8とCentOS 5(5.?)を''クライアントの1台''(後でクライアントを多数設ける場合の言い方です)に''普通に''インストールします。つまりローカルHDDにインストールします。
#br
&color(Red){busybox-anacondaを追加インストールしておいて下さい。};(Fedora, Red Hat EL系 共通)
後で必要となります。
#br
&color(Red){これも必ず実行しておいて下さい。};。(Fedora, Red Hat EL系 共通)
# chkconfig autofs off
#br
説明は省きますが、実際にはFedora 8とCentOS用に合計2つのパーティションを用意する必要はありません。適宜自分で作業順を工夫して下さい。
** クライアントのOS環境を丸ごと母艦にコピー [#p12b4871]
Fedora推奨のコピーの仕方は、母艦側からおこなうやり方です。
# rsync -v -a -e ssh --exclude='/proc/*' -exclude='/sys/*' CLIENTIP:/ DISKLESSDIR/root
だそうです。
/DISKLESSDIR/rootは、ここでは
/DISKLESS/Fedora8Clients/root
/DISKLESS/CentOS5Clients/root
に該当します。適宜読み替えて下さい。
#br
実際には方法は他にも沢山あります。好きな方法を使って下さい。
#br
&color(Red){重要なのは稼動中クライアントの/devの中身をサーバ側にコピーする必要がある点です。};
これもnfsrootの仕様ではなく、Fedoraのsystem-config-netbootの仕様です。
どんな方法を使う場合でも必ずサーバ側に稼動中クライアントの/devの中身をコピーして下さい。
** system-config-netboot [#tc99fe80]
いよいよsystem-config-netbootユーティリティを使用します。勿論母艦側での作業です。この時点で初めてsystem-config-netbootをインストールしても構いません。
ポイントだけを記します。
#br
[[&ref(disklessfc_1_s.png);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=disklessfc_1_b.png&refer=disklessfc]]
OSの種類が識別できる文字列を入力すべきでしょう。
#br
[[&ref(disklessfc_2_s.png);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=disklessfc_2_b.png&refer=disklessfc]]
上から読んでいれば特に説明は要らないと思います。
#br
[[&ref(disklessfc_3_s.png);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=disklessfc_3_b.png&refer=disklessfc]]
最低限入力しなければならないのはこれだけです。
私はここでクライアントの''IPアドレス''を入力することを推奨します。OKを押した際にクライアント名に変換されるか否かでdhcpサーバが正しく設定できているかが確認できるからです。
#br
&size(17){&color(Red){pxelinuxを使ってマルチブートを実現する場合のみ必要な追加作業};};
system-config-netbootでクライアントを追加する度に、/tftpboot/linux-install/pxelinux.cfg内の「IPアドレスをオクテット毎に16進に変換したファイル名のファイル」をバックアップして下さい。
&aname(pxelinux-config);
** pxelinux用の設定ファイルのカスタマイズ [#xfcb6cda]
これもpxelinuxを使ってマルチブートを実現する場合のみ必要な追加作業です。
簡単に言うと、先にバックアップ対象としたファイルを、バックアップしておいたファイルからコピペしてこのような中身にするということです。
default vesamenu.c32
timeout 300
menu color sel 7 #ffffffff #ff000000
label Fedora8
menu label Fedora8
menu default
kernel Fedora8/vmlinuz
append initrd=Fedora8/initrd.img root=/dev/ram0 init=disklessrc 実際には改行しない
NFSROOT=192.168.1.4:/DISKLESS/Fedora8Clients ramdisk_size=21116 実際には改行しない
ETHERNET=eth0 SNAPSHOT=
label CentOS5
menu label CentOS5
kernel CentOS5/vmlinuz
append initrd=CentOS5/initrd.img root=/dev/ram0 init=disklessrc 実際には改行しない
NFSROOT=192.168.1.4:/DISKLESS/CentOS5Clients ramdisk_size=16293 実際には改行しない
ETHERNET=eth0 SNAPSHOT=
ただし、pxelinux用の設定ファイルはdefaultというファイル名がデフォルトなので、
ディレクトリpxelinux.cfgの中をこんな風にdefaultだけにしても構いません。
/tftpboot/linux-install/---pxelinux.0
|
|---pxelinux.cfg/---default
|
|---Fedora8/
| |---vmlinuz
| |
| |---initrd.img
|
|---CentOS5/
|---vmlinuz
|
|---initrd.img
※ここではFedoraの流儀に従い/tftpboot/linux-install以下にファイルを配置しています。しかし言うまでもなく、tftpdのルート以下にいきなりファイルを配置してももちろん構いません。そうする場合は合わせてdhcpd.confのfilenameの指定を修正して下さい。
* Debian のディスクレスブート環境を構築する [#c35c73eb]
これもディスクレス化手順です。
Fedora,Red Hat EL系とは異なり、個人用のディスクレス環境です。
母艦はLinuxであればどのディストリビューションでも構いません。
----
** 普通にインストールしたクライアントOS環境を丸ごと母艦側にコピーします。 [#v9f639f9]
オフラインで(他のOSを作業用OSと使用して)作業しても構いません。
** クライアント環境の/etc/network/interfacesのカスタマイズ [#w8479a74]
母艦上で、
/クライアントroot/etc/network/interfacesのeth0に関する記述をコメントアウトします。
** クライアント環境の/etc/fstabのカスタマイズ [#md0b1b99]
母艦上で、
/クライアントroot/etc/fstabをカスタマイズします。一例
192.168.1.4:/DISKLESS/Debian4hoge / nfs defaults 0 0
スワップの行はコメントアウト
** クライアント環境のイニシャルラムディスクをnfsroot用に変更する [#w050e107]
母艦上で、
/クライアントroot/etc/initramfs-tools/initramfs.conf内の
BOOT=local
を
BOOT=nfs
に変更します。そして、
&color(Red){クライアントroot直下でchrootし、};
# update-initramfs -u
&color(Red){exitしてchroot環境を抜けます。};
** pxegrub [#s5fb520c]
|COLOR(Red):BGCOLOR(LightYellow):|c
|''以下のpxegrubを使った設定例を推奨しているわけではありません。上でpxelinuxを取り上げているので、多少はpxegrubも紹介しようと、取り上げただけです。現状ではpxelinuxの方が対応環境が多いのでおすすめです。pxelinuxの使い方はDebianにおいても上のF
#br
pxegrubを使用する場合に母艦/tftpboot以下のファイルの配置(一例)
見てわかるようにクライアント毎に独立した設定を持つ個人用のディスクレス環境です。
/tftpboot/-----pxegrub
|
|----hoge/-----grub.conf
| |
| |---vmlinuz-xxxxxxx
| |
| |---initrd-xxxxxxx.img
|
|----fuga/-----grub.conf
|
|---vmlinuz-xxxxxxx
|
|---initrd-xxxxxxx.img
*** pxegrubのコンパイル [#h78fdb17]
grubのtarballは、[[ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz:ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz]]からダウンロードできます。
これを解凍し、./configureし、makeします。私は./configure時に以下のようなオプションを付けました。
enableの個所は重要ですが、--disableの個所は好みです。
./configure \
--enable-eepro100 \
--enable-3c90x \
--enable-rtl8139 \
--enable-diskless \
--disable-ext2fs \
--disable-fat \
--disable-ffs \
--disable-ufs2 \
--disable-minix \
--disable-reiserfs \
--disable-vstafs \
--disable-jfs \
--disable-xfs \
--disable-iso9660 \
--disable-gunzip \
--disable-packet-retransmission \
--disable-hercules \
--disable-serial
makeするとgrub-0.97/stage2にファイルpxegrubが作成されます。
これを/tftpbootにコピーしておきます。
*** grub.conf [#p4ff33e1]
grub.conf(一例)
default=0
timeout=2
color cyan/blue white/blue
title Debian GNU/Linux, kernel 2.6.18-6-686
root (nd)
kernel /hoge/vmlinuz-2.6.18-6-686 nfsroot=192.168.1.4:/DISKLESS/Debian4hoge
initrd /hoge/initrd.img-2.6.18-6-686
*** カーネルとイニシャルラムディスク [#y1a7362f]
先に記したファイル配置となるように、
カーネルと、先に更新したイニシャルラムディスクを、クライアント環境から母艦rootの/tftpboot以下にコピーします。
** dhcpd.conf [#o187301f]
ヘッダ部分にoptionを記述します。
option option-150 code 150 = text;
中間略
host hoge {
hardware ethernet 00:AA:BB:CC:DD:EE;
fixed-address 192.168.1.48;
option host-name "hoge";
filename "pxegrub";
option option-150 "/hoge/grub.conf";
}
"option-150"は実際には任意です。ファイル内で統一されていればいいだけです。
* Ubuntu のディスクレスブート環境を構築する [#r3352565]
変更の手順的にはDebianと全く同じです。
ただし[[こっち>disklessinfo]]で触れた問題があります。
#br
(2009-01-18)[[%%%これ%%%>minimum-ubuntu]]もUbuntuのディスクレスブートの一形態です。
* FreeBSD のディスクレスブート環境を構築する [#ne1b8eb5]
[[こっち>disklessinfo]]で触れたように、
dhdp.confにfilename "pxeboot";とoption root-path "ipaddr:yournfsrootpath";を書くことだけが
、特に皆さんに伝えるべき内容です。
他にはファイルを配置し、fstabを修正するくらいです。
----
&size(18){(旧コンテンツの名残)};
''&size(17){Fedora Core Linux ディスクレス化キット};''
(2008-2-12) 古くなり過ぎたのでキットの公開を停止します。
RIGHT:[[translate to English:http://translate.google.com/translate?u=http%3A%2F%2Fwikiwiki.jp%2Fdisklessfun%2F%3Fdisklessfc&langpair=ja%7Cen&hl=en&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools]]
LEFT:
TITLE:Fedora Core Linux ディスクレス化キット
RIGHT:初出 2006-8-18
RIGHT:最終更新 2007-8-23
RIGHT:開発時期 2005-5~
LEFT:
COLOR(RED):''※本ページはカーネル再構築(再コンパイル)せずにディスクレス化する技術を紹介するページですが、参考として''[[このページ>disklessinfo]]''にカーネル再構築の手順を載せてあります。''
COLOR(GREEN):''※Solaris x86、FreeBSDのディスクレス化のことなら''[[こちら>disklessinfo]]''に少々の情報があります。''
#br
(2007-8-23) FedoraのUSBブートに関する情報ならこちら→ [[Linux各ディストリビューションのUSBブート・対応状況>usbboot]]
#br
COLOR(#FF6600):(2007-7-16) キットそのものは2006年11月から更新していません。カーネルモジュールの仕様は頻繁に変わるので最近のアップデートを施したFedora Core 6やFedora 7やRedHat EL 5ではうまく動かない可能性がある(高い!)と思っています。ただ本
#br
COLOR(#FF6600):また、本キットの技術の実質的に最大の特徴は、カーネルのnfsroot機能に頼らない為、自由に無線LANやVPNと組み合わせることが可能な点にあります。COLOR(NORMAL):(2007-8-23追記)単なるnfsroot化ならSolarisやFreeBSDやDebianを使えば簡単です
#br
-COLOR(BLUE):2006-11-15 CentOS 4.4(カーネル2.6.9-42.0.3.EL)にも対応したVersion0.09aを公開しました。
-COLOR(BLUE):2006-10-30 Fedora Core 6 および Fedora Core 5(カーネル2.6.18-1.2200.fc5)に対応したVersion0.09を公開しました。
#br
当ページでは既にローカルHDDにインストールされたFedora Core Linuxをカーネルの再コンパイルなしにDiskless化(NFS ROOT化)するキットを公開しています。
#br
NFS ROOTというとLinuxではカーネル再コンパイルが常識ですが、このキットではネットワーク機能を持つリッチなイニシャルラムディスク(initrd)を作ることで、カーネル再コンパイルなしにNFS ROOTを実現します。
#br
最初は2005年にFC3対応のキットを作ったのですが、当時のカーネルではNFSで排他ロックが出来ないため、多くのディレクトリをラムディスクにしなくてはならず、とても非実用的でした。
FC4で試してみたところその問題は一応解決しているようで、実用的なものになりました。
#br
Diskless環境上でyum upgradeを用いてFC4からFC5、FC5からFC6への[[アップグレード:http://www.atmarkit.co.jp/flinux/rensai/linuxtips/977onlineupdate.html]]もおこなえます。
----
説明文を表示したままにしておくとGoogleが誤誘導しがちなので削除しました。
代わりに同じ内容の、キットに内包していたREADMEを載せておきます。
ダウンロード &ref(README.euc,nolink);
#br
* ご要望、ご意見、質問を下のフォームにどうぞ&br;(でもここより、[[掲示板>board]]や[[書き込みフォーム>form]]のページに書いて頂いた方が気づき易いと思います。) [#p7030ecb]
#areaedit(nofreeze,noauth,btn:[修正(書き間違った場合にご利用下さい)])
#comment
#areaedit(end)
終了行:
TITLE:ディスクレス化(Linux, FreeBSD等)
(2009-01-18追記)このページに辿りついた方なら多分ご存知だと思いますが[[%%%この項%%%>#diskless-multipleboot]]を記述した後の2008年05月にRedHat ELのsystem-config-netbootがリリースされました。
----
''&size(17){旧コンテンツ:Fedora Core Linux ディスクレス化キット};''
RIGHT:新コンテンツ初出 2008-3-5
RIGHT:最終更新 2009-01-18(メインコンテンツの最終更新は2008-03-05)
LEFT:
いくつかののディストリ群をdiskless化する為の情報を簡単に紹介しています。
設定に関する情報は書いたのでとりあえず正式公開とします。
#br
----
本当に知りたい情報はこのページにありますか?
検索エンジンの検索結果というのは「どのサイトにどんな情報があるか」についてはまずまず正確ですが、
「サイト内のどのページにどんな情報があるか」について解析する力はまだまだ不十分です。
このページに検索エンジンから直接来た方!
望みの情報は、実は当サイト内の他のページにある可能性がかなりありますよ。
#br
Googleのような優秀な検索エンジンでも当サイトを必ずしも正確に解析出来るとは言えません。ヤフーやLive Searchなんかはお話にならないレベルです。&size(10){(加えて言えば、いきなりディストリ名を絞って検索すると誤りが多くなるようです。)};
知りたい情報は、
&size(19){&color(Blue){''←''};};このあたりのページにあるのかもしれません。
&size(19){&color(Blue){''←''};};
&size(19){&color(Blue){''←''};};
&size(19){&color(Blue){''←''};};
#br
----
旧コンテンツはゴテゴテと自前で作ったものでしたが、間もなくRed Hat ELが標準でディスクレスブート運用に対応すると思われるこの頃ですので、今度のコンテンツではほぼ全て、各ディストリの標準的な方法だけを使ってディスクレス環境を構築する手順を紹介し
#br
&size(19){とりあえずは、nfsrootやディスクレスに興味を持ってこのページに来た方は、&br;[[''%%%ディスクレス化に関する情報%%%''>disklessinfo]]にお立ち寄り下さい。};
#br
----
#contents
----
* 前書きの後半 [#w01e3591]
このページで扱うネットワークブートは、PXEブート+NFSROOTです。しかしLinuxのカーネルnfsroot機能を使用したものは一つもありません。少し考えてもらうとわかると思いますが、Linuxのカーネルnfsroot機能に依存すると自由度や柔軟性がなくなり、いまどきの
#br
Debianは標準でカーネルnfsroot機能に依らない{nfsroot,pxeboot,ディスクレスブート}に対応しています。
しかもその仕組みは、本ページの旧コンテンツ(Fedora Core Linux ディスクレス化キット)で用いていた手法と同じです。個人で使用するのに向いています。
「Fedora Core Linux ディスクレス化キット」に代わるものが欲しい方はDebianを使ってみて下さい。
#br
その他の取り上げる予定のディストリビューションについて簡単に...
-Ubuntuのディスクレス化手法は当然Debianのそれと同じです。使えるものか否かが違いでしょう。
-Fedora(標準)のディスクレス化手法は教育機関などで同じ構成の多数のディスクレスクライアントを設ける場合に向いた方式です。でも別に個人で使用するのに向いていないわけではありません。さすが商売で開発してるだけに開発パワーが割かれていることがよく
-FreeBSDのそれは個人用、大勢での共同利用、二つの方式があると言えるでしょう。公式に二つの方式があるという意味ではなく実質的にです。個人用のディスクレス化だと構築が非常に簡単です。
#br
本サイトには他にもブートに関わる様々なページ群があります。→[[□>disklessinfo]] [[□>multipleboot]] [[□>dlsolaris]] [[□>usbboot]] [[□>onecddebian]] [[□>onecdlin]] [[□>cfide]] [[□>mbm]] [[□>fixpbr]] [[□>hduse]] [[□>singledriveinstall]] [[□>recv
* ネットワークブートの共通事項 [#u525218a]
現在の普通の方法を書きます。
** ディスクレスクライアントとディスクありクライアント(普通のクライアント)との違い [#w5838b39]
ファイルの配置と中身の違いだけについて触れます。
SolarisもFreeBSDもLinuxもほぼ共通です。
ブート周りとfstabが異なる程度です。
** サーバに必要なもの [#l54d9f73]
-dhcpサーバ
-tftpサーバ
-nfsサーバ
&aname(diskless-multipleboot);
* Fedora8 CentOS5のディスクレス・マルチブート環境を構築する [#qb7268c9]
簡素に見えるかもしれませんが、この章はほぼ完成させたつもりです。
----
[[Solaris>dlsolaris]]とは異なりディスクレス環境をいきなり構築することは出来ず、最低1台のクライアントは一旦普通にローカルHDDにインストールする必要があります。つまりここで紹介する手順はディスクレス化手順です。
でも逆に言うと仮に100台のディスクレスクライアントを構築する場合でも一旦ローカルHDDにインストールしなければならないのは%%%1台だけ%%%です。
----
ディスクレスブートには言うまでもなくディスクレス母艦とディスクレスクライアントの双方が必要です。(標準で用意されている手段に限れば、)Red Hat EL 5, CentOS 5は今のところディスクレスクライアントにはなれますが、ディスクレス母艦にはなれません。具
このFedoraが実装を始めている、(Red Hat EL系にも同様にも実装される筈の、)ディスクレスブート機能は、前述のとおり、教育機関などで多数のクライアントを必要とする場合に対応できるものです。
#br
ということで、現在(2008年2月)は暫定期間なので、%%%母艦はFedora8で、クライアントはRed Hat EL 5互換のCentOS 5とFedora8のディスクレス・マルチブート構成%%%という環境の構築手法を簡単に紹介します。
#br
※:これをおこなう人はある程度の知識がある人ばかりの筈なのでポイントだけを記します。母艦には既にFedora8がインストールされているとして説明を始めます。
** 母艦のdhcpサーバ [#g4200268]
Linuxのpxeブートは一般にpxegrubとpxelinuxの2つの選択肢があるわけですが、ここではFedoraが採用しているpxelinuxの方を使用します。てことで、クライアントにはdhcpdで固定のIPアドレスを与えて下さい。
option domain-name "hoge.com";
filename "linux-install/pxelinux.0";
host hoge {
hardware ethernet 00:AA:BB:CC:DD:EE;
fixed-address 192.168.1.48;
option host-name "hoge";
}
基本的にはクライアントをインストールするより前にdhcpdを設定して稼動させておいて下さい。
最低限、system-config-netbootを使用する前(際)にdhcpdを稼動させておいて下さい。
** 母艦にpxelinux [#o121306d]
Fedora8がインストールしてくれたpxelinux 3.10は何故だか使い物にならないので、[[syslinuxのサイト:http://syslinux.zytor.com/index.php]](ダウンロード元は[[kernel.org:http://www.kernel.org/pub/linux/utils/boot/syslinux/]])からもっと新しいバージ
#br
そして/tftpboot/linux-installに、&color(Blue){pxelinux.0とvesamenu.c32};を置いて下さい。
勿論そこに既にpxelinux.0があれば上書きです。
** 母艦のnfsサーバ [#re3cd82d]
/etc/exportsの一例(適宜セキュリティに気を使って下さい)
/DISKLESS/Fedora8Clients 192.168.1.0/255.255.255.0(rw,no_root_squash,async)
/DISKLESS/CentOS5Clients 192.168.1.0/255.255.255.0(rw,no_root_squash,async)
必ずクライアントのOSの種類毎にexportしなければなりません。これはnfsrootの仕様ではなく、system-config-netbootがチェックするからです。
#br
system-config-netbootを使用する前(際)に必ずnfsサーバを稼動させておいて下さい。
** クライアントのインストール [#faea4e9a]
一旦、Fedora 8とCentOS 5(5.?)を''クライアントの1台''(後でクライアントを多数設ける場合の言い方です)に''普通に''インストールします。つまりローカルHDDにインストールします。
#br
&color(Red){busybox-anacondaを追加インストールしておいて下さい。};(Fedora, Red Hat EL系 共通)
後で必要となります。
#br
&color(Red){これも必ず実行しておいて下さい。};。(Fedora, Red Hat EL系 共通)
# chkconfig autofs off
#br
説明は省きますが、実際にはFedora 8とCentOS用に合計2つのパーティションを用意する必要はありません。適宜自分で作業順を工夫して下さい。
** クライアントのOS環境を丸ごと母艦にコピー [#p12b4871]
Fedora推奨のコピーの仕方は、母艦側からおこなうやり方です。
# rsync -v -a -e ssh --exclude='/proc/*' -exclude='/sys/*' CLIENTIP:/ DISKLESSDIR/root
だそうです。
/DISKLESSDIR/rootは、ここでは
/DISKLESS/Fedora8Clients/root
/DISKLESS/CentOS5Clients/root
に該当します。適宜読み替えて下さい。
#br
実際には方法は他にも沢山あります。好きな方法を使って下さい。
#br
&color(Red){重要なのは稼動中クライアントの/devの中身をサーバ側にコピーする必要がある点です。};
これもnfsrootの仕様ではなく、Fedoraのsystem-config-netbootの仕様です。
どんな方法を使う場合でも必ずサーバ側に稼動中クライアントの/devの中身をコピーして下さい。
** system-config-netboot [#tc99fe80]
いよいよsystem-config-netbootユーティリティを使用します。勿論母艦側での作業です。この時点で初めてsystem-config-netbootをインストールしても構いません。
ポイントだけを記します。
#br
[[&ref(disklessfc_1_s.png);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=disklessfc_1_b.png&refer=disklessfc]]
OSの種類が識別できる文字列を入力すべきでしょう。
#br
[[&ref(disklessfc_2_s.png);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=disklessfc_2_b.png&refer=disklessfc]]
上から読んでいれば特に説明は要らないと思います。
#br
[[&ref(disklessfc_3_s.png);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=disklessfc_3_b.png&refer=disklessfc]]
最低限入力しなければならないのはこれだけです。
私はここでクライアントの''IPアドレス''を入力することを推奨します。OKを押した際にクライアント名に変換されるか否かでdhcpサーバが正しく設定できているかが確認できるからです。
#br
&size(17){&color(Red){pxelinuxを使ってマルチブートを実現する場合のみ必要な追加作業};};
system-config-netbootでクライアントを追加する度に、/tftpboot/linux-install/pxelinux.cfg内の「IPアドレスをオクテット毎に16進に変換したファイル名のファイル」をバックアップして下さい。
&aname(pxelinux-config);
** pxelinux用の設定ファイルのカスタマイズ [#xfcb6cda]
これもpxelinuxを使ってマルチブートを実現する場合のみ必要な追加作業です。
簡単に言うと、先にバックアップ対象としたファイルを、バックアップしておいたファイルからコピペしてこのような中身にするということです。
default vesamenu.c32
timeout 300
menu color sel 7 #ffffffff #ff000000
label Fedora8
menu label Fedora8
menu default
kernel Fedora8/vmlinuz
append initrd=Fedora8/initrd.img root=/dev/ram0 init=disklessrc 実際には改行しない
NFSROOT=192.168.1.4:/DISKLESS/Fedora8Clients ramdisk_size=21116 実際には改行しない
ETHERNET=eth0 SNAPSHOT=
label CentOS5
menu label CentOS5
kernel CentOS5/vmlinuz
append initrd=CentOS5/initrd.img root=/dev/ram0 init=disklessrc 実際には改行しない
NFSROOT=192.168.1.4:/DISKLESS/CentOS5Clients ramdisk_size=16293 実際には改行しない
ETHERNET=eth0 SNAPSHOT=
ただし、pxelinux用の設定ファイルはdefaultというファイル名がデフォルトなので、
ディレクトリpxelinux.cfgの中をこんな風にdefaultだけにしても構いません。
/tftpboot/linux-install/---pxelinux.0
|
|---pxelinux.cfg/---default
|
|---Fedora8/
| |---vmlinuz
| |
| |---initrd.img
|
|---CentOS5/
|---vmlinuz
|
|---initrd.img
※ここではFedoraの流儀に従い/tftpboot/linux-install以下にファイルを配置しています。しかし言うまでもなく、tftpdのルート以下にいきなりファイルを配置してももちろん構いません。そうする場合は合わせてdhcpd.confのfilenameの指定を修正して下さい。
* Debian のディスクレスブート環境を構築する [#c35c73eb]
これもディスクレス化手順です。
Fedora,Red Hat EL系とは異なり、個人用のディスクレス環境です。
母艦はLinuxであればどのディストリビューションでも構いません。
----
** 普通にインストールしたクライアントOS環境を丸ごと母艦側にコピーします。 [#v9f639f9]
オフラインで(他のOSを作業用OSと使用して)作業しても構いません。
** クライアント環境の/etc/network/interfacesのカスタマイズ [#w8479a74]
母艦上で、
/クライアントroot/etc/network/interfacesのeth0に関する記述をコメントアウトします。
** クライアント環境の/etc/fstabのカスタマイズ [#md0b1b99]
母艦上で、
/クライアントroot/etc/fstabをカスタマイズします。一例
192.168.1.4:/DISKLESS/Debian4hoge / nfs defaults 0 0
スワップの行はコメントアウト
** クライアント環境のイニシャルラムディスクをnfsroot用に変更する [#w050e107]
母艦上で、
/クライアントroot/etc/initramfs-tools/initramfs.conf内の
BOOT=local
を
BOOT=nfs
に変更します。そして、
&color(Red){クライアントroot直下でchrootし、};
# update-initramfs -u
&color(Red){exitしてchroot環境を抜けます。};
** pxegrub [#s5fb520c]
|COLOR(Red):BGCOLOR(LightYellow):|c
|''以下のpxegrubを使った設定例を推奨しているわけではありません。上でpxelinuxを取り上げているので、多少はpxegrubも紹介しようと、取り上げただけです。現状ではpxelinuxの方が対応環境が多いのでおすすめです。pxelinuxの使い方はDebianにおいても上のF
#br
pxegrubを使用する場合に母艦/tftpboot以下のファイルの配置(一例)
見てわかるようにクライアント毎に独立した設定を持つ個人用のディスクレス環境です。
/tftpboot/-----pxegrub
|
|----hoge/-----grub.conf
| |
| |---vmlinuz-xxxxxxx
| |
| |---initrd-xxxxxxx.img
|
|----fuga/-----grub.conf
|
|---vmlinuz-xxxxxxx
|
|---initrd-xxxxxxx.img
*** pxegrubのコンパイル [#h78fdb17]
grubのtarballは、[[ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz:ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz]]からダウンロードできます。
これを解凍し、./configureし、makeします。私は./configure時に以下のようなオプションを付けました。
enableの個所は重要ですが、--disableの個所は好みです。
./configure \
--enable-eepro100 \
--enable-3c90x \
--enable-rtl8139 \
--enable-diskless \
--disable-ext2fs \
--disable-fat \
--disable-ffs \
--disable-ufs2 \
--disable-minix \
--disable-reiserfs \
--disable-vstafs \
--disable-jfs \
--disable-xfs \
--disable-iso9660 \
--disable-gunzip \
--disable-packet-retransmission \
--disable-hercules \
--disable-serial
makeするとgrub-0.97/stage2にファイルpxegrubが作成されます。
これを/tftpbootにコピーしておきます。
*** grub.conf [#p4ff33e1]
grub.conf(一例)
default=0
timeout=2
color cyan/blue white/blue
title Debian GNU/Linux, kernel 2.6.18-6-686
root (nd)
kernel /hoge/vmlinuz-2.6.18-6-686 nfsroot=192.168.1.4:/DISKLESS/Debian4hoge
initrd /hoge/initrd.img-2.6.18-6-686
*** カーネルとイニシャルラムディスク [#y1a7362f]
先に記したファイル配置となるように、
カーネルと、先に更新したイニシャルラムディスクを、クライアント環境から母艦rootの/tftpboot以下にコピーします。
** dhcpd.conf [#o187301f]
ヘッダ部分にoptionを記述します。
option option-150 code 150 = text;
中間略
host hoge {
hardware ethernet 00:AA:BB:CC:DD:EE;
fixed-address 192.168.1.48;
option host-name "hoge";
filename "pxegrub";
option option-150 "/hoge/grub.conf";
}
"option-150"は実際には任意です。ファイル内で統一されていればいいだけです。
* Ubuntu のディスクレスブート環境を構築する [#r3352565]
変更の手順的にはDebianと全く同じです。
ただし[[こっち>disklessinfo]]で触れた問題があります。
#br
(2009-01-18)[[%%%これ%%%>minimum-ubuntu]]もUbuntuのディスクレスブートの一形態です。
* FreeBSD のディスクレスブート環境を構築する [#ne1b8eb5]
[[こっち>disklessinfo]]で触れたように、
dhdp.confにfilename "pxeboot";とoption root-path "ipaddr:yournfsrootpath";を書くことだけが
、特に皆さんに伝えるべき内容です。
他にはファイルを配置し、fstabを修正するくらいです。
----
&size(18){(旧コンテンツの名残)};
''&size(17){Fedora Core Linux ディスクレス化キット};''
(2008-2-12) 古くなり過ぎたのでキットの公開を停止します。
RIGHT:[[translate to English:http://translate.google.com/translate?u=http%3A%2F%2Fwikiwiki.jp%2Fdisklessfun%2F%3Fdisklessfc&langpair=ja%7Cen&hl=en&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools]]
LEFT:
TITLE:Fedora Core Linux ディスクレス化キット
RIGHT:初出 2006-8-18
RIGHT:最終更新 2007-8-23
RIGHT:開発時期 2005-5~
LEFT:
COLOR(RED):''※本ページはカーネル再構築(再コンパイル)せずにディスクレス化する技術を紹介するページですが、参考として''[[このページ>disklessinfo]]''にカーネル再構築の手順を載せてあります。''
COLOR(GREEN):''※Solaris x86、FreeBSDのディスクレス化のことなら''[[こちら>disklessinfo]]''に少々の情報があります。''
#br
(2007-8-23) FedoraのUSBブートに関する情報ならこちら→ [[Linux各ディストリビューションのUSBブート・対応状況>usbboot]]
#br
COLOR(#FF6600):(2007-7-16) キットそのものは2006年11月から更新していません。カーネルモジュールの仕様は頻繁に変わるので最近のアップデートを施したFedora Core 6やFedora 7やRedHat EL 5ではうまく動かない可能性がある(高い!)と思っています。ただ本
#br
COLOR(#FF6600):また、本キットの技術の実質的に最大の特徴は、カーネルのnfsroot機能に頼らない為、自由に無線LANやVPNと組み合わせることが可能な点にあります。COLOR(NORMAL):(2007-8-23追記)単なるnfsroot化ならSolarisやFreeBSDやDebianを使えば簡単です
#br
-COLOR(BLUE):2006-11-15 CentOS 4.4(カーネル2.6.9-42.0.3.EL)にも対応したVersion0.09aを公開しました。
-COLOR(BLUE):2006-10-30 Fedora Core 6 および Fedora Core 5(カーネル2.6.18-1.2200.fc5)に対応したVersion0.09を公開しました。
#br
当ページでは既にローカルHDDにインストールされたFedora Core Linuxをカーネルの再コンパイルなしにDiskless化(NFS ROOT化)するキットを公開しています。
#br
NFS ROOTというとLinuxではカーネル再コンパイルが常識ですが、このキットではネットワーク機能を持つリッチなイニシャルラムディスク(initrd)を作ることで、カーネル再コンパイルなしにNFS ROOTを実現します。
#br
最初は2005年にFC3対応のキットを作ったのですが、当時のカーネルではNFSで排他ロックが出来ないため、多くのディレクトリをラムディスクにしなくてはならず、とても非実用的でした。
FC4で試してみたところその問題は一応解決しているようで、実用的なものになりました。
#br
Diskless環境上でyum upgradeを用いてFC4からFC5、FC5からFC6への[[アップグレード:http://www.atmarkit.co.jp/flinux/rensai/linuxtips/977onlineupdate.html]]もおこなえます。
----
説明文を表示したままにしておくとGoogleが誤誘導しがちなので削除しました。
代わりに同じ内容の、キットに内包していたREADMEを載せておきます。
ダウンロード &ref(README.euc,nolink);
#br
* ご要望、ご意見、質問を下のフォームにどうぞ&br;(でもここより、[[掲示板>board]]や[[書き込みフォーム>form]]のページに書いて頂いた方が気づき易いと思います。) [#p7030ecb]
#areaedit(nofreeze,noauth,btn:[修正(書き間違った場合にご利用下さい)])
#comment
#areaedit(end)
ページ名: