Arch Linuxをネットワーク接続までメモ

##概要
Thinkpad x201が余っていたので,Ubuntuを入れたものの,なんの面白みもなかったので,諸事情によりArch Linuxを入れることにした.

自分用のメモなので参考にならないかもしれない

Thinkpad x201のBIOSはUEFIブートではなくBIOSブートでUEFIブートの参考は<a href=https://qiita.com/TsutomuNakamura/items/b60518f8788e5e998744>こちらの記事</a>です.

公式ページhttps://www.archlinux.org/

参考
・https://qiita.com/TsutomuNakamura/items/b60518f8788e5e998744
.http://grainrigi.hatenablog.com/entry/2017/12/02/221247
・https://ja.wikipedia.org/wiki/Arch_Linux
.http://www.atmarkit.co.jp/fpc/experiments/006oldpc2nas/cfdisk.html

##注意
Arch Linuxは、ローリング・リリースと呼ばれるリリースモデルを採用しており、他のLinuxディストリビューションで見られるような明確な「バージョン番号」や「リリース・スケジュール」を持たない。リポジトリ上のソフトウェアパッケージは日々新しいバージョンへと更新されており、定期的にソフトウェアアップデートを行うことで、システムを常に最新の状態に保つことができる。　--wiki引用

つまり,日々最新のバージョンになります.この記事は2018/7/9に書いたもので,どんどん新しいパッケージなどが配布されているので,この記事通りにやってもうまくいかないことがある.

##環境
Thinkpad x201
BIOSブート
有線LANが使えること(無線LANはGUIを入れた時に設定する.CLIで設定するとなると、wpa_supplicantに静的に記述することになる.)

#USBディスク作成
まずはISOをダウンロードhttps://www.archlinux.org/download/からjapanのミラーサイトでダウンロード.
archlinux-2018.07.01-x86_64.iso  僕の時のバージョンはこれでした.

<a herf=https://wiki.archlinux.org/index.php/USB_flash_installation_media#Using_manual_formatting>ここでは</a>

>Run the following command, replacing /dev/sdx with your drive, e.g. /dev/sdb. (Do not append a partition number, so do not use something like /dev/sdb1)

> dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync

と書いてあるが,/dev/sdxの「x」は任意のということで,実際には/dev/sda/とか/dev/sdbとかに当たる。


```
dd if=/path/to/archlinux.iso of=/dev/sdx
```

で書き込む

#HDDにブートローダーを作る

##キーボード設定
デフォルトはUSキーなので

```
loadkeys jp106
```

でキーマップを確認できる

```
# ls /usr/share/kbd/keymaps/**/*.map.gz
```

でどのキーマップが利用できるか確認できる



##パーティションを作成する

パーティションについては <a href= "http://www.atmarkit.co.jp/fpc/experiments/006oldpc2nas/cfdisk.html">ここを参考に</a>

```
fdisk -l　　もしくは lsblk　でパーティションを確認できる
```

```
fdisk /dev/sdx で対話モード
```
```
cfdisk /dev/sdx でちょっといい感じなやつ　こっちがおすすめ
```

もしもHDDに既存のデータがあった場合はパーティションをdeleteしてからパーティションを区切る.

boot,swapなどパーティションを区切る時はtypeなどを指定しなければいけない.
/dev/sda1 linux
/dev/sda2 swapなど...

パーティション区切ったら失敗したので,区切らないですが....

## フォーマット
ext4のフォーマットで行う

```
# mkfs.ext4 /dev/sda1
```

##インストール先へのマウント

```
# mount /dev/sda1 /mnt
```
bootディレクトリを作成してマウント

```
# mkdir /mnt/boot
# mount /dev/sda2 /mnt/boot　
```

##ベースシステムのインストール

/etc/pacman.d/mirrorlis　を編集して,japanを一番上に持ってくる

```
pacstrap /mnt base base-devel
```

##設定

```
# genfstab -U /mnt >> /mnt/etc/fstab
```

##rootを変えてる？
このコマンドは便利で,arch linuxが壊れた時にUSBさして,mount /dev/sda　してこのコマンドを入力するとUSBからHDDの中身をいじることができる.
networkに繋がった状態じゃないとだめ.

```
# arch-chroot /mnt
```

##タイムゾーン

```
# ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
# hwclock --systohc
```

##locale

```
# locale-gen
```

/etc/locale.conf になんかする

```
LANG=en_US.UTF-8
```


##パスワード
```
# passwd
```

##ブートローダーの設定

BIOS で起動しているので,grubでやる


```
# grub-install --target=i386-pc /dev/sdx
# grub-mkconfig -o /boot/grub/grub.cfg
```

##HDDから起動

```
#reboot
```

してHDDから起動する
うまくいけばarch linuxが入ってる.基本的にはうまくいかない

###うまくいったらネットワーク設定

##ホストネームセット

```
# hostnamectl set-hostname myhostname
```

/etc/mkinitcpio.conf
のなんか消す　　　忘れた


##有線LANの設定(DHCP)

```
systemctl enable dhcpcd@enp0s31f6.service
```

enp0s31f6は自分のネットワークを確認して適当な値に直してください.

```
#ip a
```
とかで確認できる.


これでIP降ってくるはず.