8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Raspberry Pi にArch Linux をinstall したい!

8
Last updated at Posted at 2019-09-03

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

環境は ubuntu 18.04.3 LTS
Raspberry Pi 3B+

今回はRaspberry Pi の ArchWiki を見て作業しました。ArchWikiはこちら

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、二回目は+1gEnterしましょう。(はじめ+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

ディレクトリ名は何でもいいんですが、bootrootという名前だけは絶対やめましょう!!
なぜかは後ほど。

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
wget コマンドだとこうなります.
$ wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz

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

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

$ mv arch_root/boot/* ../arch_boot

これであとはumountして作業は終了です!

$ umount arch_*

これにてインストールする作業は終了です!

なぜrootbootという名前がだめなのか

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

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

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?