Hetzner.deのサーバーにFreeBSDをインストールする





Serverloftでの失望の後、プロバイダー検索は積極的に続けられ、多くの議論の後にhetzner.deで停止することが決定されました。 マイナーな欠陥がありますが、それに関する全体的なレビューは非常に肯定的です。 もちろん、サーバーの要件は同じでした-FreeBSDをインストールする機能。 公式には、HetznerはFreeBSDの自動インストールをサポートしていませんが、尊敬される%username%は、Rescueシステムを使用したFreeBSDのインストールに関するwiki記事があることを示唆しています。 wikiの記事をざっと読みました-すべてが明確に見えます。 そのため、サーバーを購入し、すべてをデプロイするためのスクリプトを準備しましたが、...すべてがそれほど単純ではないことが判明しました...



完全に読むのが面倒な人のためのネタバレ:投稿にはネガティブはなく、多くの倒錯とハッピーエンドがあります:)








ステップ1:準備




そもそも、Hetznerが公式に宣言していること-FreeBSDは、次のチップセットで動作するという条件で、EQ4、EQ6、EQ9のサーバーで正常にテストされています。



* MSI K9AG Neo2(MS-7368)

* MSI K8T Neo2-F(MS-7032)

* MSI K8MM3-V(MS-7181)

* MSI KA780G(MS-7551)

* MSI K9NBPM2-FID(MS-7252)



他のサーバーでのこのOSの動作は保証されません。 EQ6(Core i7、12Gb RAM、2x1.5 TB HDD)を使用しました。これはMS-7032で動作しました。 したがって、すべてが問題ないはずです。 dmidecodeを使用して、事前にインストールされたLinuxからこのケースを確認できます。



# dmidecode | grep-A 3 "DMI type 1,"

Handle 0x0001, DMI type 1, 25 bytes

System Information

Manufacturer: MSI

Product Name: MS-7032

#








ステップ2:保存!..




