FreeBSD入門シリーズ
| Part1 導入 | Part2 pkg/ports | Part3 jail | Part4 ZFS | Part5 bhyve |
|---|---|---|---|---|
| 👈 Now | - | - | - | - |
はじめに
Linuxばっかり使ってると、なんか飽きてこない?
Ubuntu、Arch、Debian、Fedora...全部試したけど、結局カーネルは同じLinux。
「もっと違う世界を見てみたい」
そう思ってFreeBSDに手を出してみた。
FreeBSDとは
FreeBSDは1993年に生まれたUNIX系OS。Linuxより古い。
BSD系譜
┌────────────────────────────────────────┐
│ 1969 UNIX (AT&T Bell Labs) │
│ ↓ │
│ 1977 BSD (Berkeley) │
│ ↓ │
│ 1993 FreeBSD / NetBSD │
│ ↓ │
│ 1995 OpenBSD (NetBSDから分岐) │
│ ↓ │
│ 2000 macOS (FreeBSDベース) │
└────────────────────────────────────────┘
LinuxとFreeBSDの違い
| 項目 | Linux | FreeBSD |
|---|---|---|
| カーネル | Linux | FreeBSD |
| ライセンス | GPL | BSD |
| パッケージ管理 | apt/yum/pacman等 | pkg/ports |
| init | systemd等 | rc.d |
| コンテナ | Docker/LXC | jail |
| ファイルシステム | ext4/btrfs/XFS | UFS/ZFS |
| 仮想化 | KVM/QEMU | bhyve |
特に大きな違いは:
- BSDライセンス: GPLより自由。商用利用しやすい
- ベースシステム: カーネルとユーザーランドが一体で開発される
- jail: Dockerより前からあるコンテナ技術
- ZFS: 最強のファイルシステムが標準搭載
インストール
ISOダウンロード
# FreeBSD 14.2-RELEASE (執筆時点の安定版)
wget https://download.freebsd.org/releases/amd64/amd64/ISO-IMAGES/14.2/FreeBSD-14.2-RELEASE-amd64-disc1.iso
VirtualBoxで試す場合
メモリ: 2GB以上
ストレージ: 20GB以上
ネットワーク: ブリッジアダプター
インストーラー
FreeBSDのインストーラーはbsdinstall。テキストベースだけど直感的。
┌──────────────────────────────────────────────────────────────┐
│ Welcome to FreeBSD! │
│ │
│ To begin an installation, press I. │
│ To boot the FreeBSD live system, press L. │
│ To boot into FreeBSD live CD with a shell, press S. │
│ │
│ To select a country keyboard layout, press K. │
│ │
│ Autoboot in 10 seconds. Press any key to interrupt... │
└──────────────────────────────────────────────────────────────┘
キーボード設定
Keymap Selection
┌────────────────────────────────────────┐
│ >>> Continue with default keymap │
│ Test default keymap │
│ Select keymap from list │
└────────────────────────────────────────┘
日本語キーボードなら「Select keymap from list」→「Japanese 106」を選択。
ホスト名設定
Set Hostname
┌────────────────────────────────────────┐
│ Please choose a hostname for this │
│ machine. │
│ │
│ Hostname: freebsd-test │
└────────────────────────────────────────┘
パーティション
Partitioning
┌────────────────────────────────────────┐
│ Auto (ZFS) - Guided Root-on-ZFS │
│ Auto (UFS) - Guided UFS │
│ Manual - Manual Disk Setup │
│ Shell - Open a shell │
└────────────────────────────────────────┘
ZFSを強く推奨。FreeBSD使うなら絶対ZFS。
ネットワーク設定
Network Configuration
┌────────────────────────────────────────┐
│ em0: Intel(R) PRO/1000 Network │
│ │
│ Would you like to configure IPv4? │
│ [ Yes ] [ No ] │
└────────────────────────────────────────┘
DHCPでOK。
初期設定
rootでログイン
FreeBSD/amd64 (freebsd-test) (ttyv0)
login: root
Password: (インストール時に設定したパスワード)
ユーザー追加
# wheelグループに追加(sudo的な権限)
adduser
Username: aqua
Full name: Aqua
Uid (Leave empty for default):
Login group [aqua]:
Login group is aqua. Invite aqua into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: tcsh
Home directory [/home/aqua]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
sudoのインストール
FreeBSDにはデフォルトでsudoが入っていない。
pkg install sudo
初回はpkgのブートストラップを聞かれる:
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
sudoersの設定:
visudo
# %wheel ALL=(ALL) ALL
↓
%wheel ALL=(ALL) ALL # コメントを外す
SSHの有効化
# /etc/rc.confに追加
sysrc sshd_enable="YES"
# 起動
service sshd start
sysrcはFreeBSD特有のコマンドで、/etc/rc.confを安全に編集できる。
ディレクトリ構成
FreeBSDのディレクトリ構成はLinuxと似てるけど、微妙に違う:
/
├── bin/ # 基本コマンド
├── sbin/ # システム管理コマンド
├── usr/
│ ├── bin/ # ユーザーコマンド
│ ├── sbin/ # システム管理コマンド
│ ├── local/ # サードパーティソフト (pkg/portsでインストールされる)
│ └── src/ # FreeBSDソースコード
├── etc/ # 設定ファイル
├── var/ # 可変データ
├── tmp/ # 一時ファイル
├── boot/ # ブートローダー
└── rescue/ # 緊急用コマンド
重要: /usr/local/がLinuxの/usr/に相当。pkgでインストールしたものはここに入る。
基本コマンドの違い
| やりたいこと | Linux | FreeBSD |
|---|---|---|
| サービス起動 | systemctl start xxx |
service xxx start |
| 自動起動設定 | systemctl enable xxx |
sysrc xxx_enable="YES" |
| パッケージ検索 | apt search xxx |
pkg search xxx |
| パッケージ更新 | apt update && apt upgrade |
pkg update && pkg upgrade |
| ネットワーク確認 | ip addr |
ifconfig |
| プロセス確認 | ps aux |
ps auxww |
システム情報の確認
# FreeBSDバージョン
freebsd-version
# 14.2-RELEASE
# カーネルバージョン
uname -a
# FreeBSD freebsd-test 14.2-RELEASE FreeBSD 14.2-RELEASE releng/14.2-n269506-c8918d6c7412 GENERIC amd64
# CPU情報
sysctl hw.model
# hw.model: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
# メモリ情報
sysctl hw.physmem
# hw.physmem: 8589934592
# ディスク使用量
df -h
まとめ
今回はFreeBSDのインストールと初期設定をやった。
感想:
- インストーラーがシンプルで分かりやすい
-
pkgがデフォルトで入ってないのは戸惑う -
sysrcコマンドが地味に便利 - ZFSが標準で使えるのは嬉しい
Linuxとの違いで一番戸惑うのは:
- systemdがない(rc.dを使う)
-
/usr/local/にサードパーティが入る -
aptじゃなくてpkg
でも基本的なUNIXコマンドは同じだから、そこまで困らない。
次回予告
Part2: pkg/ports、パッケージ管理が2種類ある謎
FreeBSDにはpkg(バイナリ)とports(ソース)という2つのパッケージ管理システムがある。なぜ2つあるのか、どう使い分けるのかを解説するよ。
この記事が役に立ったら、いいね・ストックしてもらえると嬉しいです!