Gentooサーバーに手記をインストールします。
Gentoo設置案
インストールメディアをダウンロード
GentooのMinimal Install CDは毎週自動的に1つのバージョンを構築して、サーバーは普通は最新のx 86_を使います。64バージョンです国内の鏡像ダウンロードの住所は以下の通りです。http://mirrors.sohu.com http://mirrors.163.com 第二ステップ:マシンを起動し、ネットワーク環境を設定し、SSHサービスを開始する。
Minimal Install CDディスクで起動してlivecdに入る環境は、インストール前にネットワーク環境を設定する必要があります。ネットワーク環境にDHCPが配置されている場合、命令ifconfigコマンドによりマシンがIPに割り当てられているかを確認します。
以下のいくつかのコマンドで自分で設定できます。net setupコマンドを使って設定することもできます。
実際のプロセスでは、Minimal Install CDから起動した後、システムがネットワークカードを見つけられなくなり、インストールが進められなくなる可能性があります。このような問題がある場合は、ネットワークカードのハードウェア状況を確認し、対応するドライバモジュールがロードされているかどうかを確認します。例えば、DELL R 610の機種でBroadcom Corporation NetXtreme II 5709 Cのデュアルポートギガビットイーサネットカードを使用した場合、ドライバモジュールがロードされていますが、まだカードが認識されていない場合、最後にドライバモジュールを削除して再ロードしてから、ネットワークカードのデバイスが認識されます。
新しいバージョンのMinimal Install CDを使用すれば、udevバージョンはすでに200以上にアップグレードされていますので、eth 0を使ってネットワークに接続できるとは限りません。新しい接続の名前は以下のコードで取得できます。
SSHサービスを開始する:
ステップ3:fdiskコマンドを使ってハードディスクのパーティションを準備します。 nはパーティション を作成します。 pはすべてのパーティション を表示します。 aはパーティションを起動パーティションとして指定しています。表示される時、このパーティションには**** が表示されます。 dパーティションを削除する tはパーティションのタイプを変えます。Linux swap/Solarisの番号は82 です。 lは、すべてのパーティションタイプ を表示します。
これらのコマンドを使って、ハードディスクのためにブートパーティションを作成します。swapエリアとrootパーティション:
Important
二つのハードディスクを作成してRAID 1を使用する場合は、同じパーティションフォーマットsdaとsdbの2つのハードディスクが必要であり、2つのハードディスクのrootパーティションとbootパーティションは、Linux RAd autdetectタイプとして指定されています。
Groubはext 4のbootパーティションに対応していないので、bootパーティションはext 2タイプにフォーマットされています。rootパーティションはext 3またはext 4タイプにフォーマットされています。
2つのハードディスクをRAID 1で作成する場合は、まずpartprobeコマンドを使ってハードディスクのパーティションテーブルを再読み込みする必要があります。
linksコマンドを使って最新バージョンのx 86_をダウンロードします。64 Stage 3とportgeは、現在のディレクトリに解凍されます。
の環境はVIMがないので、nanoを使ってプロファイルを編集するしかないです。
タイムゾーンの配置ファイルはすべて/usr/share/zoneinfoに保存されています。
サーバーが提供するサービスは、タイムゾーンをまたぐアプリケーションにサービスを提供する必要があり、また、MongoDBとNodeJSを使用する場合は、タイムゾーンをGMT 0に設定し、サーバのタイムゾーンによるデータの時間エラーを回避し、クライアントがタイムゾーン判定で判断する流れを減少させる。
GMT 0ファイルを/etc/locatimeにコピーする必要がある場合:
第九ステップ:ビルドカーネルの設定
Important
多くのソフトウェアとドライバの実行にはカーネルのサポートが必要です。具体的な依存関係はこの文の付録にいくつかの説明があります。ここではRAID 1モードを使う時はMulti-device support(RAID and LVM)の下のすべてのコンパイルオプションを選択することを強調します。
ステップ10:編集/etc/fstab
デフォルトのfstabファイルでは、BOOT、ROOT、SWAPは実際のパーティション名で置き換えられます。
RAID 1の場合のfstabファイルの書き方は違っていますが、主にパーティション名は作成すべきノード名であり、交換パーティションのためにノードを作成していないので、2つのswapパーティションはすべてfstabファイルに書きます。
第11ステップ:システム基本構成
システムのネットワークアドレスを設定し、SSHサービスを起動し、rootユーザのパスワードを設定し、いくつかのシステムの基本サービスをインストールし、システム起動時にサービスを開始します。eth 0はマシンによって名前を変えます。
RAID 1はmdadmが必要です。起動時に実行しますので、システムのインストールが完了する前にインストールし、その起動レベルをbootに設定してください。
GentooはGrobを使ってシステムをガイドすることを推奨しています。ここで紹介したプロファイルの書き方は複数のシステムの共存に関係なく、grubをインストールした後にgrub.com nfファイルを配置します。
ext 4のパーティションなら、ケネルの一行にrootfstype=ext 4のパラメータを加える必要があります。
grb-innstallコマンドでインストールします。
RAID 1のモードは、grb-innstallコマンドでインストールできません。grubコマンドでのみインストールできます。
ステップ14:システムの更新
第15歩:オーダーメイドhostnameとdomain
修正/etc/conf.d/hostname:
第16ステップ:カスタムSSHD登録方式
sh−keygenを用いてrsaアルゴリズムのkeyを作成する。
shrewall.co nf配置ファイルを修正する:
//etc/security/limits.com nf
//etc/pam.d/login
/proc/sys/fs/file-max
NRBC
Dell R 610
DELL R 610において2020165のLiveCDを使用してインストールした後、起動にエラーが発生しました。
インストールメディアをダウンロード
GentooのMinimal Install CDは毎週自動的に1つのバージョンを構築して、サーバーは普通は最新のx 86_を使います。64バージョンです国内の鏡像ダウンロードの住所は以下の通りです。
Minimal Install CDディスクで起動してlivecdに入る環境は、インストール前にネットワーク環境を設定する必要があります。ネットワーク環境にDHCPが配置されている場合、命令ifconfigコマンドによりマシンがIPに割り当てられているかを確認します。
以下のいくつかのコマンドで自分で設定できます。net setupコマンドを使って設定することもできます。
ifconfig eth0 192.168.1.10/24 # IP :192.168.1.10
route add default gw 192.168.1.1 # :192.168.1.1
echo nameserver 192.168.1.1 > /etc/resolv.conf #
Important実際のプロセスでは、Minimal Install CDから起動した後、システムがネットワークカードを見つけられなくなり、インストールが進められなくなる可能性があります。このような問題がある場合は、ネットワークカードのハードウェア状況を確認し、対応するドライバモジュールがロードされているかどうかを確認します。例えば、DELL R 610の機種でBroadcom Corporation NetXtreme II 5709 Cのデュアルポートギガビットイーサネットカードを使用した場合、ドライバモジュールがロードされていますが、まだカードが認識されていない場合、最後にドライバモジュールを削除して再ロードしてから、ネットワークカードのデバイスが認識されます。
lspci -k # bnx2。
lsmod # bnx2 。
rmmod bnx2 # bnx2 。
modprobe bnx2 # 。
net-setup eth0 # 。
Important新しいバージョンのMinimal Install CDを使用すれば、udevバージョンはすでに200以上にアップグレードされていますので、eth 0を使ってネットワークに接続できるとは限りません。新しい接続の名前は以下のコードで取得できます。
udevadm test-builtin net_id /sys/class/net/eth0 2> /dev/null
名前は一般的にenpsです。SSHサービスを開始する:
/etc/init.d/sshd start # ssh
rootユーザのパスワードを設定します。passwd
今はPutYやTerminalを使ってマシンにリモート登録してインストールできます。ステップ3:fdiskコマンドを使ってハードディスクのパーティションを準備します。
fdisk /dev/sda
The number of cylinders for this disk is set to 6527.
There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK)
Command (m for help):
fdiskのいくつかの基本コマンド:これらのコマンドを使って、ハードディスクのためにブートパーティションを作成します。swapエリアとrootパーティション:
Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x5f13998e
Device Boot Start End Blocks Id System
/dev/sda1 * 1 17 136521 83 Linux
/dev/sda2 18 83 530145 82 Linux swap / Solaris
/dev/sda3 84 6527 51761430 83 Linux
wコマンドで結果を保存して終了します。Important
二つのハードディスクを作成してRAID 1を使用する場合は、同じパーティションフォーマットsdaとsdbの2つのハードディスクが必要であり、2つのハードディスクのrootパーティションとbootパーティションは、Linux RAd autdetectタイプとして指定されています。
Device Boot Start End Blocks Id System
/dev/sda1 * 1 17 136521 83 Linux raid autodetect
/dev/sda2 18 83 530145 82 Linux swap / Solaris
/dev/sda3 84 6527 51761430 83 Linux raid autodetect
ステップ4:パーティションをフォーマットし、Livecd環境にマウントするGroubはext 4のbootパーティションに対応していないので、bootパーティションはext 2タイプにフォーマットされています。rootパーティションはext 3またはext 4タイプにフォーマットされています。
mke2fs /dev/sda1 # ext2 boot
mke2fs -j /dev/sda3 # ext3 root
mkswap /dev/sda2 && swapon /dev/sda2 #
#
mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
cd /mnt/gentoo
ext 4タイプのrootパーティションをフォーマットします。mkfs.ext4 /dev/sda3 # ext4 root
Important2つのハードディスクをRAID 1で作成する場合は、まずpartprobeコマンドを使ってハードディスクのパーティションテーブルを再読み込みする必要があります。
partprobe /dev/sda
partprobe /dev/sdb
mknodとmdadmを使用してノードとデバイスを作成します。mknod /dev/md1 b 9 1
mknod /dev/md3 b 9 3
mdadm --create /dev/md1 --level=1 --raid-devices=2 --metadata=0.90 /dev/sda1 /dev/sdb1
mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
作成したノードと交換パーティションをフォーマットします。mke2fs /dev/md1
mke2fs -j /dev/md3
mkswap /dev/sda2 && mkswap /dev/sdb2
swapon -p 1 /dev/sda2 && swapon -p 1 /dev/sdb2
md 1とmd 3の2つのノードをマウントします。mount /dev/md3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/md1 /mnt/gentoo/boot
cd /mnt/gentoo
ステップ5:最新バージョンのStageとPortageをインストールするlinksコマンドを使って最新バージョンのx 86_をダウンロードします。64 Stage 3とportgeは、現在のディレクトリに解凍されます。
links http://mirrors.sohu.com
tar xvjpf stage3-*.tar.bz2
tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
第六ステップ:コンパイルオプションの設定の環境はVIMがないので、nanoを使ってプロファイルを編集するしかないです。
nano -w etc/portage/make.conf
make.co nfにMAKEOPETSパラメータを追加し、MAKEOTSを使用してソフトウェアをインストールする時に同時にコンパイルする数を定義できます。CPUの数は通常1を加算します。MAKEOPTS="-j3"
unicodeのグローバルコンパイルパラメータを追加し、コンパイルされたソフトウェアはunicodeコードに対応することを保証します。USE="bindist unicode bash-completion vim-syntax jpeg png mmx sse sse2"
GENTOO_を追加しますMIRRORSとSYNCパラメータは、ダウンロードしたミラーアドレスを指定します。GENTOO_MIRRORS="http://mirrors.sohu.com/gentoo/"
SYNC="rsync://rsync.cn.gentoo.org/gentoo-portage"
その他の一般的な設定項目APACHE2_MODULES="authz_host cgi dir mime actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_owner authz_user autoindex cache cern_meta cgid charset_lite dav dav_fs dav_lock dbd deflate disk_cache dumpio env expires ext_filter file_cache filter headers ident imagemap include info log_config log_forensic logio mem_cache mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http reqtimeout rewrite setenvif speling status substitute unique_id userdir usertrack version vhost_alias unixd socache_shmcb authn_core authz_core"
NGINX_MODULES_HTTP="addition fastcgi flv geo geoip sub access auth_basic charset dav gzip gzip_static image_filter limit_req limit_zone map memcached perl proxy realip referer rewrite secure_link ssi stub_status upstream_ip_hash userid xslt random autoindex browser cache_purge degradation empty_gif headers_more push random_index scgi split_clients uwsgi slowfs_cache upload upload_progress"
NGINX_MODULES_MAIL="imap pop3 smtp"
ACCEPT_LICENSE="*"
PHP_TARGETS="php5-4"
PHP_INI_VERSION="production"
LINGUAS="en_US zh_CN zh_TW"
第七ステップ:システムの切り替えcd /
mount -t proc proc /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
cp -L /etc/resolv.conf /mnt/gentoo/etc/
chroot /mnt/gentoo /bin/bash
env-update && source /etc/profile
export PS1="(chroot) $PS1" # livecd (chroot)。
ステップ8:locale、タイムゾーン、ホスト名を設定します。タイムゾーンの配置ファイルはすべて/usr/share/zoneinfoに保存されています。
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Importantサーバーが提供するサービスは、タイムゾーンをまたぐアプリケーションにサービスを提供する必要があり、また、MongoDBとNodeJSを使用する場合は、タイムゾーンをGMT 0に設定し、サーバのタイムゾーンによるデータの時間エラーを回避し、クライアントがタイムゾーン判定で判断する流れを減少させる。
GMT 0ファイルを/etc/locatimeにコピーする必要がある場合:
cp /usr/share/zoneinfo/GMT0 /etc/localtime
中国語を使用できるように、localeに中国語UTF-8のサポートを追加し、修正/etc/locale.genファイルを作成します。nano -w /etc/locale.gen
追加:en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
local e-genコマンドを実行して、修正されたlocaleを有効にします。locale-gen
ホストの名前を設定します。nano -w /etc/conf.d/hostname
ファイルのhostnameをgentooに修正します。第九ステップ:ビルドカーネルの設定
emerge -avt gentoo-sources genkernel
zcat /proc/config.gz > /root/config/kernel-3.8.13.config
genkernel --color --loglevel=5 --menuconfig --save-config --makeopts=-j9 --kernel-config=/root/config/kernel-3.8.13.config all
コンパイルしたら/bootディレクトリの下でカーネルファイルを生成します。Important
多くのソフトウェアとドライバの実行にはカーネルのサポートが必要です。具体的な依存関係はこの文の付録にいくつかの説明があります。ここではRAID 1モードを使う時はMulti-device support(RAID and LVM)の下のすべてのコンパイルオプションを選択することを強調します。
ステップ10:編集/etc/fstab
デフォルトのfstabファイルでは、BOOT、ROOT、SWAPは実際のパーティション名で置き換えられます。
nano -w /etc/fstab
/dev/sda1 /boot ext2 noauto,noatime 1 2
/dev/sda3 / ext3 noatime 0 1
/dev/sda2 none swap sw 0 0
ext 4ファイルシステムであれば、対応するext 3をext 4に変更する必要があります。/dev/sda3 / ext4 noatime 0 1
システム起動時にはfstabの設定を読み込み、自動的にハードディスクをマウントしますので、他のハードディスクがあれば自動的にマウントする必要があります。fstabにも配置してください。例えば、サーバーには第二ブロックのハードディスク/dev/sdbがあり、そして一つのパーティション/dev/sdb 1に分割されています。ファイルシステムはext 4です。システム起動時に/optにマウントする必要があります。/dev/sdb1 / ext4 noatime 0 1
ImportantRAID 1の場合のfstabファイルの書き方は違っていますが、主にパーティション名は作成すべきノード名であり、交換パーティションのためにノードを作成していないので、2つのswapパーティションはすべてfstabファイルに書きます。
/dev/md1 /boot ext2 noauto,noatime 1 2
/dev/md3 / ext3 noatime 0 1
/dev/sda2 none swap sw 0 0
/dev/sdb2 none swap sw 0 0
ブートパーティションの起動パラメータのうち、noautは起動パーティションが自動的にシステムにマウントされないという意味です。第11ステップ:システム基本構成
システムのネットワークアドレスを設定し、SSHサービスを起動し、rootユーザのパスワードを設定し、いくつかのシステムの基本サービスをインストールし、システム起動時にサービスを開始します。eth 0はマシンによって名前を変えます。
echo 'config_eth0="192.168.1.10/24" ' >> /etc/conf.d/net
echo 'routes_eth0="default via 192.168.1.1" ' >> /etc/conf.d/net
echo 'dns_servers_eth0="192.168.1.1 8.8.8.8" ' >> /etc/conf.d/net
passwd
emerge -avt syslog-ng vixie-cron pciutils gentoolkit
rc-update add sshd default
rc-update add syslog-ng default
rc-update add vixie-cron default
ImportantRAID 1はmdadmが必要です。起動時に実行しますので、システムのインストールが完了する前にインストールし、その起動レベルをbootに設定してください。
emerge -avt mdadm
mdadm --detail --scan >> /etc/mdadm.conf
rc-update add mdadm boot
第12ステップ:ガイドプログラムの設定GentooはGrobを使ってシステムをガイドすることを推奨しています。ここで紹介したプロファイルの書き方は複数のシステムの共存に関係なく、grubをインストールした後にgrub.com nfファイルを配置します。
emerge -avt grub
nano -w /boot/grub/grub.conf
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux 3.8.13
root (hd0,0)
kernel /boot/kernel-genkernel-x86_64-3.8.13-gentoo root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda3 rootfstype=ext4
initrd /boot/initramfs-genkernel-x86_64-3.8.13-gentoo
Importantext 4のパーティションなら、ケネルの一行にrootfstype=ext 4のパラメータを加える必要があります。
grb-innstallコマンドでインストールします。
grep -v rootfs /proc/mounts > /etc/mtab
grub-install --no-floppy /dev/sda
ImportantRAID 1のモードは、grb-innstallコマンドでインストールできません。grubコマンドでのみインストールできます。
grub
grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2 /boot/
grub/menu.lst"... succeeded
Done.
grub> root (hd1,0)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd1)
grub> quit
第13ステップ:再起動して新しいシステムに入ります。exit
umount /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo
reboot
このようなインストールを経て、最も基本的なシステムができました。ステップ14:システムの更新
emerge --sync
emerge -avt gentoolkit
emerge --update --deep --newuse -avt @world
revdep-rebuild
etc-update
完成したら、現在のシステムを最新のバージョンに更新して、システムをより詳細にカスタマイズすることができます。第15歩:オーダーメイドhostnameとdomain
修正/etc/conf.d/hostname:
hostname="abc"
修正/etc/conf.d/net:dns_domain="xxxxx.com"
最終的にはコンサートのログイン上でabc.xxxxcomと表示されます。第16ステップ:カスタムSSHD登録方式
sh−keygenを用いてrsaアルゴリズムのkeyを作成する。
ssh-keygen -t rsa -C 'abc.xxxxx.com'
cp id_rsa.pub authorized_keys
生成するid_RSa秘密鍵はログインが必要なマシンにコピーし、ファイルの変更権限は400です。修正/etc/ssh/sshd_configプロファイル:Port 18402
AddressFamily any
PasswordAuthentication no
ChallengeResponseAuthentication no
sshコマンドを使ってマシンに登録するコマンドの場合は-iと-pの2つのパラメータを使います。ssh -i .ssh/id_rsa.dashboard -p 18402 [email protected]
第16歩:Shrewallファイアウォールを設定するshrewall.co nf配置ファイルを修正する:
STARTUP_ENABLED=Yes
interfacesファイルにネットカードを入れます。ここでenp 4 s 0は現在のマシンのネットカード名です。net enp4s0 tcpflags,nosmurfs,routefilter,logmartians,sourceroute=0
zonesにネットワークの設定を追加します。net ipv4
policyファイルを変更:$FW net ACCEPT
net all DROP info
all all REJECT info
rulesファイルを修正して、1842ポートのオープンに参加します。#Don't allow connection pickup from the net
#
Invalid(DROP) net all tcp
Invalid(DROP) net all udp
#
# Allow Ping from the local network
#
Ping(ACCEPT) net $FW
#
# Accept 80(Nginx) connection from internet
#
ACCEPT net $FW tcp 80
#
# Accept 18402(SSH) connection from internet
#
ACCEPT net $FW tcp 18402
第17ステップ:設定システムのデフォルトパラメータ//etc/security/limits.com nf
root soft noproc 65535
root hard noproc 65535
root soft nofile 65535
root hard nofile 65535
rootはユーザーを代表して、任意のユーザーを設定すれば、***を使用できます。noprocはプロセスの数です。nofileはファイルの数です。root soft noproc 65535はrootユーザーが開くことができる最大のプロセス数のソフトリミットは65535です。注意ソフトリミットはハードリミットを超えてはいけません。//etc/pam.d/login
session required /lib/security/pam_limits.so
ログイン時にpam_を呼び出しますlimits.soは、設定パラメータを/etc/security/limits.com nfから読み出して自動的に設定します。/proc/sys/fs/file-max
echo "65535" > /proc/sys/fs/file-max
注意/proc/sys/fs/file-maxは直接編集ツールで修正できません。NRBC
worker_rlimit_nofile 51200; # 51200
events {
use epoll;
worker_connections 51200; # worker 51200
}
/etc/syssctl.com nfnet.core.rmem_max = 33554432
net.core.wmem_max = 33554432
net.ipv4.tcp_rmem = 4096 16384 33554432
net.ipv4.tcp_wmem = 4096 16384 33554432
net.ipv4.tcp_mem = 786432 1048576 26777216
net.ipv4.tcp_max_tw_buckets = 360000
net.core.netdev_max_backlog = 2500
vm.min_free_kbytes = 65536
vm.swappiness = 0
net.ipv4.ip_local_port_range = 1024 65535
特定機種の記録Dell R 610
DELL R 610において2020165のLiveCDを使用してインストールした後、起動にエラーが発生しました。
bnx2: Can't load firmware file "bnx2/bnx2-mips-06-06.2.1.fw"
最終的にカーネルを修正:CONFIG_FIRMWARE_IN_KERNEL=N
インストールlinux-firmware:emerge -avt linux-firmware