Raspberry Pi にArch Linux をinstall したい！

お久しぶりです！！
ラズパイにArch入れて遊びたいなって思って買いました！！
なぜArchかというとなんとなく...笑

環境は ubuntu 18.04.3 LTS
      Raspberry Pi 3B+

今回はRaspberry Pi の ArchWiki を見て作業しました。[ArchWikiはこちら](https://wiki.archlinux.jp/index.php/Raspberry_Pi)

## fdiskを起動してSDカードのパーティショニングを開始
とりあえずSDカードをパーティションを設定しないといけないのでやります!
パーティションとは記憶領域を分割することです。なぜ分割するかというと、人間は整理整頓されているほど作業しやすいですよね。PCも同じではじめからOS類はここ、データを保管するところはここと決めておいてあげたほうが何かと都合がいいからです。
本題に戻ります。パーティションのやり方ですが、SDカードをPCに刺します。そしたらターミナルで`dmesg`と打ってあげましょう。
そうすると

```
$ dmesg
                       :
                       :
[ 2736.534178] mmc0: cannot verify signal voltage switch
[ 2736.657846] mmc0: new ultra high speed SDR104 SDHC card at address 5048
[ 2736.693686] mmcblk0: mmc0:5048 SD16G 14.4 GiB 
[ 2736.694800]  mmcblk0: p1 p2
[ 2736.941399] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ 2737.918870] EXT4-fs (mmcblk0p2): recovery complete
[ 2737.935170] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)

$
```
こんな感じで表示されると思います。(ホントはもっとズラーッとしてて下の数行だけ表示してます)
で、注目してほしいのが上から三行目の`mmcblk0:mmc0‥`ってなっているところです。これは`mmcblk0`という場所にSDカードを読み込みしましたと言っています。(この情報がとても大事!!)

さっきの`dmesg`を打って出てきたところをパーティションします。
パーティションは

```
$ sudo fdisk /dev/mmcblk0
```
と打つと

```
fdisk (util-linux 2.31.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): 
```
こんなのが表示されます。
とりあえず古いパーティションがあるといけないので`o`で消去します。
その後`n、p、1`の順に打っていくとどのくらいパーティションを確保するか聞かれるのではじめはそのまま`Enter`、二回目は`+1g`で`Enter`しましょう。(はじめ`+100m`でやったら後々足りねーよって怒られたので`1g`にしてます。)
その後に`t、c`の順に押してパーティションタイプを`W95 FAT32 (LBA)`にします。
あとは残りの容量をパーティションします。
さっきと同じで`n、p`と打ち、最後は`2`にします。(1はさっきので割り当てたので)
またどのくらい確保するか聞かれるので今度は残り全部使っていいので2回とも`Enter`です。
パーティションが終わったら`w`を押してパーティションテーブルに書き込み終了です。

## FAT・ext4 システムを作成・マウント(2022/02/26 更新)
次にパーティションしたのを`FAT・ext4システム`にしてマウントします。
~~の前にいちいち`sudo`とかしたくない方は`sudo -s`を打ってください。自分は`sudo -s`でやったのでわかりませんが結構権限が必要です。~~※変なことをすると再起不能になりOS焼き直しです。自己責任でお願いします。
ext4 システムをやるときはsu じゃないと上手くいかないみたいです. (追記 2020/09/15)
では作業に行ってみよう!

```
### FATシステム ###
$ mkfs.vfat /dev/mmcblk0p1
$ mkdir arch_boot
$ mount /dev/mmcblk0p1 arch_boot

### ext4システム ###
$ mkfs.ext4 /dev/mmcblk0p2
$ mkdir arch_root
$ mount /dev/mmcblk0p2 arch_root
```
ディレクトリ名は何でもいいんですが、`boot`と`root`という名前だけは絶対やめましょう!!
なぜかは後ほど。

## rootファイルシステムをSDカードへ
インストールする最後の作業になります。ここだけは`rootユーザー`での実行になります。

```
$ wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz
$ bsdtar -xpf ArchLinuxARM-rpi-3-latest.tar.gz -C arch_root
$ sync
```
~~今は上のリンクがないみたいなので下のリンクから落としてきて下さい！(追記 2020/09/15)
[http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz](http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz)
wget コマンドだとこうなります.
`$ wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz`~~

定期的にリンクが更新されるので[http://os.archlinuxarm.org/os](http://os.archlinuxarm.org/os)からrpiって付いてるのを取ってきてください(追記 2022/02/26)

Arch Linux ARMを落とすのは`wget`じゃなくて大丈夫です!
これでSDカードにArch Linuxに必要なものがすべて入ります。
最後に`arch_root`内にある`boot`を`arch_boot`に`mv`すれば完成です!
ということで早速やっていきます。

```
$ mv arch_root/boot/* ../arch_boot
```
これであとは`umount`して作業は終了です!

```
$ umount arch_*
```
これにてインストールする作業は終了です!

# なぜ`root`や`boot`という名前がだめなのか
なぜ先程`root`や`boot`という名前はやめろといったのかその理由を自分の失敗談を元に話していきます。(興味ない方はここで終わってください)
自分ははじめ`root`と`boot`という名前で作業をしていました。
順調に作業は進んでいたんですが、入力して`Enter`を押して待っていたところPCの画面が変わり`CLI`になり最終的に文字が打てなくなりなした。察しの良い方はもう気づいたでしょう。自分がやらかした重大なミスを。
そう`mv`のときに後ろを`/boot`にしてしまったのです…。
しかも管理者権限が必要だったので`sudo mv root/boot /boot`ですよ…。
OSふっ飛ばし…。まじでやらかしました。
友達にもふっ飛ばしたやつがいるんですが(`rm -rf /`で)そいつと一緒にOSふっ飛ばし野郎みたいな変な異名がつきそうです。笑
で、やっとのことで環境が元に戻ってきたので作業に戻りました。ホントはもっと前に投稿できてたのに…。
こんなことがあったので皆さんは`root`とか`boot`とかやばい名前のディレクトリを作らないように!!

今回は以上になります。間違ってたり何かアドバイス、質問などあればどんどん書いちゃってください!次はArchイジイジか環境構築をshellさんにやらせるかのどっちかになると思います。良ければ読んでね!
それじゃ、またね!