0. はじめに
はじめまして。イノユウと申します。Qiitaの記事を書くのは初めてです。至らない点や間違ったことを書いてしまっているかもしれませんが、よろしくお願いします。
この記事は農工大アドベントカレンダー12/22の記事です。
1. 事の始まり
某おじい3がVimで遊んでいたり、某u○○○○○○○さんがゲーミングノートにArch Linuxを入れて遊んでいるのを見て、「俺もあれで遊びたいな〜」って思ったのがきっかけで、Arch Linuxに手を出してみました。
2. SSD購入&パーティション作成
今回Arch LinuxをインストールするにあたってSSDを新調しました。
ちっちゃい。
このサイズ感で500GBあるの普通にすごいなって思いました。
新品のSSDをPCに繋いだら、Arch Linuxのインストールメディアを差し込みます。
するとこんな感じのシェルが表示されます。
このままだとJP配列のキーボードが正しく認識されず、「_」や「~」が正しく入力できません。レイアウトをJP配列にするために、まずはじめに以下のコマンドを打ち込みます。
root@archiso~ # loadkeys jp106
これでJP配列のキーボードを正しく認識してくれます。
いよいよパーティションを作成します。まずはlsblk
コマンドで認識されているドライブ(パーティション)を確認します。
root@archiso~ # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1.8T 0 disk
├─sda1 8:1 0 579M 0 part
└─sda2 8:2 0 1.8T 0 part
(以下省略)
上の例では「sda」が物理的なドライブ、「sda1」「sda2」が「sda」内のパーティションになります。自身の用意したのドライブの容量と照らし合わせて、どのドライブがインストールしたいドライブか よく 確認してください。 間違えると最悪既存のドライブのデータが消えます。
ドライブ名を確認したら、以下のコマンドでパーティション設定を行います。以下では、ドライブの名称を「[Your Drive Name]」とします。
root@archiso~ # fdisk /dev/[Your Drive Name]
Command (m for help):
参考までに、私のパーティション構成を載せておきます。
パーティションカテゴリ | 容量 |
---|---|
UEFI Boot Partition | 1GB |
Root Partition | 456GB |
Swap Partition | 8GB |
UEFI Boot partitionは1GB、Swap Partitonはメモリ容量の半分、Root Partitionは余りって感じで割り当てました。以下では、上の構成を再現するために実行するコマンドを示します。
「n」を押下してUEFI用の新しいパーティションを作成します。
Command (m for help): n
Partition number (1-128, default 1): //何も入力せずEnter
First sector (***-***, default = ***) or {+-}size{KMGTP}:
Last sector (***-***, default = ***) or {+-}size{KMGTP}: 1G
Hex code or GUID (L to show codes, Enter = 8300): ef00
次に、システムパーティションを作成します。スワップパーティションの容量が関係してきます。
Command (m for help): n
Partition number (1-128, default 1): //何も入力せずEnter
First sector (***-***, default = ***) or {+-}size{KMGTP}: //何も入力せずEnter
Last sector (***-***, default = ***) or {+-}size{KMGTP}: -8G
Hex code or GUID (L to show codes, Enter = 8300): //何も入力せずEnter
最後にスワップパーティションを作成します。
Command (m for help): n
Partition number (1-128, default 1): //何も入力せずEnter
First sector (***-***, default = ***) or {+-}size{KMGTP}: //何も入力せずEnter
Last sector (***-***, default = ***) or {+-}size{KMGTP}: //何も入力せずEnter
Hex code or GUID (L to show codes, Enter = 8300): 8200
変更を反映します。
Command (m for help): w
ここで、出来上がったパーティションを確認しましょう。
root@archiso~ # lsblk
(略)
sdb 8:16 0 465.8G 0 disk
├─sdb1 8:17 0 1G 0 part /boot
├─sdb2 8:18 0 456.8G 0 part /
└─sdb3 8:19 0 8G 0 part [SWAP]
(略)
上で言う「sdb1」(右に/bootと書いてあるもの)がUEFIパーティション、「sdb2」(右に/と書いてあるもの)がルートパーティション、「sdb3」(右に[SWAP]と書いてあるもの)がスワップ用パーティションです。
作ったパーティションをフォーマットします。
//UEFI パーティションをフォーマット
root@archiso~ # mkfs.fat -F32 /dev/sdb1
//ルートパーティションをフォーマット
root@archiso~ # mkfs.ext4 /dev/sdb2
//スワップパーティションを有効化
root@archiso~ # swapon /dev/sdb3
これでパーティションが完成です。
3. ネットワーク設定
次に、無線LANの設定をします。このときの設定はあくまでインストールのための一時的なもので、インストール後は別で設定が必要になります。
まず、以下のコマンドでネットワークデバイスの一覧を確認します。
root@archiso~ # ip link
「wlan〜」とか「wlp〜」が無線LANデバイスです。ここで得られたデバイス名を後で使います。(今後「[Your Device Name]」と表現します。)
はじめのうちはこんな感じの出力になっていると思います。
root@archiso~ # ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether ***
altname ***
altname ***
+ 3: wlp3s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN mode DORMANT group default qlen 1000
link/ether ***
altname ***
stateがDOWNになっています。ネットワークに接続されていないということです。
無線LANの設定にはwpa_supplicant
を使います。以下の要領でwpa_supplicant-[Your Device name].conf
を作成します。
ctrl_interface=/run/wpa_supplicant
update_config=1
次に、この設定を読み込んでもらうために、以下のコマンドを実行します
root@archiso~ # wpa_supplicant -B -i [Your Device name] -c /etc/wpa_supplicnat/wpa_supplicant-[Your Device name].conf
これが終わったら、次にwpa_cli
を使ってwネットワークのSSIDやパスワードを設定します。
root@archiso~ # wpa_cli
wpa_cli v2.11-hostap_2_11+
Copyright (c) 2004-2024, Jouni Malinen <j@w1.fi> and contributors
This software may be distributed under the terms of the BSD license.
See README for more details.
Selected interface '[Your Device name]'
Interactive mode
>
こんな感じの対話型シェルが起動するので、以下のようにコマンドを入力します。
> add_network
0
> set_network 0 ssid "[Your SSID]"
> set_network 0 psk "[Your passphrase]"
> enable_network 0
<2>CTRL-EVENT-CONNECTED - Connection to 00:00:00:00:00:00 completed (reauth) [id=0 id_str=]
> save_config
OK
>quit
これで、もう一度最初に実行したコマンドを入力して、ネットワーク接続を確認してみます。
root@archiso~ # ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether ***
altname ***
altname ***
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether ***
altname ***
ネットワークに繋がりました。
次に、DHCPの設定をします。以下のコマンドを実行します
root@archiso~ # dhcpcd [Your Device Name]
なんかいい感じになります。
最後にping
コマンドで名前解決を含めたネットワーク接続がうまく行っているかを確認します。
root@archiso~ # ping google.com
「〜ms」みたいなのがいっぱい出てきたらうまく行ってます。^C
で止まります。
4.インストール編
では、いよいよArch Linuxをお手持ちのドライブにインストールします。まずは、さっき作ったパーティションをマウントします。[Your Root Partition]がルートパーティション、[Your Boot Partition]がUEFIパーティションです。(sda〜、sdb〜みたいなやつ)
root@archiso~ # mount /dev/[Your Root Partition] /mnt
root@archiso~ # mkdir /mnt/boot
root@archiso~ # mount /dev/[Your Boot Partition] /mnt/boot
必要最小限のパッケージのみをインストールする場合は以下のコマンドで十分ですが、後でネットワーク設定を行う際にwpa_supplicant
とwpa_cli
があったほうが楽なので、一緒に入れておきます。あと、エディタとしてnano
(他のCUIエディタのほうが好きな人はそれでも全く問題ないはずです。)も入れておきます。
root@archiso~ # pacstrap -K /mnt base linux linux-firmware wpa_supplicant wpa_cli nano
まあまあ時間かかるので気長に待ちます。
終わったら再起動して、さっきArch Linuxをインストールしたパーティションから起動します。
こんな感じになったらひとまずインストール完了です。
5. おわりに
今までまともにLinuxを触ったことのない私でも、ブログなどを参考にしながら自力でArch Linuxをインストールすることができました。Arch Linuxのインストールを通して、OSに対する理解が少し深まった気がします。
インストールで苦戦する過程でもいろいろと勉強になりますので、Arch Linuxを試してみたい!って人は気軽に試してみましょう!アドカレには間に合いませんでしたが、気が向いたらi3の設定やIMEの設定の話も書きたいなと思います。