QEMU に Slackware をインストールする

最終更新: 2025-05-15 00:27:41 +0800 +0800
原文は英語で書かれています。あなたはAI翻訳版を読んでいます。

Slackware では、ミラーツリー、インストールメディア、パッケージシリーズ、テキストモードインストーラーが直接対応しています。この構造を理解すると、パッケージの選択やインストール時の問題診断に役立ちます。以下の例では、UEFI QEMU 仮想マシンに Slackware64 15.0 をインストールします。

Slackware のリソースとミラーツリー #

主なプロジェクトリソースは次のとおりです。

ミラーのルートには、過去のリリース、安定版リリースのエイリアス、開発ツリー、ISO イメージ、サポート対象外の追加物が含まれます。

text
slackware/
├── slackware-15.0/          # 32-bit x86 release
├── slackware/               # current stable 32-bit release
├── slackware-current/       # development branch
├── slackware64-15.0/        # 64-bit x86 release
├── slackware64/             # current stable 64-bit release
├── slackware64-current/     # 64-bit development branch
├── slackware-iso/           # release ISO images and verification files
├── slackware-pre-1.0-beta/  # early historical material
└── unsupported/             # contributed boot media, packages, and add-ons

slackware-current と slackware64-current は開発ブランチであり、最新安定版のエイリアスではありません。バージョン系列は 4.0 から 7.0 に飛んでいます。プロジェクトがバージョン番号を当時のディストリビューションに合わせた際、5 と 6 はスキップされました。

リリースディレクトリは、インストール可能なリポジトリでもあります。たとえば Slackware64 15.0 には次のものが含まれます。

text
slackware64-15.0/
├── ChangeLog.txt
├── CHECKSUMS.md5
├── CHECKSUMS.md5.asc
├── FILELIST.TXT
├── GPG-KEY
├── PACKAGES.TXT
├── README_UEFI.TXT
├── Slackware-HOWTO
├── EFI/
├── extra/
├── isolinux/
├── kernels/
├── patches/
├── slackware64/
├── source/
├── testing/
└── usb-and-pxe-installers/

slackware64/ にはリリースのパッケージシリーズが含まれます。patches/ には安定版向けのセキュリティおよび正確性に関する更新が置かれ、source/ には対応するビルド素材が含まれます。PACKAGES.TXT はパッケージを説明し、FILELIST.TXT はツリー全体を一覧します。

ブートメディア #

Slackware は当初、ディストリビューション全体のダウンロードが現実的でなかったため、パッケージをフロッピーディスクサイズのディスクセットに分割していました。フロッピーからのインストールは現在サポートされていませんが、パッケージシリーズの構成は残っています。

Slackware64 15.0 の ISO ディレクトリには、slackware64-15.0-install-dvd.iso と、MD5 ファイル、分離署名、ISO マニフェストを含むテキストファイルがあります。インストール DVD にはバイナリパッケージツリーが含まれますが、イメージを単層 DVD メディアに収めるため、ソースツリーは含まれていません。HTTP、FTP、NFS、PXE、または手動でマウントしたインストールソースには、ミラーツリーも使用できます。

インストーラー ISO は BIOS と UEFI のブートデータを持つハイブリッドメディアです。QEMU は ISO を仮想 CD-ROM として直接接続できるため、物理メディアに書き込む必要はありません。

同じリリースディレクトリからイメージと署名をダウンロードし、プロジェクトの GPG-KEY をインポートして、起動前に署名を検証します。

sh
curl -O https://mirrors.slackware.com/slackware/slackware-iso/slackware64-15.0-iso/slackware64-15.0-install-dvd.iso
curl -O https://mirrors.slackware.com/slackware/slackware-iso/slackware64-15.0-iso/slackware64-15.0-install-dvd.iso.asc
curl -O https://mirrors.slackware.com/slackware/slackware64-15.0/GPG-KEY

