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.1715445501.txt.gz · 最終更新: 2024/05/12 01:40 (外部編集)