サーバー設定 · 3 min read · Feb 06, 2026
完璧なサーバー - Gentoo 2007.0 - ページ 2
3 基本システム
3.1 インストールディスクのブート
Gentoo Minimal Install CDをシステムに挿入し、それからブートします。ブートローダーでいくつかのオプションを設定できますが、そのままにしておくと、自動的にLinuxがブートします。

(デフォルトではフレームバッファコンソールを使用しますが、より小さなスクリーンショットのために、F1を押してgentoo-nofbカーネルを選択するオプションを変更しました。)
カーネルがブートし、インストールCDがハードウェアを検出する際に、テキストが画面をスクロールします。その後、キーマップの選択が表示されます。

USキーボードを使用している場合は、そのままにしておくか、Enterを押すと、このプロンプトはその選択でタイムアウトします。私はイギリスに住んでいるので、ukキーマップが必要です。
さらにテキストがスクロールします…

ルートプロンプトに到達するまで。

おそらく、検出中にDHCPサーバーを見つけており、すでにインターネットに接続されています。しかし、すぐに自分のIPアドレスを指定したいので、次のように入力します。
net-setup eth0適切なオプションを選択します。









今、ルートプロンプトに戻っています。ネットワークが正常に立ち上がったか確認したいかもしれません。
ifconfig
インターネット接続があることを確認するために、他のコマンドを実行します。例えば(Gentooハンドブックから):
ping -c 3 www.gentoo.org次に、一時的にホスト名を設定します。これは、インストールの後のいくつかの段階を自動化するために後で読み取ります。
hostname server1.example.com3.2 インストール環境へのリモートログイン
ルートパスワードを設定します。これはインストールシステム専用で、最終的にインストールされたシステムには使用されません:
passwdそしてsshdを起動します:
/etc/init.d/sshd startホストキーが作成され、sshdデーモンが起動します。これで、通常のターミナルプログラムからインストールシステムにログインできます。もちろん、好みや必要があれば、このステップを省略してコンソールを使用し続けることもできます。
ssh [email protected]もちろん、server1.example.comがあなたのシステムで解決される場合のみ機能します。

