# Chromebook C101PAにArchLinuxをインストールする
###### tags: `Linux` `Install` `Chromebook`
前回:[Fedoraインストールしようとして失敗した](/s/Syfz2I-6z)
実施日:2018年04月29日
## 実施内容
ChromeOSのShellにまずは入る。そして、以下のコマンドでダウンロードし展開する。
```shell
$ curl -LO http://os.archlinuxarm.org/os/ArchLinuxARM-gru-latest.tar.gz
$ mkdir ArchLinuxARM-gru-latest
$ tar xvfz ArchLinuxARM-gru-latest.tar.gz -C ArchLinuxARM-gru-latest
```
カーネルをコピー。
```shell
$ cp -Rpvn ArchLinuxARM-gru-latest/boot/vmlinux.kpart .
```
カーネルのオプションをチェックする。
```shell
chronos@localhost /var/tmp $ sudo vbutil_kernel --verbose --verify vmlinux.kpart
Key block:
Signature: ignored
Size: 0x4b8
Flags: 7 !DEV DEV !REC
Data key algorithm: 4 RSA2048 SHA256
Data key version: 1
Data key sha1sum: d6170aa480136f1f29cf339a5ab1b960585fa444
Preamble:
Size: 0xfb48
Header version: 2.2
Kernel version: 1
Body load address: 0x100000
Body size: 0x13c2000
Bootloader address: 0x14c1000
Bootloader size: 0x1000
Flags : 0x0
Body verification succeeded.
Config:
console=ttyS2,115200n8 earlyprintk=ttyS2,115200n8 console=tty1 init=/sbin/init root=PARTUUID=%U/PARTNROFF=1 rootwait rw noinitrd loglevel=4
```
### 寄り道
FedoraのKernelのオプションをこちらのように合わせてみて、一旦テストしてみることにする。
```shell
$ sudo vim /media/removable/BOOT/kcmdline
$ cat media/removable/BOOT/kcmdline
console=ttyS2,115200n8 earlyprintk=ttyS2,115200n8 console=tty1 init=/sbin/init root=PARTUUID=683229af-33ce-4e37-9205-e59c45151c48 rootwait rw noinitrd loglevel=4 lsm.module_locking=0
$ sudo vbutil_kernel --oldblob /media/removable/BOOT/chromeos-kernel.img \
--repack /media/removable/BOOT/chromeos-kernel2.img \
--config /media/removable/BOOT/kcmdline \
--keyblock /media/removable/BOOT/fedora.keyblock \
--signprivate /media/removable/BOOT/fedora.vbprivk \
--arch arm --version 1
$ sudo dd if=chromeos-kernel2.img of=/dev/sda1
$ sudo dd if=chromeos-kernel2.img of=/dev/sda2
```
上記ではうまく行かなかったので、ArchのKernelで試してみる。
```shell
$ sudo vbutil_kernel --oldblob /var/tmp/vmlinux.kpart \
--repack /var/tmp/vmlinux.kpart2 \
--config /media/removable/BOOT/kcmdline \
--keyblock /media/removable/BOOT/fedora.keyblock \
--signprivate /media/removable/BOOT/fedora.vbprivk \
--arch arm --version 1
$ sudo vbutil_kernel --verbose --verify vmlinux.kpart2
Key block:
Signature: ignored
Size: 0x2b8
Flags: 15 !DEV DEV !REC REC
Data key algorithm: 4 RSA2048 SHA256
Data key version: 1
Data key sha1sum: 3fe17541787ebfb4da52853f48aff85d2f463397
Preamble:
Size: 0xfd48
Header version: 2.2
Kernel version: 1
Body load address: 0x100000
Body size: 0x13c2000
Bootloader address: 0x14c1000
Bootloader size: 0x1000
Flags : 0x0
Body verification succeeded.
Config:
console=ttyS2,115200n8 earlyprintk=ttyS2,115200n8 console=tty1 init=/sbin/init root=PARTUUID=683229af-33ce-4e37-9205-e59c45151c48 rootwait rw noinitrd loglevel=4 lsm.module_locking=0
$ sudo dd if=vmlinux.kpart2 of=/dev/sda1
$ sudo dd if=vmlinux.kpart2 of=/dev/sda2
```
これも駄目だった。通常通りインストールしたほうが良さそうだ。
### 閑話休題
参考サイトは、[ASUS Chromebook Flip C101PA - ArchWiki](https://wiki.archlinux.jp/index.php/ASUS_Chromebook_Flip_C101PA)である。
以下のコマンドは、`sudo -i`を実行し`root`となって行うことを前提として書かれている。
はじめに、現在認識しているすべてのパーティションの認識の解除を行う。
```shell
$ umount /dev/sda*
$ fdisk /dev/sda
```
その後、`fdisk`のプロンプトにおいて`g`、`w`を入力することにより、GPTを作成する。
さらにパーティションの追加を行う。
```shell
$ cgpt create /dev/sda
$ cgpt add -i 1 -t kernel -b 8192 -s 65536 -l Kernel -S 1 -T 5 -P 10 /dev/sda
$ cgpt add -i 2 -t data -b 73728 -s `expr 126613471 - 73728` -l Root /dev/sda
# 再認識
$ partx -a /dev/sda
$ mkfs.ext4 /dev/sda2
```
その後、ディスクをマウントし、ダウンロード済みのファイルのコピーを行う。
```shell
$ cd /var/tmp/
$ mkdir root
$ mount /dev/sda2 root
$ cp -Rpvn ArchLinuxARM-gru-latest/* root/
$ sync
```
次に、Kernelのインストールを行い、アンマウントする。
```shell
$ dd if=root/boot/vmlinux.kpart of=/dev/sda1
$ umount root
```
その後リブートし`Ctrl+U`にて、USBより起動させる。
ちゃんと起動した!インストール完了!