はじめに
ドライバだったり、PCIeあたりの勉強をしたいと思ったのだが、今あるMini PCだとNICなどを挿せなくて不便だと感じていました。
そこで新しく破片パーツをかき集めて、自作PCを作ってみることにしました。
その際に、Linuxの導入方法として、Debian netinstという小容量のインストールイメージで必要なパッケージをネットワークから取得する方式で、Linuxを簡単にインストールする方法があるらしい、とChatGPTが教えてくれたので実践することにしました。
前提条件
環境
- CPU Arch : x86_64 (AMD Ryzen 5 7600)
- OS : Debian 13.5.0
- ネットワーク : WLAN経由(有線が良かったが、距離があり断念)
- イメージ作成環境 : Windows
著者のSpec
- Linuxは家でも仕事でも多少いじるくらいの人
- Ubuntu ISOのインストール経験あり
実践編
全体の流れ
- Debian netinst ISOのインストールメディア作成
- UEFI確認、USBからDebian Installerを起動
- 各種ツール導入
- IOMMUの設定関連
- 確認
1. Debian netinst ISOのインストールメディア作成
Debianの最新イメージはこちら
メディア作成には、公式のコメント通りUSBImagerを使います。Unetbootinは推奨されていないようです。
USBを挿して、USBImagerを起動すると、こんな物が出てきます。

上に書き込みたいイメージ、下にUSBを選択して、書き込みを押すだけです。簡単。
補足 : イメージ書き込みについて
WindowsからUSBにイメージをコピーするだけでは、Linuxは起動しません。専用のUSB書き込みツールが必要です。
Linuxインストール時にはISO内のパーティションやBoot情報も含めて、ディスクイメージとして書く必要があります。単純なコピーではこれらの情報は書き込めません。
RufusやUSBImagerはファイル丸ごとイメージとして書き込めるツールです。
2. UEFIを確認し、USBからDebian Installer起動
まずはBIOS画面に入ります。
私が今回使うのはASRockのマザボなので、Delete or F2を連打します。(何もストレージを挿していない場合は自動的に遷移します)
ほとんど弄る必要はないですが、以下の設定を入れています。
- CSM : Disable
- Boot Mode : UEFI
- Secure Boot : Disable (IOMMU関連やドライバを開発したいなら無効化した。Secure bootを有効にしても動く)
- SATA Mode : AHCI (使うなら)
- IOMMU : Enabled (勉強用)
できたらBoot MenuでUSBを選択します。先程作成したUSBを挿していたら、選択画面に出てきます。だめなら再起動します。
成功すると、Debian Installerが出てきます。
選択は以下のようにしました。
- インストール:Install (Graphical InstallならGUIになる。今回はCLIでいじりたい)
- パーティション:すべての領域を使ってパーティションを作成を選択。今回は、LVM・暗号化は選択しなくてOKです。当然ですが、選択されたストレージのデータはすべて消えます。
- ソフトウェアセレクション:SSH Serverとstandard system utilitiesを選択。desktop environmentやGNOMEなどはGUI系のもののため不要です
- GRUB:自動でインストールされました。もし聞かれたら入れるようにしましょう
- インストール対象:適当に挿しているNVMeを選択します
- ネットワーク対象:私はWi-Fiを選択。LANがつながる人はそれでもOK
- rootのパスワード:メモしておきましょう。
- rootのパスワードを空欄にすると、rootログインが無効化され、最初のUserへsudo権限が付与されます。そうすれば、後に紹介するsudo導入手順も不要になります。
- ホストネーム:CLIの先頭に出てくる名前です。適当でOK
- ユーザー名:フルネームを要求されます。適当でOK
- ユーザーバスワード:好きなのでOK。メモしておきましょう
NVMeを挿し忘れていたら、全部戻ってインストールを中断しましょう。
3. ソフトウェアのインストール
既存SWの更新
まず更新です
sudo apt update
sudo apt full-upgrade
sudo reboot
sudoが使えない場合は、1度rootユーザーになって、sudoコマンドをインストールし権限を自分に渡します。
su -
apt update
apt install sudo
usermod -aG sudo <username>
reboot
こんなNoticeが出てきました。
Notice: Repository 'http://ftp.riken.jp/Linux/debian/debian trixie InRelease' changed its 'Version' value from '13.5' to '13.6'
これは13.5 --> 13.6 への更新のお知らせです。
気にせず受け入れてしまいます。
sudo apt update --allow-releaseinfo-change
sudo apt full-upgrade
sudo reboot
必要なアプリのインストール
まずは基本セットとして以下を入れます。
sudo apt install -y \
build-essential \
git \
curl \
wget \
vim \
nano \
tmux \
htop \
tree \
unzip \
zip \
ca-certificates \
gnupg \
lsb-release \
man-db \
manpages \
manpages-dev
次にSSH認証周りです。
インストール時にSSH serverを選択していれば基本入っていますが、念のため。
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh
ついでにこちらも入れておきます。
sudo apt install -y avahi-daemon
ssh <username>@<hostname>.localで入れるようにする仕組みです。そのうち解説します。
個人的な趣味として、デバイス周りの調査用のアプリケーションも導入します。
PCI, Device調査用ツール
sudo apt install -y \
pciutils \
usbutils \
lshw \
hwinfo \
dmidecode \
ethtool \
iproute2 \
net-tools \
kmod \
psmisc
カーネルモジュールビルド用ツール
sudo apt install -y \
linux-headers-amd64 \
dkms \
make \
gcc \
gdb \
pkg-config \
bc \
bison \
flex \
libssl-dev \
libelf-dev
ストレージ系デバイスを調査するためのツール
sudo apt install -y \
nvme-cli \
smartmontools \
fio \
hdparm \
sg3-utils \
parted \
gdisk
デバッグ・トレース用ツール
sudo apt install -y \
trace-cmd \
bpftrace \
strace \
ltrace \
perf-tools-unstable \
linux-perf
4. IOMMUの有効化と確認
ここはあまり理解できていないまま実行しています。
IOMMUのグループを確認するように、色々追加する儀式です。
sudo vim /etc/default/grub
で以下の行を変える。
#before
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
#after
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
その後、
sudo update-grub
で再起動します。IOMMUの有効化はdmesgと/sys/kernel/iommu_groupsで確認ができる、とのお言葉ですが、あまり理解できていません。
これはおいおい勉強したいところです。
5. 確認作業
uname -a
ip addr
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL
lspci -tv
lspci -vvv
dmesg -T | less
ls /sys/bus/pci/devices/
とりあえず、これで自分のデバイスが確認できればOKです。
振り返り
今回はDebian netinstを使ってLinuxをインストールしてみました。
インストール自体は簡単でしたが、後で入れるツール群として何を入れるか、というのが個人の学習用途では悩ましい部分かなと思います。
今回はnetinstでインストールしましたが、PXEでのネットワークブートや、Arch Linux、Ubuntu Autoinstallなども試してみたいですね。