os:freebsd:memo
差分
このページの2つのバージョン間の差分を表示します。
| 前のリビジョン | |||
| — | os:freebsd:memo [2024/05/12 02:10] (現在) – 外部編集 127.0.0.1 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== FreeBSD に関するメモ ====== | ||
| + | ===== ZFS ===== | ||
| + | Root deviceにzfs を利用している場合、/ | ||
| + | |||
| + | - FreeBSDのInstaller USB Memory を作成し、そこからboot | ||
| + | - Installer画面が出たら、shellを起動 | ||
| + | - '' | ||
| + | - viで / | ||
| + | |||
| + | ===== WiFi ===== | ||
| + | MS-01に載っている Mediatek MT7922 を Intel AX210NGW に換装したので、その設定を。 | ||
| + | |||
| + | なお、FreeBSD 14.0-RELEASEで試している。 | ||
| + | |||
| + | * WiFi Deviceを確認する | ||
| + | * '' | ||
| + | * 今回は、'' | ||
| + | * Network I/F を作成し、起動 | ||
| + | * '' | ||
| + | * < | ||
| + | iwlwifi0: WRT: Invalid buffer destination | ||
| + | iwlwifi0: WFPM_UMAC_PD_NOTIFICATION: | ||
| + | iwlwifi0: WFPM_LMAC2_PD_NOTIFICATION: | ||
| + | iwlwifi0: WFPM_AUTH_KEY_0: | ||
| + | iwlwifi0: CNVI_SCU_SEQ_DATA_DW9: | ||
| + | wlan0: Ethernet address: XX: | ||
| + | </ | ||
| + | * '' | ||
| + | * WEP関係の設定を作成 | ||
| + | * '' | ||
| + | * '' | ||
| + | * Access Pointに接続 | ||
| + | * '' | ||
| + | * Commandlineから実行した場合、以下のErrorが出るが、現時点では無視して良い | ||
| + | * < | ||
| + | ioctl[SIOCS80211, | ||
| + | ioctl[SIOCS80211, | ||
| + | </ | ||
| + | * wlan I/ | ||
| + | * < | ||
| + | wlan0: flags=8843< | ||
| + | options=0 | ||
| + | ether XX: | ||
| + | inet6 fe80:: | ||
| + | groups: wlan | ||
| + | ssid XXXXXXXXXXXXXXXX channel XX (XXXX MHz 11a) bssid XX: | ||
| + | regdomain JAPAN country JP authmode WPA2/ | ||
| + | deftxkey UNDEF AES-CCM 3:128-bit txpower 23 bmiss 7 mcastrate 6 | ||
| + | mgmtrate 6 scanvalid 60 wme roaming MANUAL | ||
| + | parent interface: iwlwifi0 | ||
| + | media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11a | ||
| + | status: associated | ||
| + | nd6 options=23< | ||
| + | </ | ||
| + | * DHCPで IP Addressを取得する | ||
| + | * '' | ||
| + | * これで問題がなければ、以下永続化 | ||
| + | * / | ||
| + | * < | ||
| + | wlans_iwlwifi0=" | ||
| + | create_args_wlan0=" | ||
| + | ifconfig_wlan0=" | ||
| + | </ | ||
| + | |||
| + | ===== DC-TCP ===== | ||
| + | |||
| + | FreeBSD 11.0以降では、TCPのCongestion Control機構としてDC-TCPが利用できる。 | ||
| + | これを利用する設定をいかに記載しておく。 | ||
| + | |||
| + | なお、Install時の標準は、NewReno。 | ||
| + | |||
| + | * 手動での切り替え | ||
| + | * 以下を実行する< | ||
| + | # kldload cc_dctcp | ||
| + | # sysctl -w net.inet.tcp.cc.algorithm=dctcp | ||
| + | # sysctl -w net.inet.tcp.ecn.enable=1 | ||
| + | </ | ||
| + | * ECNの確認(1 or 2であること) < | ||
| + | # sysctl net.inet.tcp.ecn.enable | ||
| + | 1 | ||
| + | </ | ||
| + | * 0: ECNを利用しない | ||
| + | * 1: ECNを利用。送受信 | ||
| + | * 2: ECNを利用。受診時のみ | ||
| + | * 永続化 | ||
| + | * ''/ | ||
| + | cc_dctcp_load=" | ||
| + | </ | ||
| + | * ''/ | ||
| + | net.inet.tcp.cc.algorithm=dctcp | ||
| + | net.inet.tcp.ecn.enable=1 | ||
| + | </ | ||
| + | |||
| + | ===== JournalしているUFSでfsckに失敗する ===== | ||
| + | |||
| + | 起動時にこんなエラーがでた。 | ||
| + | |||
| + | < | ||
| + | # fsck -y /dev/ada0p1 | ||
| + | ** /dev/ada0p1 | ||
| + | USE JOURNAL? yes | ||
| + | ** SU+J Recovering /dev/ada0p1 | ||
| + | ** Reading 33554432 byte journal from inode 5 | ||
| + | RECOVER? yes | ||
| + | ** Building recovery table. | ||
| + | ** Resolving unreferenced inode list. | ||
| + | ** Processing journal entries | ||
| + | fsck_ufs: Directory 43643675 name not found | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | これが出ると、fsckで復旧できない。 | ||
| + | |||
| + | このada0p1はJournalをenableにしており、/ | ||
| + | |||
| + | 対処は | ||
| + | - Single Userで起動 | ||
| + | - tunefs -j disable /dev/ada0p1 | ||
| + | - fsck -y /dev/ada0p1 | ||
| + | - mount / ; rm /.sujournal | ||
| + | - RebootしてSingle Userで起動する | ||
| + | - tunefs -j enable /dev/ada0p1 | ||
| + | - 再度reboot | ||
| + | |||
| + | これで問題が解決した。 | ||
| + | |||
| + | ===== FreeBSDにDiskを追加 ===== | ||
| + | |||
| + | 作成したFreeBSD 11.0にHDDを追加した時に行う作業。 | ||
| + | |||
| + | さすがに // | ||
| + | |||
| + | - まずは、 Disk をつなぐ | ||
| + | - (必要に応じて '' | ||
| + | * 今回は、仮に ''/ | ||
| + | - '' | ||
| + | * < | ||
| + | # gpart show | ||
| + | => 34 41942973 | ||
| + | 34 1024 | ||
| + | 1058 39844864 | ||
| + | 39845922 | ||
| + | 41943006 | ||
| + | </ | ||
| + | * この時、まっさらであれば、 **GEOM** が Disk を認識していない。上記例でも、ada1は見えていない | ||
| + | * XenServer で Disk を追加した時などでは、当然 '' | ||
| + | - Disk Partition を作成する | ||
| + | * '' | ||
| + | * < | ||
| + | # gpart show | ||
| + | => 34 41942973 | ||
| + | 34 1024 | ||
| + | 1058 39844864 | ||
| + | 39845922 | ||
| + | 41943006 | ||
| + | |||
| + | => | ||
| + | | ||
| + | </ | ||
| + | * 削除したい時には、'' | ||
| + | * なお、 **destroy** する場合、 partition が存在して **はいけない**。事前に削除しておくこと | ||
| + | - Partition を作成 | ||
| + | - '' | ||
| + | * 上記のような指定をした場合、空き領域のうち、取得可能な最大領域を確保する。 | ||
| + | * < | ||
| + | # gpart show ada1 | ||
| + | => | ||
| + | | ||
| + | </ | ||
| + | * 領域を指定したい場合、 **-b** で開始位置、 **-s** で領域のサイズが指定できる。 | ||
| + | * **-l** を利用してlabelをつけることもできる。labelは便利なので、付けておくことをお勧めする。 | ||
| + | * add する際に **-l** を指定しても良いが、後から追加する場合 '' | ||
| + | * この **-i** はindexであり、'' | ||
| + | * このindexの値が、すなわち Partition 番号であり ada0p2 である場合、p2 が Partition index 2 を示す | ||
| + | * labelを見たい場合、'' | ||
| + | * < | ||
| + | # gpart show -l | ||
| + | => 34 41942973 | ||
| + | 34 1024 | ||
| + | 1058 39844864 | ||
| + | 39845922 | ||
| + | 41943006 | ||
| + | |||
| + | => | ||
| + | | ||
| + | </ | ||
| + | * Partition を削除したい場合、'' | ||
| + | - これで、Partition が作成できたので、newfsする | ||
| + | * '' | ||
| + | * gjournal(-J) の代わりに soft-update journal(-j) を利用することもできるが、 GEOM を利用しているのだから gjournalを利用する | ||
| + | - これで GEOM - UFS な Filesystem が出来上がったので、確認する。 | ||
| + | * '' | ||
| + | * < | ||
| + | # tunefs -p /dev/ada1p1 | ||
| + | tunefs: POSIX.1e ACLs: (-a) disabled | ||
| + | tunefs: NFSv4 ACLs: (-N) | ||
| + | tunefs: MAC multilabel: (-l) | ||
| + | tunefs: soft updates: (-n) | ||
| + | tunefs: soft update journaling: (-j) | ||
| + | tunefs: gjournal: (-J) | ||
| + | tunefs: trim: (-t) | ||
| + | tunefs: maximum blocks per file in a cylinder group: (-e) 4096 | ||
| + | tunefs: average file size: (-f) 16384 | ||
| + | tunefs: average number of files in a directory: (-s) 64 | ||
| + | tunefs: minimum percentage of free space: (-m) 8% | ||
| + | tunefs: space to hold for metadata blocks: (-k) 6408 | ||
| + | tunefs: optimization preference: (-o) time | ||
| + | tunefs: volume label: (-L) | ||
| + | </ | ||
| + | - 最後に、Filesystemをmountし、fstabに記載する。 | ||
| + | ===== OSの更新(Update/ | ||
| + | * [[http:// | ||
| + | * '' | ||
| + | * 何か問題が出たら、'' | ||
| + | |||
| + | ===== rc関連の挙動 ===== | ||
| + | FreeBSDの起動時処理を大雑把に言うと以下のとおり | ||
| + | - initが上がる | ||
| + | - rcが実行される | ||
| + | - まず、rc.confに記載されている設定を基準に各種daemonを起動する | ||
| + | - 次に、rc.conf.localに記載されている設定を基準に各種daemonを起動する | ||
| + | |||
| + | 各種daemonの起動には、/ | ||
| + | 最近のFreeBSD (おそらくFreeBSD 9.0以降) では、このscriptを呼び出すために、service コマンドが実装されている。起動時のscriptの実行順序を確認するには、service -eを実行すると良い | ||
| + | |||
| + | このscriptは、自身が実行されるタイミングを記載することが可能。 | ||
| + | * ''# | ||
| + | * ''# | ||
| + | |||
| + | |||
| + | 従って、起動順序などを細かく考慮したい場合には、 | ||
| + | - とにかく早めに起動したい場合は/ | ||
| + | - 後の方で起動したい場合には、/ | ||
| + | - 起動順序はScript内のREQUIRE/ | ||
| + | 必要がある。 | ||
os/freebsd/memo.1715447275.txt.gz · 最終更新: (外部編集)