gpg --import GPG-KEY
gpg --verify slackware64-15.0-install-dvd.iso.asc \
  slackware64-15.0-install-dvd.iso

パッケージシリーズ #

Slackware64 15.0 では、バイナリパッケージを次のシリーズに分けています。

SeriesContents
a基本システム。このシリーズはインストーラーに必要
apコンソールアプリケーションおよびその他の非 X プログラム
dコンパイラー、デバッガー、インタープリター、開発ツール
eGNU Emacs
fFAQ、HOWTO、その他のドキュメント
kLinux カーネルソース
kdeKDE Plasma とそのアプリケーション
l共有ライブラリおよびサポートソフトウェア
nネットワークプログラムおよびサービス
tTeX 組版ソフトウェア
tclTcl、Tk、および関連ツール
xX Window System
xapデスクトップシリーズに含まれないグラフィカルアプリケーション
xfceXfce デスクトップ環境
yテキストモードの BSD ゲーム

シリーズはカテゴリであり、依存関係が独立して解決されるグループではありません。たとえば Slackware64 15.0 では Vim が ap に、Vim の共有ライブラリの 1 つである libsodium が l に配置されています。そのため、カテゴリ単位でシリーズ全体を削除すると、別のシリーズに残したプログラムが壊れる可能性があります。

Slackware64 15.0 HOWTO では、全シリーズに約 16 GB が必要と計算されています。32 GiB の仮想ディスクなら、インストール済みシステム、パッケージ更新、ログ、作業データのための余裕が残ります。ディスク容量に余裕がある場合、完全インストールが最も問題の少ない選択です。

仮想マシンの作成 #

ホストのパッケージマネージャーを使用して QEMU と OVMF をインストールします。OVMF パッケージのパスはディストリビューションによって異なるため、以下のコマンドを実行する前にコードイメージと変数ストアイメージの場所を確認してください。QEMU がパッケージに含まれるテンプレートを変更せずに UEFI 変数を書き込めるよう、変数ストアのテンプレートをコピーします。

sh
qemu-img create -f qcow2 slackware64-15.0.qcow2 32G
cp /usr/share/OVMF/OVMF_VARS.fd ./OVMF_VARS.fd

qemu-system-x86_64 \
  -machine q35 \
  -m 4G \
  -smp 4 \
  -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
  -drive if=pflash,format=raw,file=OVMF_VARS.fd \
  -drive file=slackware64-15.0.qcow2,format=qcow2,if=virtio \
  -drive file=slackware64-15.0-install-dvd.iso,media=cdrom,readonly=on \
  -nic user,model=virtio-net-pci \
  -boot order=d

virtio ディスクは /dev/vda として認識され、仮想 CD-ROM は通常 /dev/sr0 として認識されます。両方の pflash ドライブを省略すると、QEMU はデフォルトの従来型 BIOS で起動します。その場合、BIOS インストールでは ELILO ではなく LILO が使用されます。

仮想ディスクのパーティション分割 #

デフォルトのインストーラーカーネルを受け入れ、必要に応じてキーボードマップを選択し、パスワードなしで root としてログインします。パーティションテーブルを変更する前にデバイスを確認します。

sh
lsblk
cgdisk /dev/vda

次のパーティションを持つ GPT を作成します。

PartitionSizeGPT typePurpose
/dev/vda1512 MiBEF00EFI System Partition
/dev/vda24 GiB8200Swap
/dev/vda3Remaining space8300Linux root filesystem

テーブルを書き込み、cgdisk を終了します。インストーラーは後の手順で swap パーティションと root パーティションをフォーマットします。Setup は EFI System Partition も検出し、必要に応じて FAT としてフォーマットし、/boot/efi にマウントします。

Setup の実行 #

インストーラーを起動します。

sh
setup