まず、サーバーをレスキューモードにする必要があります。 これを行うには、コントロールパネル( https://robot.your-server.de/server )にログインし、[メイン機能]-> [サーバー]を選択し、リストでサーバーをクリックし、[レスキュー]タブ(この場合はFreeBSD)でOSを選択します。 32ビットと64ビットの間で難しい選択をしてください。 [Rescueシステムのアクティブ化]をクリックすると、システムがパスワードを生成します-パスワードを保存する必要があります。 次に、サーバーを再起動して(パネルで[リセット]-> [自動ハードウェアリセットを実行])、ブート時にRescueモードに入るようにします。



そのため、サーバーが再起動しました。 管理パネルから保存されたrootユーザーとパスワードを使用します。 招待状が表示されます。



FreeBSD 8.0-STABLE (GENERIC) #1: Tue Mar 9 12:36:22 UTC 2010



Welcome to mfsBSD, the memory based FreeBSD distribution.








mfsBSDディストリビューションが実行されているサーバーを取得しました-RAMから完全に機能する最小限のディストリビューションです。 どうやら-sysinstallを実行し続け、大失敗し、女性になります...しかし、小さな(率直に言って-大きな)問題があります-mfsBSDのsysinstallは、必要なフラグを使用してinitの初期段階で起動しないため、ディスクレイアウトにアクセスできません。 私たちにとって、これは次のことを意味します-システムをインストールするために-FreeBSD'shスライスはすでにハードディスク上に存在しているはずであり、ディスクは事前にマークされている必要があります。 したがって、手動で行う必要があります。



ステップ3:そのままの硬質スズ




私たちが持っているドライブを見てみましょう:



rescue# ls /dev/ad*

/dev/ad4 /dev/ad4s1 /dev/ad4s1a /dev/ad4s1b /dev/ad6 /dev/ad6s1 /dev/ad6s2 /dev/ad6s3

rescue#








ad4およびad6。 最初のad4にインストールします。

まず、ゼロセクタを消去し、FreeBSDスライスがディスク全体を占有するという情報を書き込みます。



rescue# fdisk -BI /dev/ad4

******* Working on device /dev/ad4 *******

fdisk: Class not found

rescue#









「クラスが見つかりません」というエラーに驚かないで、無視してください。 次に、ブートローダーをインストールして、スライスのラベルを作成します。



rescue# bsdlabel -wB /dev/ad4s1







次に、ディスクのレイアウトを説明するファイルを編集する必要があります。 ファイルはデフォルトのエディターで開きます-vi。 彼とあまり親しくない場合は、たとえば、eeエディターに切り替えることができます。



setenv EDITOR /usr/bin/ee







そのため、ファイルを編集します。



rescue# bsdlabel -e /dev/ad4s1







ファイルは次のようになります(最初):



# /dev/ad4s1:

8 partitions:

# size offset fstype [fsize bsize bps/cpg]

a: 2930277089 16 unused 0 0

c: 2930277105 0 unused 0 0 # "raw" part, don't edit








次のようにドライブをパーティションに分割することが(私のタスクにとって)正しいことがわかりました。



/-10G

スワップ-4196M

/ tmp-10G

/ var-500G

/ usr-その他すべて



したがって、構成は次のとおりです。



# /dev/ad6s1:

8 partitions:

# size offset fstype [fsize bsize bps/cpg]

a: 10G 16 4.2BSD 0 0

b: 4196M * swap 0 0

d: 10G * 4.2BSD 0 0

e: 500G * 4.2BSD 0 0

f: * * 4.2BSD 0 0









各文字はパーティションを意味します(「アルファベット順」に作成されます。つまり、「a」は「b」よりもディスクの先頭に物理的に近くなります)。 値「c:」が欠落していることに注意してください。 記憶が正しければ、パーティションテーブル自体に予約されているため、マークアップで使用できません。

ファイルを保存して、コンソールに戻ります。 次に、これらの設定に従って、ディスク上にファイルシステムを作成する必要があります。



newfs /dev/ad4s1a





newfs /dev/ad4s1b





newfs /dev/ad4s1d





newfs /dev/ad4s1e





newfs /dev/ad4s1f







SoftUpdatesを使用する場合は、必要なパーティションを作成するときに、newfsの後に-Uフラグを追加します。



怖いtsiferkiが実行され、最終的にufs2ファイルシステムを含むディスクが取得されます。 どうやら-「乾杯、sysinstallをくれ」? しかし、いや、すでに/パーティションがありますが、それはmfsBSDに属します。 また、メモリではなく、破損したばかりのディスクにインストールする必要があります。 ソリューションは簡単であることがわかりました-ディスクをマウントします。 すでに必要なパーティションを作成しているので、たとえば/ mntにマウントします。 これを行うには、そこにフォルダを作成します:



mkdir /mnt/tmp

mkdir /mnt/var

mkdir /mnt/usr









そして今マウント:



mount /dev/ad4s1a /mnt





mount /dev/ad4s1d /mnt/tmp





mount /dev/ad4s1e /mnt/var





mount /dev/ad4s1f /mnt/usr







そして、今だけsysinstallを実行できます。



ステップ4:Sysinstall? そうそう!




sysinstallで、カスタムインストールを選択します。 その中で、最初に[オプション]に移動し、インストールパス(「インストールパス」パラメーター)を変更します。この場合、/の代わりに、/ mntを指定する必要があります。 ラベルとパーティションは変更しないでください。すでにすべてを行っています。 Distributionsで、Minimalを選択します-理由はまだわかりませんが、hetznerは彼のwikiの世界でこれを推奨しています。 次に、Media-システムのインストール元-を選択します。ここで嬉しい驚きがあります。Hetznerは、内部NFSサーバーにFreeBSDインストールイメージを持っています。 NFSを選択し、インストールするバージョンに対応するアドレスを指定します。



7.2-RELEASE-32ビット-213.133.99.100:/nfs/freebsd/7.2_32

7.2-RELEASE-64ビット-213.133.99.100:/nfs/freebsd/7.2_64

7.3-RELEASE-32ビット-213.133.99.100:/nfs/freebsd/7.3_32

7.3-RELEASE-64ビット-213.133.99.100:/nfs/freebsd/7.3_64

8.0-RELEASE-32ビット-213.133.99.100:/nfs/freebsd/8.0_32

8.0-RELEASE-64ビット-213.133.99.100:/nfs/freebsd/8.0_64



NFSパーティションを指定した後、7番目の項目「コミット」を選択すると、インストールが開始されます。 インストールが完了したら、sysinstallを終了する必要がありますが、完成したシステムに入るには早すぎます...



ステップ5:これでファイル...




ここで、インストールされたOSを構成する必要があります。



これを行うには、OSのファイルシステムに移動することをお勧めします。



chroot /mnt







最初に行う必要があるのは、/ etc / fstabを編集し、前に行ったディスクレイアウトを記述して、起動時にすべてのパーティションがマウントされるようにすることです。 私が行った構成に基づいて、次の/ etc / fstabを取得しました。



/dev/ad4s1a / ufs rw 1 1

/dev/ad4s1b none swap sw 0 0

/dev/ad4s1d /tmp ufs rw 1 1

/dev/ad4s1e /var ufs rw 1 1

/dev/ad4s1f /usr ufs rw 1 1








次に、デフォルトのカーネルを正しい場所に書き換える必要があります。書き換えないと、ロード時にシステムがカーネルを見つけられません。



cp -Rp /boot/GENERIC/* /boot/kernel/







次に、ネットワーク設定を設定する必要があります。 ifconfig'om、ネットワークカード、サブネットマスク、ゲートウェイを確認し、rc.confを編集します。



#

hostname="my.server.com"

# SSH

sshd_enable="YES"

# re0

ifconfig_re0="inet 1.1.1.1 netmask 255.255.255.0"

#

defaultrouter="1.1.1.254"









また、サーバーでDNSが動作することを望んでいます。 これを行うには、/ etc / resolv.confを作成して追加します。



# DNS hetzner.de

nameserver 213.133.98.98

nameserver 213.133.99.99

nameserver 213.133.100.100








システムにログインする方法を考えるといいでしょう。 次の2つのオプションがあります。



Unix-way:



システムにユーザーを追加し、adduserを使用してログインし、wheelグループに追加します。



ダミーウェイ:



SSH経由のルートアクセスを許可します(デフォルトでは、FreeBSDルートはリモートでログインできません)。 これを行うには、/ etc / ssh / sshd_configで「PermitRootLogin」パラメーターを「yes」に設定します。



また、/ etc / ssh / sshd_configに「UseDNS」パラメーターを「no」に設定しました。 システムにログインするときの遅延に悩まされます。



最後に、ルートパスワードを自分のものに変更します。



passwd







以上で、セットアップは完了です。 ここで、円を閉じ(Ctrl + D)、パーティションをアンマウントする必要があります。



umount /mnt/tmp





umount /mnt/var





umount /mnt/usr





umount /mnt







サーバーを再起動します。



init 6







すべてがうまくいけば、数分後に、FreeBSDが設定された状態でサーバーが起動します。



ステップ6:ボーナストラック




私がインストールしたサーバーには2つのディスクがありましたが、インストール中に1つだけを使用しました。 2番目のディスクにはオプションがあります。



1.ハードウェアRAIDコントローラーを購入してRAID 1を作成するには。

2.ソフトウェアRAID 1を作成します。

3.バックアップ用に2番目のディスクを使用します。



最初のオプションは、このマニュアルの内容を変更するものではありません。インストールを開始する前に、コントローラーを購入してRAIDを組み立てるだけです。 2番目の選択肢は、ソフトウェアRAIDでの豊富な経験があり、それらを復元しようとする試みで、役に立たないことがわかりました。 次のように、3番目のオプションを実装しました。



sysinstallが実行中のシステムの下からディスク上にパーティションを作成できるように、sysctlの1つのパラメーターを変更する必要があります(動的に変更されます):



pluto# sysctl kern.geom.debugflags=16

kern.geom.debugflags: 0 -> 16

pluto#








ここでsysinstallを実行し、その中でConfigure-> Fdisk-> ad6(またはバックアップに使用するドライブ)を実行します。 ディスク全体を占有するスライスを指定し(A)、終了します(Q)。 ブートローダーに関する質問には、「マスターブートレコードはそのままにしておきます」と回答します。 次に、Labelに移動し、パーティションを作成し(C)、そのマウントポイントを定義し(たとえば、/ backups)、ファイルシステムを作成し(W)、終了します(Q)。



もちろん、サーバーが起動するたびにパーティションをマウントし、/ etc / fstabにエントリを追加する必要があります。



/dev/ad6s1d /backups ufs rw 1 1







そして接続してください:



mount -a







これで、「df -h」で、大規模な/バックアップセクションを賞賛し、バックアップの構成を開始できます。



PS記事を書くとき、Wetz Hetznerが使用され、Googleで見つかったいくつかの記事は、方向性を理解するのに役立ちました-説明された設定の多くは科学的な突っ込みによって学ばなければなりませんでした。 原則として、この資料はステップバイステップのインストールガイドと見なすことができます。記事を書いた後、サーバーを再インストールし、この記事からコピーして貼り付けてください。すべて順調に進みました。

PPSそれが物語の終わりであり、誰がスクロールしたか-よくやった。 ご清聴ありがとうございました。



All Articles