サーバー設定 · 3 min read · Feb 06, 2026

完璧なサーバー - Gentoo 2007.0 - ページ 2

3 基本システム

3.1 インストールディスクのブート

Gentoo Minimal Install CDをシステムに挿入し、それからブートします。ブートローダーでいくつかのオプションを設定できますが、そのままにしておくと、自動的にLinuxがブートします。

Gentooインストールブートローダー

(デフォルトではフレームバッファコンソールを使用しますが、より小さなスクリーンショットのために、F1を押してgentoo-nofbカーネルを選択するオプションを変更しました。)

カーネルがブートし、インストールCDがハードウェアを検出する際に、テキストが画面をスクロールします。その後、キーマップの選択が表示されます。

Gentooインストールキーマップ選択

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

さらにテキストがスクロールします…

Gentooインストーラーがまだブート中

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

Gentooインストーラーのルートプロンプト

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

net-setup eth0

適切なオプションを選択します。

net-setup 1

net-setup 2

net-setup 3

net-setup 4

net-setup 5

net-setup 6

net-setup 7

net-setup 8

net-setup 9

今、ルートプロンプトに戻っています。ネットワークが正常に立ち上がったか確認したいかもしれません。

ifconfig

net-setup完了

インターネット接続があることを確認するために、他のコマンドを実行します。例えば(Gentooハンドブックから):

ping -c 3 www.gentoo.org

次に、一時的にホスト名を設定します。これは、インストールの後のいくつかの段階を自動化するために後で読み取ります。

hostname server1.example.com

3.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/boot

3.4 ステージ3の準備

システムの日付と時刻が正しいことを確認します。正しくない場合、後で混乱する可能性があります。

date
Thu Aug 30 13:58:36 UTC 2007

実際、私がこれを行った時点では少し間違っていたので、次のように修正します:

date 083013542007

次に、Stage 3 TarballとPortageスナップショットをダウンロードする必要があります。リンクやlynxを使うのではなく、いくつかのコマンドを使用しましょう:

mirrorselect --interactive --output > /tmp/mirror

mirrorselect - ダウンロードミラー

適切なミラーを選択し、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

mirrorselect - rsyncミラー

次に、/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/clock
TIMEZONE="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.6

2番目のコマンドは、インストーラーディスクのカーネルの設定を現在のカーネルにコピーします。ここまで来たら、このカーネル設定が私たちに合う可能性が高いです。

ここで、何かをショートカットして、後でより複雑なステップを省くことができます。カーネル設定にクォータサポートを追加したいと思います。ここで行うのは、genkernelが使用する設定テンプレートファイルにそれを追加することです。そうすれば、カーネルをアップグレードしても変更が失われることはありません。

nano --nowrap /usr/share/genkernel/x86/kernel-config-2.6
CONFIG_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 default

3.10 システムサービスのインストール

emerge syslog-ng vixie-cron   
rc-update add syslog-ng default   
rc-update add vixie-cron default

3.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/hda

3.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を取り外す必要があるかもしれません。これは、ブート順序によりますが、取り除いても問題ありません。もう必要ありません。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。