はじめに
FreeBSD 9.0がリリースされたとき、私はこのシステムをHetznerによって作成されたばかりのサーバーにインストールすることにしました。 そして、彼らは公開されておらず、FreeBSDのインストールを許可していませんが、
Rescue Systemを介してこれを行うことはかなり可能です。 しかし、結局のところ、インストールできるのはFreeBSD 7.4とFreeBSD 8.2だけです。
Hetznerサポートに連絡した後、彼らは追加料金でこのソフトウェアのディスクを挿入する準備ができていると答えました。 もちろん、これは予算や計画には含まれていません。
インターネットには、FreeBSDをバージョン8からバージョン9にアップグレードするための多くのヒントがありますが、問題の本質を完全に反映していないか、必要に応じて更新を許可していません。 これをなんとかする前に多くの時間を費やしたので、時間を節約するためにこの記事を書くことにしました。
それでは始めましょう。
1. HenznerのFreeBSDバージョンのインストール
Rescue Systemを起動します「Hetzner」の指示に書かれているように、まずRescue Systemをアクティブにし、ssh経由でサーバーにアクセスする必要があります。
インストールを開始するには、次のコマンドを実行します
次に、パラメーターを指定してインストールを実行します。 インストール全体には数分しかかかりません。その結果、次のようになります。
Hetzner Online AG - installimage Your server will be installed now, this will take some time You can abort at any time with CTRL+C … Deleting selected harddrive(s)… DONE Creating a file system and extracting the image… DONE Copying kernel… DONE Configuring rc.conf… DONE Configuring loader.conf… DONE Enabling SSH login for root… DONE Configuring resolv.conf… DONE Congratulations! The configuration has been completed successfully. You can now use 'reboot' to boot your newly installed FreeBSD system.
インストール後、再起動します
2更新用のデータの構成
supを介してシステムを更新します。 私の意見では、システムを更新する最も簡単で正しい方法です。
supは、FreeBSDオペレーティングシステムの標準機能です。
ディレクトリに移動します
確認する
次に、オペレーティングシステムの新しいバージョンを指定する必要があります。
デフォルトは現在のバージョンです。
構成ファイルのコピー
編集する
新しいオペレーティングシステムであるsrcのソースコードの同期
すべてのファイルをコピーした後、ファイル/ usr / src / UPDATINGを読み取る必要があります(問題がないように)
次に、プロファイリングコードの生成を有効にする必要があります(ファイル/etc/make.confにNO_PROFILE = trueを書き込みます)。
また、CFLAGS値を-O2 -pipeに設定する必要があります。
-pipeを使用すると、コンパイラーは一時ファイルではなくプログラムチャネルを使用して通信できます。
(RAMによる)ディスクアクセスを削減します。
次の行も追加する必要があります:KERNCONF = MYKERNELをmake.confに追加して、カーネルのビルドおよびインストール時に書き込まないようにします
でもただ
ファイル/etc/src.confを編集します
一般に、make.conf構成には多くのパラメーターを追加できます。必要なコンパイルオプションによって異なります。
私の設定make.conf
CPUTYPE?=nocona CFLAGS= -O2 -fno-strict-aliasing -pipe
カーネルソースを入手する
カーネルディレクトリに移動します
前に作成したディレクトリにカーネルの設定をコピーします
次に、コンピューターのカーネルを構成する必要があります
詳細については、FreeBSDの公式Webサイトをご覧ください。
私のカーネル構成
cpu HAMMER ident MYKERNEL makeoptions DEBUG=-g
カーネルの構成後、ソースディレクトリ/ usr / srcに移動します
私はほとんど忘れていました。カーネル設定に次のオプションを追加する必要があります
options COMPAT_FREEBSD8
次のファイルを編集して行を追加します
システムの世界とカーネルをコンパイルすることにします
プロセスが終了するまで待ちます
カーネルをコンパイルします
カーネルがコンパイルされたら、インストールします
今、あなたは世界をコンパイルする必要があります
世界は非常に長い間コンパイルしています、あなたは待たなければなりません
日付の出力を確認し、出力が正しくない場合は、記事を読む必要があります
今、次を行います
構成ファイルをインストールする
質問が発生した場合は、常にiを押す必要があります
i [Enter]
他のオプションがない場合は、 dを押す必要がある場合があります
d [Enter]
i-新しい構成ファイルをインストールする
d-一時構成ファイルを削除する
rc.dディレクトリを削除します
引き続き構成をインストールします
世界を設定する
ワールドをインストールしたら、ワールドの構成をコピーします
パラメータiとdを忘れずに、順番に実行する必要があります。多くの質問があります。
以上で新しいシステムはインストールされましたが、 まだコンピューターを再起動することはできません。
rootユーザーのパスワードを変更します
次に、SSHを構成する必要があります。そうしないと、システムにログインしません
PermitRootLogin yes
すべてが正しく行われたかどうかを確認します
どんなデーモンが走っていますか? 他の方法で起動されるサービスがあるかどうかは、/ etc / rc.confを参照してください。
また/etc/rc.confで、ネットワーク設定
/var/run/dmesg.bootの内容は、使用されているハードウェアに関するすべての情報を提供します。
使用済みと未使用の両方の鉄をすべて表示します
ATAデバイスのリスト
USBデバイスをリストします
タイムゾーンを設定します
または
ロケール設定
デフォルトでは、エンコーディングkoi8-rがFreeBSDにインストールされます(私の意見ではこれは最後の世紀であり、utf-8に変更されます)
russian|Russian Users Accounts:\ :charset=UTF-8:\ :lang=ru_RU.UTF-8:\ :tc=default:
上記の方法に加えて、使用するシェルに変数を登録することができます
setenv LANG ru_RU.UTF-8 setenv LC_CTYPE ru_RU.UTF-8 setenv LC_COLLATE POSIX setenv LC_ALL ru_RU.UTF-8
bashが好きな人にはオプション
LANG="ru_RU.UTF-8"; export LANG LC_CTYPE="ru_RU.UTF-8"; export LC_CTYPE LC_COLLATE="POSIX"; export LC_COLLATE LC_ALL="ru_RU.UTF-8"; export LC_ALL
setenv LANG ru_RU.UTF-8 setenv LC_CTYPE ru_RU.UTF-8 setenv LC_COLLATE POSIX setenv LC_ALL ru_RU.UTF-8
次に、コンソールに入力するだけです
sysctlでの設定の処方
サーバーのこれらの設定に注意してください。これらの設定は、多くのパラメーター、コンピューターのハードウェア、RAMの量、プロセッサーのタイプ、サーバーの負荷などに依存します。
bootLoaderを構成します(構成の例を示します。サーバーに対してこれを繰り返し、例を示します)。
zfs_load="YES" vfs.root.mountfrom="zfs:garpix/root" vfs.zfs.zio.use_uma="0" ahci_load="YES" aio_load="YES" geom_mirror_load="YES" geom_stripe_load="YES" geom_cache_load="YES" geom_label_load="YES" accf_http_load="YES" accf_data_load="YES" accf_dns_load="YES" coretemp_load="YES" if_em_load="YES" verbose_loading="YES" boot_verbose="YES" vm.kmem_size_max="4G" vm.kmem_size="4G"
RC.CONF設定
サンプルのrc.conf構成(メディア100BaseTX mediaopt全二重、flag0は「Hetzner」データセンターに依存)を提供します。これは、別のデータセンターの別のサーバーでメディア自動選択を行ったため、サポートサービスによって明確にされるべきであり、Hetzner IPv6設定も提供します、別の記事でこのトピックを詳細に説明することはしませんが、例としてそれを行うことができ、機能します。
hostname="garpix" sshd_enable="YES" sendmail_enable="YES" zfs_enable="YES"
最も重要なことは、ファイアウォールを構成する必要があることです。
RC.IPFW
スクリプトを実行可能にする
今再起動
すべてが正しく行われていれば、すべてが「時計」のように機能するはずです
make delete-oldおよびmake delete-old-libsについては、誰もが自分で決定します。
私のカーネル構成で、DTraceを登録しました。もしそうなら、すべてが機能するかどうかを確認します
make.confを編集して、ユーザーレベルのDtraceをサポートします
STRIP= CFLAGS+=-fno-omit-frame-pointer
次に、ポートをインストールする必要があります
ポートのリストを取得する
ポートの削除
portsディレクトリに移動し、インデックスを設定します
すべての準備が整いました。現在、システムは完全に動作しており、ポートと通常の動作に必要なすべてのものが揃っています。 必要なアプリケーション、mc、ftp、nginxなどをインストールできます。 など
PS不正確またはコメントを見つけたら、書きます-私はそれを訂正します、私はグーグルとHabrから資料を集め、すべてを詳細に説明し、それが指示として使用できるようにしました。 もちろん、ここではほとんどが初歩的ですが、一部のユーザーにとっては、これが時間の節約に役立つことを願っています。