X220実用化計画(Arch Linuxインストール編)
先日、ThinkPad X220を中古で手に入れました。
ノートPCが足りていないわけではないので完全におもちゃです。
昔はLet's noteをおもちゃにしていたのですが、HDDが2年前にご臨終なさったので、購入に至りました。
ポイントは7段キーボードを搭載しているところですね。
なんとなくスケベだったので欲しくなりました。
それで調べたところ、ラスト7段キーボード機種はX220だったのでこれを買ったというわけですね。
実際に押してみてもスケベな押し心地、スケベな使用感ですよ。
今のThinkPadのキーボードも悪くないけど、むしろ他のノートPCと比べると良いけれど、比較するとやはりX220に軍配が上がりますね。
というわけでX220をおもちゃ兼実用的なマシンにしたいのですが、現在CPUは第2世代i5、RAMは4GBとWindows 10を動かすにはちょっと不満の残る構成です。
Windows 7かXPなら文句なしだったのですが、サポートが終わりやがりましたのでダメです。
しょうがないのでLinuxを入れましょう。
まあ、そもそもWindowsマシンなんかこれ以上増えてもなんにもならないので丁度いいですね。
今回入れるのはArch Linux。
Arch Linuxは私のような初心者向きで、なおかつ半分くらい実験機みたいなPCに入れるのには最も適していると言っても過言ではないでしょう。
しかしながら私のような無能は、何度Arch Linuxをインストールしてもインストール方法を覚えません。
何度も同じところでミスをし、何度も最初からやり直し、挙げ句よくわからないけど弄ってたらインストールが終わっているのが常です。
そんな無能世界選手権日本代表の私のために、インストール手順をここに残しておこうと思います。
基本はArchWikiのインストールガイドを参照しています。
というかほぼ丸パクなので、まあ流し見する程度のものだと思ってください。
まずはインストールにつかうLiveディスクを作ります。
今回はUSBメモリにLiveイメージをぶち込みましょう。
光学ドライブ狂信者の方はDVDにでも焼いておいてください。
必要なのはLinuxの入ったPCと、Arch Linuxの公式サイトから落としたISOファイルですね。
本当はLinuxじゃなくてWindowsでも良いんだけれど、なんかよくわからない問題が起きたり起きなかったりすると聞かなくもないので、黙ってLinuxを使います。
USBメモリをPCにぶち込んで、lsblk
か何かでUSBの場所だかなんだかを確認してください。
まあ大抵が/dev/sdb
でしょう。
ついでにこのとき、USBメモリがマウントされていないことも確認しましょう。
マウントしてるとなんか良くないらしいです(白目)
そして確認したら以下のコマンドをぶち込んでください。
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync
おお…簡単にシンタックスハイライトできてる…
このためだけにLivedoorから逃げてきたんだ(白目)
markdown記法を使う必要があったが許してやろう。
ちなみに/path/to/archlinux.iso
の部分は自分がダウンロードしてきたISOファイルのパスを、/dev/sdx
の部分は自分が挿したUSBメモリのアレに置き換えましょう。
これで完璧ですね、あとは待つだけです。
問題は何をやってるのかさっぱりわからないことですね。
dd
って何してるんだろう…
sync
も何してるんだろう…
まあわからないのでUSBメモリに書き込みが終わるまで待ったら引き抜きましょう。
考えてもわからないことは仕方ありません。
どうせこれから先、どれだけ生きていってもあと十数回しか使わないでしょう。
脳死でArchWikiのコマンドをコピペですよ。
さて、次に行きましょう。
次はこのUSBをパソコンにぶち込んでブートさせます。
大体F12押せばブートメニュー的なのが開くので、そこでUSBメモリを選択すればLive版Arch Linuxが起動する…はずです。
僕は失敗したことがないので知りませんが、たまに失敗する人たちがいます。
大抵がWindowsでLiveイメージを書き込んだ愚か者です。
僕の友人もそうでした。
賢い我々はやはりLinuxでdd
です。
というわけでここまでで起動できましたね?
もしも未来の僕がここで躓いたら、諦めてください。
起きたことのない事例に対処するのは不可能です。
じゃあ次に行きますか。
ここからちょっとめんどくさいです。
なにせCLIでの作業ですからね。
頼れるGUIはもういません。
とりあえず最低限インストールする前の準備をしましょう。
まずキーボードの設定をしましょう。
僕は日本語キーボード狂信者なので、X220も当然日本語キーボードです。
というわけで日本語キーボードの設定をロードします。
# loadkeys jp106
この次はArchWikiだと、「起動モードの確認」になっているのですが…
まあUEFIモードで起動してるはずなので無視です。
本当はブートローダーが何だったかで判断できる気がしないでもないのですが、ちょっと怪しい記憶なので忘れましょう。
次にインターネットに接続します。
インターネットに繋がないことにはインストールができません。
ついでにいうと、SSHでデスクトップPCから繋いで作業したいので早くインターネットに繋ぎましょう。
普通だったら有線で繋いでやるだけですべてが解決するのですが、我が家のルーターは地平線の彼方に存在します。
LANケーブルも短小野郎しかないので諦めて無線接続です。
無線接続めんどくせえんだけどなぁ…
とりあえずwifi-menu
とシェルにぶち込むのですが…
zsh: command not found: wifi-menu
は?
どうして???
お前いつもこうやって動いてたじゃねえか。
調べたらちょっと前に削除されたらしいですね、うんち。
代わりにiwctl
というコマンドを打てとのことです。
しょうがねえなぁ…
# iwctl
打つと対話型プロンプトが立ち上がります。
fdisk
系とかparted
とかでも対話型プロンプトがありますが、どうも苦手意識があります。
ただまあArchWiki様がやれとおっしゃっているので従いましょう。
まずはデバイスの名前を調べましょう。
大抵がwlan0
なので、当てずっぽうで使っても良いのですが一応です。
[iwd]# device list
はい、wlan0
でした。
じゃあ次に周りのアクセスポイントを検索しましょう。
[iwd]# station wlan0 get-networks
なんかたくさんのアクセスポイントが出てきました。
スケベですね。
とりあえず今回接続するアクセスポイントをochinchinland
としておきましょう。
ここに接続するには以下のコマンドを打てば良いようです。
[iwd]# station wlan0 connect ochinchinland
はい、これでPCはアクセスポイントちゃんとズブズブの関係です。
エッチですね。
Super Special Hなので、SSHで接続する準備をしましょう。
opensshデーモンを動かすために以下のコマンドを打ちます。
# systemctl start sshd
ついでにパスワードも設定します。
# passwd
あとはデスクトップPCの方で
$ ssh root@archiso
と打てば完璧です。
これでノートPCから手を離すことができます。
充電コードがブラブラしてるPCを狭い机の上に置いていると邪魔くせえのでこれで快適です。
あとはシステムクロックを更新しましょうか。
# timedatectl set-ntp true
なんの意味があるかは分かりませんが、まあ時刻があっていないとうまく動かないソフトとかよくあるのでそういうことでしょう(適当)
さあここからが本番ですよ。
次はHDD…ではなくSSDですね
普段はUbuntuのLiveイメージかManjaroのLiveイメージかWindowsで先に分けちゃうのですが、そんな事を言っていてはいつまで経ってもCLIに慣れません。
諦めてgdisk
を使いましょう。
というわけでシェルにgdisk /dev/sda
と入力したのですが、なんだかエラーが返ってきました。
要は「MBRだからGPTに変えてこいカス」ということらしいです。
中古で買ったこのPCには腐れWindowsくんが入っていたんですね。
どうやら入れた野郎はMBRがお好きだったようです。
うんち野郎め。
ただそこはさすがのArchWiki先生。
fdisk
の項目に変換方法をしっかり書いてくれています(gdisk
もfdisk
の項目に書いています)。
# sgdisk -g /dev/sda
これでいいらしいです。
じゃあ元気にパーティション分けをしていきましょう(白目)
# gdisk /dev/sda
これで対話型プロンプトがまた立ち上がりやがります。
全消去したいので、最小に入力するのはo
です。
その後は作りたいパーティションを好きなように作っていきます。
新しいパーティションを作るコマンドはn
なので、入力しましょう。
First sectorは未入力でEnterを押しちゃいましょう。
First sectorに関してはこれから先ずっとそれでいいです。
Last sectorはサイズを入力しても勝手にうまいことやってくれるので、簡単のためにサイズの方で入力しましょう。
ArchWikiによると「最低 260 MiB」らしいのですが、そのまま 260 MiBにするのはちょっと怖いので、512 MiBにしておきましょうか。
512M
と入力してEnterです。
Hex cord or GUIDはef00
と入力すればいいそうです。
よくわからないけどそれでいいでしょう。
この次に作るのはSWAP領域です。
要らないという人もいますが、絶対に要ります(鋼の意志)
大きさは「RAMの2倍!」と習いましたが、このX220は16GBまでRAM増設を行う予定です。
そうなるとSWAP領域を32GBも取る必要があるんですね。
「そんなバカな話があるか、今は4GBだし8GBくらいで十分やろ!」
と思ったんですけど、よく考えたら8GBも必要になるわけもない気がしてきました。
ただまあ一応8GBで作りますか。
気に食わなかったら後でGPartedで小さくしてやりますよ。
(今気づいたのですが、GiBとGBをごっちゃにしてますね。まあ大勢に影響はないので良いでしょう)
n
を入力して、Last sectorには8Gと入力しましょう。
Hex cord or GUIDは8200
と入力すればいいそうです。
わけが分かりませんがそうします。
そして最後にルートパーティションです。
これはもう簡単です。
僕は何も考えていないので残り容量を全部ここに回せばいいと思っています。
というわけでn
を押したらEnterを3回押して終わりです。
そしてそのあとはw
を押して書き込んだらゲームセット。
パーティション分けの成功です。
お疲れさまでした。
Arch Linuxインストール1つ目の山場は抜けましたね。
次はさっきの続きっぽいですが、パーティションのフォーマットです。
と言っても今回はデュアルブートでもないし、何ならさっきSSD内のデータは全てぶっ飛ばしたので、大した作業ではありません。
まずはEFIシステムパーティションをFAT32でフォーマットします。
FAT32じゃないと動作しないみたいですが、理由はよく分かりません。
# mkfs.fat -F32 /dev/sda1
この次はSWAP領域のフォーマットです。
Ext2でフォーマットしろとずっと習ってきましたが、欠片も理由が分かりません。
なんならこっちに至っては他のファイルシステムにしても動くのかどうかすら知りません。
というふうに記憶していたのですが、どうやらmkswap
コマンド1発で作ることができるらしいです。
そうだっけ(痴呆)
まあどっちにしてもやってることが何なのかは理解していないので同じです(白目)
# mkswap /dev/sda2
あとはルートパーティションだけですね。
こっちはExt4でフォーマットしましょう。
Ext3でもいいらしい(?)のですが、まあ4のほうが新しいらしいしどう考えても4でしょう。
新しいと言っても、僕がLinuxを触ったときには、もうExt4が主流だったので不安定ということもないでしょう。
本当はもっと新しいファイルシステムにしても良かったのですが、ちょっと怖いのでここは日和っておきましょう。
# mkfs.ext4 /dev/sda3
これでフォーマット作業は完璧です。
正直パーティション分けに比べたら、これから先の作業は基本ずっと余裕ですからね。
こんなもんでしょう。
正直ここまでは別のディストリビューションのLiveイメージでもできる作業です。
(だからこそ無理してパーティション分けをArchのLiveでやりたくないんだけど)
ただここからはそうではないので、多分ここからが本当の意味でのインストール作業でしょう。
そうは言っても楽ちんです。
まずは今まで作ったパーティションをマウントしていきましょう。
とりあえずまるで必要のないSWAP領域からマウントしていきましょうか。
1つだけちょっとコマンドが違いますしね。
# swapon /dev/sda2
じゃあ次にルートパーティションですね。
# mount /dev/sda3 /mnt
そしてルートパーティションのマウントです。
これは1つ、作らなきゃいけないディレクトリがあるのでそれも込みでコマンドを打ちましょう。
あと作らなきゃいけないディレクトリ(マウントするディレクトリと同じだけど)が/dev/sda3
の中なので、絶対にルートパーティションをマウントしてからやりましょう。
# mkdir /mnt/boot # mount /dev/sda1
次が一番重要な気がしなくもない作業です。
というかもろインストール作業です。
ただ簡単なので楽ちんちんですね。
次のコマンドを打つだけです。
# pacstrap /mnt base linux linux-firmware
ちなみに僕はzenカーネルを使ってみたかったのでlinux
をlinux-zen
にしています。
おすすめはlinux
かlinux-lts
です。
linux-lts
は安定しているからね…
まあ安定を求めている人間がArch Linuxを使うのかは分かりませんが。
そしてfstabの生成です…が、これは本当になんだかわかりません。
多分SSDの番号か何かを使って、マウントポイントをずれないようにしたりするやつだった気がしますが、怪しい記憶なので忘れましょう。
とりあえず次のコマンドを打っておけば死にません。
# genfstab -U /mnt >> /mnt/etc/fstab
-U
オプションってなんなんでしょうね。
それ以外もわからないからいいや。
ここからは自分がインストールした環境での作業になります。
擬似的に(?)自分の今インストールした環境をルートディレクトリとして動作させるコマンドを打ちましょう。
(死ぬ程適当なことを言っているのでまちがっていたらごめんなさい)
# arch-chroot /mnt
これでうまくいけばシェルがZsh
からBash
になって、設定も空なので貧相な状態になります。
それじゃあ最低限度の初期設定をしていきましょう。
ArchWikiに沿ってタイムゾーンの設定からにしましょうか。
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # hwclock --systohc
hwclock
も何してるかわからんな…
まあええやろ。
ローカリゼーションも同じ流れで行きましょう。
ローカリゼーションでは、最初に/etc/locale.gen
の中身を弄るのですが、テキストエディタが必要です。
最初何入ってるんだったけな…
大体デフォルトでは不親切なクソエディタvi
かvim
が入ってるんですよね。
許せねえ…
nano
が入ってたらnano
でも良いのですが、もうめんどくさいので普段使うエディタを入れちゃいましょう。
それじゃあemacs
のインストールを…と言いたいのですが、僕は先日クソエディタであるvim
に魂を売ったので、neovim
をインストールしましょう。
理由としてはvi
はvim
系統とちょっと違うので使いたくないというのが1つ。
vim
はgvim
のおまけとして入れたほうが都合がいいのでそうしたいけれど、GUI系のパッケージは後で入れたいと言うのが1つ。
そして、普段はneovim
を使っているというのが1つですね。
まあとにかく入れたりましょう。
# pacman -S neovim
そして/etc/locale.gen
の中身を弄りましょう。
必要なのはen_US.UTF-8 UTF-8
とja_JP.UTF-8 UTF-8
のアンコメントです。
# nvim /etc/locale.gen
そしてアンコメントしたら、あとはローカリゼーション本番です。
次のコマンドを打ちましょう。
# locale-gen
ついでに2つおまじないをしておきましょう。
# echo Lang=ja_JP.UTF-8 > /etc/locale.conf # echo KEYMAP=jp106 > /etc/vconsole.conf
本当はja_JP.UTF-8
の部分をen_US.UTF-8
にしたほうが(フォントとかの関係で)しばらくは都合がいいのですが、後で変え直すのも面倒なので、最初からこっちでいいでしょう。
この後はネットワーク設定らしいですね。
ここはわかりやすそうのですが、正直良くわかっていないのでうんちです。
まずはこのPCにホストネームを付けましょう。
# echo Arch-X220 > /etc/hostname
Arch-X220
の部分は適宜好きなホストネームに変えてください。
あとは似たようなことを/etc/hosts
にも書きましょう。
127.0.0.1 localhost ::1 localhost 127.0.1.1 Arch-X220.localdomain Arch-X220
この3行目がよくわからん()
これであっているのかもわからん。
とりあえず大勢に影響はないはずなのでこれでいきましょう(諦め)
次はパーフェクトなおまじないです。
何がパーフェクトかというと、何をやっているか1つも分からないというところですね。
信じられないくらい意味不明ですが以下のコマンドを打ちましょう。
# mkinitcpio -P
あとはRootのパスワードを設定しましょう。
# passwd
さて、長かったインストール作業もこれで終了です。
最終作業のブートローダーのインストールと設定です。
そして僕はこの作業が1番嫌いです。
大体インストール失敗の原因はここにあります。
とりあえずブートローダーとその他のパッケージもついでに入れましょう。
# pacman -S grub efibootmgr dhcpcd iwd git intel-ucode bash-completion zsh zsh-completions
Zsh系列とgit
とbash-completion
は入れなくてもいいですが他は必要です。
grub
とefibootmgr
はブートローダー系のアレで必要だし、dhcpcd
とiwd
は再起動したときに、速やかにネットに繋ぐために必要です。
とりあえず入れておきましょう。
そして入れたらいよいよ本番、ブートローダーのインストールです。
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch_grub
Arch_grub
の部分は好きな名前にしましょう。
これでうまくいくはずです。
これでダメなら諦めましょう。
今回はうまくいったので僕は寝ます。
おやすみなさい。