Slackwareをインストールしてみた
Slackwareについて「硬派なLinuxディストリ」という程度のイメージしかもってなかったが、たまたまツイッターでSlackware関連のつぶやきを目にして興味本位でインストールしてみた。
インストール手順自体は簡単
SlackwareのインストールイメージにはTUIベースではあるもののインストーラーが用意されており、パーティショニングを除けばインストーラーの説明を詠みながらエンターを押していく作業になるためArch Linuxと比べるとかなり楽だ。
また、1ステップずつ書いてある通り真似ればいい丁寧なインストールガイドを記してる有志のホームページがググったらすぐ見つかるため、イメージとは裏腹にインストールの難易度はかなり低かった。このページの記載通りに進めれば、まず詰まることはないと思う。
Arch Wikiのインストールガイドも見習ってほしい。
トラブった箇所
ガイド通りやれば問題ないはずなのにガイド通りにやらなかったせいでトラブった箇所を残しておく。
ミニマムisoを選んでしまう
Slackware(Current)のインストールイメージは上記リンクからダウンロードできるが、見ての通り4.4GBのDVDイメージと200MB強のミニマムイメージがある。
「ネットワークインストールすればいいだろう」「最低限OSが立ち上がりさえすれば後からパッケージを入れればいいだろう」そう思ってミニマムのイメージをダウンロードしたが、これが誤算だった。
Slackwareのインストーラーには初期インストールするパッケージをどこから持ってくるか選ぶメニューがあるが、ミラーのアドレスは手動で打ち込まないといけないし、打ち込んでもDNSの設定が別途必要だ。そしてDNSの設定はインストーラー上では見つからず、いったんシェルにでなければならなかった。
その上、ミラーを設定してもすべてのパッケージがインストールできるわけではない。ミニマムインストール用のイメージだからか、インストールするパッケージ群の選択肢がミニマムしかない。
ここまでなら「後でインストールすればいい」で済むが、ミニマムインストーラーの最大の問題としてブートローダーの自動インストールがない。フルDVDイメージでのインストールだと既定の設定でブートローダーをインストールするメニューがあるがミニマムでは表示されなかった。私はブートローダーのことはよくわかってないので手動でインストールすることはできないし、ブートローダーがないとOSは起動できない。詰みである。
結局フルインストールDVDのイメージをダウンロードしなおした。
インストールするパッケージを選んでしまう
フルインストールのインストーラーで作業を進めてるとインストールするパッケージ群を選ぶ段階がある。1つ1つ個別で選ぶのではなく「開発用ツール」や「TeX関連」などのざっくりとしたくくりでグループ化されている。
Slackwareをインストールするパソコンはsshアクセスを基本にしたサーバーとして運用するつもりだったため、ここでGUI関連に見えるライブラリはすべてチェックを外してインストールしたが、それがよくなかった。
ブートローダー含めすべてのインストールが終わってOSを立ち上がるのを確認して喜びながらNetworkManger(※1)を起動させようとしたが、エラーになって立ち上がらない。どうやらインストール時にチェックを外したパッケージ群にNetworkManagerが依存してるパッケージがあるらしく、インストールUSBを刺していくつかのパッケージを追加で入れて(※2)何とか動かすことができた。
※1: ネットワーク設定関連のコマンドが一生覚えられないので、nmtuiという素晴らしいUIを提供してくれるNetworkManagerしか使いたくない
※2: Slackwareはインストール用のUSBからパッケージをインストールすることができる。すごい
しかし、ネットワーク設定ができたあとも再起動ができなかったり、足りないパッケージを全部インストールしようとワイルドカードでファイルを指定したら変な文字化けが起こったりとしたのでまたOSを消して入れなおすことにした。
余談だが、この件についてツイッターでぼやいたら上でリンクを貼ったサイトの管理人からアドバイスをもらったし、インストールガイドにも「全てのパッケージをインストールするように」という注意書きが2つになった。
トラブルと言うほどではない箇所
MBRのパーティショニング
上でリンクを貼ったインストールガイドでは、Slackwareインストールの最大の難関と思われるパーティショニングについてもステップバイステップで解説されており困ることはない、はずだったが、私のパソコンはMBRしか起動できず、ガイドにはGPTのパーティショニングについてしか解説がなかった。
詳しいことは私もよくわからないのでざっくり説明すると
UEFI: パソコンの新しいシステム
BIOS: パソコンの古いシステム
GPT: ストレージの新しいパーティションスタイル
MBR: ストレージの古いパーティションスタイル
である。私のパソコンのマザーボードはBIOSでMBRのブートにしか対応していない(多分)ので、ガイド通りにパーティショニングしても多分OSが立ち上がらない。
ここではArch Linuxをインストールした経験が活きて、リンク先の「4.2.2 BIOS/MBR の例」を参考にどうにかパーティションを切ることができた。
Arch Wikiのパーティションツールの記事で初心者にわかりやすいサンプルコマンドが親切に記載されているものをpartedしか把握してないためいつもpartedを使っているが(実に不親切である)、Slackwareのインストール環境にも幸いpartedが入っていて助かった。
参考までに、パーティション構成は以下の通りである。
/boot: 1MiB~100MiB
swap: 100MiB~4.1GiB
/: 4.1GiB~
ブートローダーのインストール場所
上でも書いたように、Slackwareのインストーラーはブートローダーのインストールもしてくれて、「standard」と「expert」で「standard」を選ぶと何もわからなくてもLILOというブートローダーを勝手にインストールしてくれる(インストールガイドはGPT準拠であるためLILOをスキップしてELILOをインストールしてるが、そっちも難しくはなさそう)。
ただ、ブートローダーをインストールする場所を間違えるとOSが起動しない。選択肢が3つあり、説明文では1か2が安全だと書いていた(気がする)が、選択肢3の「MBR」を選ばないと起動しなかった。MBRのパーティショニングなのでMBRでいい気がする。
インストールを終えて
親切なガイドがあるのに勝手なことをして遠回りをしてしまったが、無事Slackwareを動かすことができている。
何をするか特に考えてなかったので、これから考える。
追記
SlackwareをインストールしたパソコンのストレージをSSDに変えて再インストールをしようとしたらインストール中に電源が落ち続け、電源ボタンを連打しているうちにとうとう電源が入らなくなってしまった。
幸い使っていない古い中古PCは2台あったのでもう一台にインストールしようとしたところ、またいくつかトラブルが生じたので追記する。
インストールメディアが起動しない
インストールUSBを刺して電源を入れたら「OSが見つからない」と表示され再起動を繰り返す。いろいろと試した末原因が分かったが、Slackwareのインストール用isoはパーティションがMBRで、マザーボードの方はUEFI起動のみの状態になっていた。
マザーボードの起動モードをレガシーモードにすれば起動するのだが、その場合OSのインストールがGPTモードでできるかどうか確証が持てない(できるかもしれない)。
この問題の解決方法は簡単で、Windows用isoイメージ書き込みツールの代表格である「Rufus」を使えばパーティションテーブルをMBRとGPTで自由に選んでisoが書き込める。パソコンに不要なツールを極力インストールしない主義でいつもddコマンドで書き込みをしていたので知らなかった。
今時のマザーボードは自動的にUEFIとBIOS両方の起動モードを切り替えてくれると思うので、多分新し目のパソコンだとこういったトラブルは起こらないと思う。
ブートローダーが起動しない
GPTでisoを書き込んだUSBを使ったインストール作業はスムーズに進んだが、インストールした後パソコンを立ち上げるとまたOSが見つからないという。ChatGPTに聞くとEFIシステムパーティションの各種設定を確認しろというので、どうせ見てもわからないのになとぼやきながら確認したら、私にも気づけるレベルの異常が起こっていた。
インストールUSBを使ってEFIシステムパーティションを/mntにマウントしてlsで中身を見ようとすると、EFIディレクトリーが「input output error」を起こす。なぜ起こったのか、どうしたら治るのかは分からないがここが問題だとみて間違いないと思った。
ストレージの問題はとりあえずフォーマットしなおせば治るだろうとフォーマットを試みたがエラーを起こしてフォーマットできない。ファイルシステムチェックも通らない。SSDがおかしいのかと思ったけどSlackwareを入れる直前はArch Linuxが問題なく動いてたのでその可能性は低い。
どうしてもだめなら0書き込みでもするしかないと思いつつ、ダメ元でArch LinuxのインストールUSBを使ってフォーマットするとエラーも出ずあっさり通った。
念のためにルートパーティションもArch Linux上でフォーマットしてからUSBを差し替えてSlackwareを入れたら無事ブートローダー起動した。
SlackwareのインストールUSBと私のパソコンの相性が悪いのか、それとも何らかのトラブルで異常が生じていたファイルシステムが治ったからこれからはSlackwareのUSBでフォーマットしてもいいのか、確認のために一度SlackwareのインストールUSBで全プロセスを一度通しでやってみた方がいいとは思ったものの、さすがに疲れてきたので確認していない。
ルートパーティションのエラー
Arch LinuxでEFIシステムパーティションをフォーマットしてめでたくブートローダーが起動するようになったが次はルートパーティションでエラーが見つかったといってOSが起動途中で落ちてしまう。
ルートパーティションをArch Linuxでフォーマットした以外の理由がないので「EFIシステムパーティションはArch Linuxで」「ルートパーティションはSlackwareで」フォーマットしたら治った。
やっと起動
あれこれトラブルを経てやっとログイン画面にたどり着けた。ログイン画面を見れたことがこんなにうれしいのはArch Linuxのインストールに初めて成功したとき以来かもしれない。
何に使うかはまだ決まっていない。