Gentooサーバーに手記をインストールします。

14391 ワード

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コマンドを使って設定することもできます。
    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のいくつかの基本コマンド:
  • nはパーティション
  • を作成します。
  • pはすべてのパーティション
  • を表示します。
  • aはパーティションを起動パーティションとして指定しています。表示される時、このパーティションには****
  • が表示されます。
  • dパーティションを削除する
  • tはパーティションのタイプを変えます。Linux swap/Solarisの番号は82
  • です。
  • lは、すべてのパーティションタイプ
  • を表示します。
    これらのコマンドを使って、ハードディスクのためにブートパーティションを作成します。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  
    
    Important
    2つのハードディスクを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
    
    Important
    RAID 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
    
    Important
    RAID 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
    
    Important
    ext 4のパーティションなら、ケネルの一行にrootfstype=ext 4のパラメータを加える必要があります。
    grb-innstallコマンドでインストールします。
    grep -v rootfs /proc/mounts > /etc/mtab
    grub-install --no-floppy /dev/sda
    
    Important
    RAID 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 nf
    net.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