3.3 システムドライブの設定
この部分は他のアーキテクチャでは非常に異なる可能性があります。x86またはamd64以外の場合や、x86ハンドブックで提案されたデフォルトレイアウト以外のことを行いたい場合は、Gentooハンドブックを参照してください。
ドライブをパーティション分割するには、partedを使用します。提案されたGentooパーティションスキームを直接設定します。partedを使用すると、テキストで簡潔に表示できる方法でそれを行うことができます:
parted /dev/hda(パーティション)プロンプトが表示されます。このプロンプトで次のコマンドを入力します:
mklabel msdos
mkpartfs primary ext2 0 32
mkpartfs primary linux-swap 32 545
mkpart primary 545 -0
set 1 boot on
print次のような出力が表示されるはずです:
Disk /dev/hda: 5906MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 32.9MB 32.9MB primary ext2 boot
2 32.9MB 545MB 512MB primary linux-swap
3 545MB 5906MB 5361MB primary
(parted) quitと入力して終了し、変更を保存します。
すでにパーティション1と2にext2およびswapファイルシステムを作成したので、パーティション3にext3ファイルシステムを作成するだけです。
mke2fs -j /dev/hda3インストール環境のためにswapをオンにしましょう:
swapon /dev/hda2そして、インストールするファイルシステムをマウントします。
mount /dev/hda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/hda1 /mnt/gentoo/boot3.4 ステージ3の準備
システムの日付と時刻が正しいことを確認します。正しくない場合、後で混乱する可能性があります。
dateThu Aug 30 13:58:36 UTC 2007実際、私がこれを行った時点では少し間違っていたので、次のように修正します:
date 083013542007次に、Stage 3 TarballとPortageスナップショットをダウンロードする必要があります。リンクやlynxを使うのではなく、いくつかのコマンドを使用しましょう:
mirrorselect --interactive --output > /tmp/mirror
適切なミラーを選択し、OKを選択します。終了すると、選択内容が/tmp/mirrorに書き込まれます。最初のものだけが必要なので:
source /tmp/mirror
MIRRORS=($GENTOO_MIRRORS)
MIRROR=${MIRRORS[0]}
cd /mnt/gentoo
wget ${MIRROR}releases/x86/current/stages/stage3-$(arch)-2007.0.tar.bz2 \
|| wget ${MIRROR}releases/x86/current/stages/stage3-x86-2007.0.tar.bz2
wget ${MIRROR}snapshots/portage-latest.tar.bz2実際には、上記のstage3 URLのアーキテクチャ固有の部分を特定するためのフェイルセーフな方法はありませんので、x86以外の場合はGentooハンドブックを参照してください。
ステージタールボールを展開します。
tar --extract --verbose --bzip2 --preserve-permissions --file stage3-*.tar.bz2ポータージスナップショットを展開します。
tar --extract --verbose --bzip2 --file portage-latest.tar.bz2 --directory /mnt/gentoo/usrスペースが不足している場合は、これらのダウンロードを削除できます。
rm portage* stage*今、私はGentooコミュニティにとってほぼ異端的なことをしようとしており、etc/make.confをそのままにしておきます!これはCFLAGSなどが設定されるファイルで、最適化したいように設定できます。私はそれに触れません。少なくとも、正気を確認するためにチェックするべきです。もしそれが狂っている場合、間違ったステージファイルをダウンロードした可能性があります。特に、x86では、-mtune=i686フラグがデフォルトで設定されているため、古いハードウェアにインストールする場合には不適切かもしれません。しかし、$(arch)を使用することで、そのような問題を回避できることを期待しています。
vi /mnt/gentoo/etc/make.conf必要な情報を追加します。まず、Gentooが自分自身をダウンロードするミラーです。すでに一度ダウンロードミラーを取得しているので、再度選択する手間を省くために、その選択を取り込み、rsyncミラーの選択を追加します。
cat /tmp/mirror >> /mnt/gentoo/etc/make.conf
mirrorselect --interactive --rsync --output >> /mnt/gentoo/etc/make.conf
次に、/mnt/gentooにいくつかのものをコピーして、chrootに入ってインストールを続けます。また、インストールされたシステムが同じものを持つように、現在のネットワーク設定もコピーします。この小さなスクリプトは、eth0の現在の設定を新しい/etc/conf.d/net形式に書き込みます。
#!/bin/bash
cat /etc/resolv.conf > /mnt/gentoo/etc/resolv.conf
echo "HOSTNAME=\"$(hostname -f)\"" > /mnt/gentoo/etc/conf.d/hostname
eth0=$(ifconfig eth0 | grep "inet addr")
ip=$(echo $eth0 | cut -f2 -d' ' | cut -f2 -d:)
broadcast=$(echo $eth0 | cut -f3 -d' ' | cut -f2 -d:)
netmask=$(echo $eth0 | cut -f 4 -d' ' | cut -f2 -d:)
gw=$(route -n | grep -e '^0.0.0.0' | unexpand -a | cut -f3)
nservers=$(grep -e '^nameserver' /etc/resolv.conf | cut -f2 -d' ')
sdomains=$(grep -e '^search' /etc/resolv.conf | cut -f2- -d' ')
echo 'modules=( "ifconfig" )' > /mnt/gentoo/etc/conf.d/net
echo "config_eth0=( \"${ip} netmask ${netmask} broadcast ${broadcast}\" )" >> /mnt/gentoo/etc/conf.d/net
echo "routes_eth0=( \"default via ${gw}\" )" >> /mnt/gentoo/etc/conf.d/net
echo "dns_domain_eth0=\"$(hostname -d)\"" >> /mnt/gentoo/etc/conf.d/net
echo "dns_servers_eth0=\"${nservers}\"" >> /mnt/gentoo/etc/conf.d/net
if [ -n "$sdomains" ] ; then echo "dns_search_eth0=\"${sdomains}\"" ; fi >> /mnt/gentoo/etc/conf.d/netその後、/mnt/gentoo/etc/conf.d/netは次のようになります(もちろん正しい値で)。
modules=( "ifconfig" )
config_eth0=( "192.168.1.5 netmask 255.255.255.0 broadcast 192.168.1.255" )
routes_eth0=( "default via 192.168.1.1" )
dns_domain_eth0="example.com"
dns_servers_eth0="192.168.1.1"この形式を使用すると、Gentooネットワーク初期化スクリプトがそこにあるデータを使用して新しい/etc/resolv.confを書き出し、ネットワーク自体を設定するため、将来的には正しいファイルが1つだけになります。(インストールシステムの/etc/resolv.confをchroot環境内で使用するためにコピーしましたが、インストールされたシステムをブートするまでの間だけです。)
これを行った後、chrootの準備を完了し、入ります。
3.5 オプション:Stage3環境にvimを一時的にインストール
Gentoo Stage 3システムにはviがありません。代わりに、デフォルトの方法は含まれているエディタnanoを使用することです。本当にviが必要な場合は、今すぐ次のようにします:
VIM=$(which vim)
VIMDIR=$(dirname ${VIM})
cp --dereference ${VIM} /mnt/gentoo${VIM}
ln --symbolic ${VIM} /mnt/gentoo$(dirname ${VIM})/vi(依存しているライブラリはすでに配置されています。)
ただし、今後の指示では、これを行っていないと仮定します。もし行った場合は、必要なコマンドに置き換えてください。
3.6 chroot Stage3環境に入る
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1="(chroot) $PS1"これでchroot環境に入ったので、ポータージを現在の状態に更新します。
emerge --syncマシンのコンソールを使用することに気を使う場合は、/etc/conf.d/keymapsでキーマップを設定することをお勧めします。そうでなければ、そのままにしておいても構いません。
nano --nowrap /etc/conf.d/keymaps次に、タイムゾーンを設定します。どのタイムゾーンを使用するかは、/usr/share/zoneinfoの内容を確認してください。(USEやデフォルトのmake.profileは変更しません。)例えば、
cp /usr/share/zoneinfo/Europe/London /etc/localtime/etc/conf.d/clockでタイムゾーンを設定します。以前に/etc/localtimeにコピーしたファイルに合わせてTIMEZONE変数を設定します。例えば、
nano --nowrap /etc/conf.d/clockTIMEZONE="Europe/London"(行のコメントを外すのを忘れないでください。)
CLOCKをローカルに設定する必要があるかもしれません。通常は必要ありませんが、VMWareや他の仮想環境でインストールする場合には一般的に必要です。
3.7 カーネルのインストール
emerge gentoo-sources標準のGentooカーネルをインストールするためにgenkernelインストールを行います。これは、このhowtoの簡素化のための一部です。自分のカーネルをビルドすることに慣れている場合は、Gentooハンドブックの第7章のノートに従ってください。
emerge genkernel
zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.62番目のコマンドは、インストーラーディスクのカーネルの設定を現在のカーネルにコピーします。ここまで来たら、このカーネル設定が私たちに合う可能性が高いです。
ここで、何かをショートカットして、後でより複雑なステップを省くことができます。カーネル設定にクォータサポートを追加したいと思います。ここで行うのは、genkernelが使用する設定テンプレートファイルにそれを追加することです。そうすれば、カーネルをアップグレードしても変更が失われることはありません。
nano --nowrap /usr/share/genkernel/x86/kernel-config-2.6CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y 次に続けます:
genkernel allこれには時間がかかる場合があります。すべてのサポートを構築しています。これは一般的なGentooビルドになると言いました。
注意:SCSIまたはSATAディスクにインストールする場合は、この段階で代わりに次のように行うのが最善です。
genkernel --menuconfig allそして、システムドライブが接続されているSCSIまたはSATAインターフェースの適切な低レベルドライバを選択して、モジュールとしてではなくモノリシックカーネルにコンパイルされるようにします。これを行わなくても動作するはずですが(インストールドライブからドライバモジュールを読み込む)、現在のところそうではないようです。
3.8 ファイルシステムの設定
nano --nowrap /etc/fstab私と同じパーティションスキームに従っていると仮定して、/dev/BOOTを/dev/hda1に、/dev/ROOTを/dev/hda3に、/dev/SWAPを/dev/hda2に置き換えます。変更されたファイルは次のようになります:
[...]
#
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
/dev/hda1 /boot ext2 noauto,noatime 1 2
/dev/hda3 / ext3 noatime 0 1
/dev/hda2 none swap sw 0 0
/dev/cdrom /mnt/cdrom audo noauto,ro 0 0
#/dev/fd0 /mnt/floppy auto noauto 0 0
[...] 3.9 ブート時にネットワークを開始する。
rc-update add net.eth0 default
rc-update add hostname default3.10 システムサービスのインストール
emerge syslog-ng vixie-cron
rc-update add syslog-ng default
rc-update add vixie-cron default3.11 ブートローダー
emerge bootloaderこれにより、アーキテクチャのデフォルトブートローダーがインストールされます。以下はx86またはamd64を前提としており、このブートローダーはgrubです。これは超一般的なPCインストールであるため、単に書き出します。このガイドの残りがあなたのシステムに合うなら、これも合うはずです。そうでない場合は、Gentooハンドブックの第10章を参照してください。
echo -e "default 0\ntimeout 5\n\ntitle=GentooLinux\nroot (hd0,0)" > /boot/grub/grub.conf
echo "kernel `ls /boot/kernel*` root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev" >> /boot/grub/grub.conf
echo "initrd `ls /boot/initramfs*`" >> /boot/grub/grub.conf
grep --invert-match rootfs /proc/mounts > /etc/mtab
grub-install --no-floppy /dev/hda3.12 まとめと再起動
rc-update add sshd default
passwdそして、rootにパスワードを設定します。そうすれば、コンソールに行かずにログインできます。すべてがうまくいったと仮定します。
chrootから出て再起動します。
exit
cd
umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
rebootもちろん、ドライブからCDを取り外す必要があるかもしれません。これは、ブート順序によりますが、取り除いても問題ありません。もう必要ありません。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。