= 準備 = 必ず設定すべき項目は以下の2つ * Hyper-V側でネットワークアダプターを適切なNICを指すように変更する。 デフォルトでは'''「接続されていません」'''になっているのでNICを適切に設定しないとインストール時にネットワークカードの設定が無視されるのでインストール後にネットに接続できないなんてことに。もし忘れたままインストールしてしまった場合は、適切にHyper-V側の設定でNICを選択した後、FreeBSDを起動し、FreeBSDでの/etc/rc.confに自分で直接ifconfig_hn0="SYNCDHCP"と書き込んでリブート * 「世代の指定」で第1世代を選択する。 Hyper-Vの世代はUEFIブートに対応したFreeBSDのインストールメディアを持っていない場合は第1世代を選択する。現状ではFreeBSDのUEFIブートはテスト段階なので、あまりUEFI環境下での使用はおすすめできない。というか自分はUEFI環境下でのインストールをしたことがないため、よく知らない。詳しく知りたいなら[[https://wiki.freebsd.org/UEFI|UEFI - FreeBSD Wiki]]を参照すること。多分、セキュアブートが[[https://wiki.freebsd.org/SecureBoot|SecureBoot - FreeBSD Wiki]]にあるようにまともに対応してないため、そもそもインストールとかできない気がする = インストール = インストールはストレージ選択以外は日本語文献があるので割愛。 ストレージ選択時には''ada0''の方を選択するほうがいいかも(?)。自分は''da0''にインストールはしていないからどんな動作をするのかわわからない。再インストール時にda0に中身が前回のインストール時と同じものが詰まっているように見える。スナップショット用とかそんな用途のためにあるのかもしれない。'' '''要調査'' ''' = インストール後の設定とか = == ネットワーク == まずはネットにつながっているかを確認するために次のコマンドを起動したVM環境で叩く {{{#!highlight bash ifconfig }}} ここで''hn0''というNICが見つからないなら、VMをシャットダウンした後に、Hyper-Vの設定で適切なNICを選択し、再起動して次の作業にすすむ。 hn0がFreeBSD側で認識されていたら、''hn0''の項目内に''inet:xxx.xxx.xxx.xxx''という項目が存在するかを確認する。ここでIPv6を使っている人がもしいれば、探すべき項目は''inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx''。この項目が存在していれて127.0.0.1とか::1とか表示されてなければ、DHCPサーバーからIPが降ってきているので、次のコマンド {{{#!highlight bash ping www.google.co.jp }}} を打ってネットワークに繋がっているかを確認する。ここでpingコマンドにNo route to hostとかnetwork is unreachableとか言われた場合はそもそもハイパーバイザがネットワークに繋がっていないか今までの設定で何かミスを犯しているか、次のネットワークの設定を行っていない可能性があるので、Hyper-Vの設定を見なおしたり、/etc/rc.confの記述をミスっていないかを確認したり、次の「pingが通らない場合」の設定を行ってみるよ良い。pingから {{{ 64 byte from xxx.xxx.xxx.xxx:icmp_seq=x ttl=xx time=x.xxx ms }}} と応答があれば、ネットワークの設定は終わっているので次のセクションまで進んでもらって構わない。 === pingが通らない === /etc/rc.confをviを用いて開く。その中に {{{ ifconfig_hn0="DHCP" }}} という文字列があれば、その文字列を {{{ ifconfig_hn0="SYNCDHCP" }}} に変更する。なければrc.confの最初の方に追加。/etc/rc.confを修正し終わったら修正を保存してVMを再起動することで、内容が反映されるはず。もし、再起動したくないならば {{{#!highlight bash dhclient hn0 }}} を打てば、DHCPサーバーと接続されている場合、IPがそのまま降ってくる。以上でネットワークの設定は終了 == FreeBSDシステムのアップデート == 「FreeBSD インストール」とかでググると結構文献がでてくる。基本的には次のコマンドでアップデートを行うことで、FreeBSDを最新に保つことができる。 {{{#!highlight bash freebsd-update fetch install }}} このコマンドは、最新のパッチなどを取得(fetch)し、インストール(install)する。このfreebsd-updateコマンドは/bootにGENERICカーネルが存在しなければ適用できない。詳しく知りたい場合は[[FreeBSD Handbook|https://www.freebsd.org/doc/handbook/]]の[[https://www.freebsd.org/doc/handbook/updating-upgrading-freebsdupdate.html|24.2 FreeBSD Update]]を参照すること。特にカスタムカーネルの構築などを行っていない場合やあるいは/boot直下にGENERICカーネルがある場合、カスタムカーネルを1回だけ構築しているが、/boot/kernel.oldが存在している場合はfreebsd-updateコマンドによって、システムのアップデートを行うことができる。 == Portsのアップデート == Ports自体、最近はpkgngの導入などによって触る機会は減っているかもしれないが、pkgngにはまだ導入されていないパッケージがportsにはあるといったことがあるので、知っておいて損はないと思う。pkgngよりもPortsによる導入のほうが安定していることが多いので、時間があるのであれば、こちらでのパッケージ導入をおすすめする。 インストール時に/usr/portsを導入していれば、そのportsはインストールメディアが作成された時のスナップショットをコピーしているだけなので、次のコマンドを叩く。 {{{#!highlight bash portsnap fetch extract }}} このコマンドはportsサーバーから最新のスナップショットを取得(fetch)し、取得したスナップショットを/usr/portsに展開(extract)する。このコマンドはスナップショットをフェッチして展開しているだけなので、インストール時にPortsを導入していなくても正常に動作してくれる。このコマンドによってPortsはコマンドを叩いた時点で最新のものとなる。あとは入手したportsの中から導入したいパッケージのディレクトリへ移動し、 {{{#!highlight make install clean }}} を入力することで、パッケージが導入される。 Portsは/usr/ports以下に「カテゴリー/パッケージ」という階層で分けられているため、初めてFreeBSDを使う人はどこにパッケージがあるのか迷うかもしれない。そんな時はpsearchをインストールするか、/usr/portsに移って {{{#!highlight bash make quicksearch name=<探したいパッケージ名> }}} を打つと幸せになれるかもしれない == Xorg == 現状、pkgからのインストールもportsからのインストールもSignal 10(Bus Error)で起動できない。