標準的なインストールでは、Setup メニューを次の順序で進めます。

  1. KEYMAP:デフォルトの US レイアウトで問題なければ省略できます。
  2. ADDSWAP:/dev/vda2 を検出し、swap としてフォーマットして有効化し、将来の /etc/fstab に追加します。
  3. TARGET:/dev/vda3 を / として選択し、フォーマットします。この仮想マシンでは ext4 が適切なデフォルトです。
  4. SOURCE:Install from a Slackware CD or DVD を選択し、メディアをスキャンします。接続した ISO は /dev/sr0 として検出されるはずです。
  5. SELECT:パッケージシリーズを選択します。a は残し、完全インストールでは全シリーズを選択します。依存関係への影響を把握しているセットだけを削除してください。
  6. INSTALL:パッケージ確認モードを選択し、選択したパッケージをコピーします。
  7. CONFIGURE:カーネルをインストールし、ブートローダー、ネットワーク、サービス、コンソール、時計、タイムゾーン、root パスワードを設定します。

インストールモードは依存関係の解決ではなく、確認方法を制御します。

ModeBehavior
full選択した各シリーズの全パッケージをインストール
terse1 行の進捗表示で full と同じインストールを実行
menu or expertシリーズごとのパッケージチェックリストを表示
newbie必須としてマークされていない各パッケージを確認
custom or tagpath管理者が指定した tagfile を適用

full または terse を使用すると、シリーズ間の依存関係による取りこぼしを避けられます。複数のマシンで同じパッケージ選択を再現する場合は、tagfile が役立ちます。

パッケージのインストール中に Alt+F2 を押すと、別のインストーラーコンソールが開きます。そこで df -hT などのコマンドを実行して、対象ファイルシステムを監視できます。Alt+F1 で Setup に戻ります。マウントされたインストールツリーは、2 番目のコンソールから、通常は /mnt/cdrom の下で確認できます。

UEFI ブートの設定 #

仮想マシンは OVMF を通じてインストーラーを起動したため、Setup は UEFI インストールを検出します。プロンプトが表示されたら LILO をスキップして ELILO をインストールし、Setup に Slackware のファームウェアエントリを作成させます。ELILO はファイルを /boot/efi/EFI/Slackware の下に配置します。

残りの設定画面を完了し、root パスワードを設定します。Setup を終了し、ゲストをシャットダウンして、QEMU コマンドから ISO ドライブを削除し、ディスクを先にして仮想マシンを起動します。

sh
qemu-system-x86_64 \
  -machine q35 \
  -m 4G \
  -smp 4 \
  -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
  -drive if=pflash,format=raw,file=OVMF_VARS.fd \
  -drive file=slackware64-15.0.qcow2,format=qcow2,if=virtio \
  -nic user,model=virtio-net-pci \
  -boot order=c

初回起動後、/etc/slackpkg/mirrors でリポジトリを 1 つ選択し、安定版リリースのパッチを適用します。

sh
slackpkg update gpg
slackpkg update
slackpkg upgrade-all

インストール後の検証 #

adduser で非特権アカウントを作成し、ローカルポリシーで必要とされる管理グループへのアクセスだけを付与します。ls -l /etc/rc.d/ で有効な起動スクリプトを確認します。Slackware は対応するスクリプトが実行可能な場合にサービスを起動するため、使用しないサービスを無効化するには、パッケージ済みファイルを削除せず実行権限を外します。

ディスクイメージを再利用可能なベースとして扱う前に、インストール済みのブート状態とネットワーク状態を確認します。

sh
findmnt /
swapon --show
ip address
ip route
efibootmgr --verbose
uname -a

efibootmgr は UEFI 変数へのアクセスを必要とするため、ゲストが書き込み可能な変数ストアを使用して OVMF 経由で起動した場合にのみ、有用なデータを報告します。qcow2 イメージをコピーまたはスナップショットする前に、ゲストを正常にシャットダウンしてください。

コメント

GitHub で閲覧・コメントする(投稿にはログインが必要です)