ArchLinuxをRaspberry Pi 3にインストール

ArchLinuxをRaspberry Pi 3にインストールしました。インストール後、Raspberry Pi 3に標準装備されている無線LANから、SSH(Secure Shell)とSFTP(SSH File Transfer Protocol)を利用できるように設定しました。

ArchLinuxをRaspberry Pi 3にインストール

準備

ArchLinuxのSDカードを作成するために、「Raspbian Jessie with PIXEL」がインストールされたRaspberry Pi 3を使用します。このRaspberry Pi 3にUSB接続のSDカードリーダを接続しArchLinuxを書き込むマイクロSDカードを挿入します。SDカードリーダは「Raspberry Pi 3のマイクロSDカード、プロトタイプボード、公式ケース」で示すTranscend USB 3.0 Super Speed カードリーダーを使用します。

以降に示す操作はすべてroot権限で操作します。
1.SDカードリーダに挿入したマイクロSDカードのデバイス名を次のコマンドにより確認します。「Disk /dev/mmcblk0: 29.5 GiB, 31657558016 bytes, 61831168 sectors」がRaspberry Pi 3に挿入されたマイクロSDカード、「Disk /dev/sda: 14.9 GiB, 15931539456 bytes, 31116288 sectors」がSDカードリーダに挿入されたマイクロSDカードを示し、マイクロSDカードデバイス名は「/dev/sda」になっています。

「/dev/sda1 8192 31116287 31108096 14.9G c W95 FAT32 (LBA)」の「/dev/sda1 」をマイクロSDカードデバイス名にしてパーティションを行うと、Wコマンドを実行した時点で「Re-reading the partition table failed.: Invalid argument」のエラーメッセージが表示されます。

# fdisk -l

Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram1: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    ・・・
    ・・・
Disk /dev/ram15: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mmcblk0: 29.5 GiB, 31657558016 bytes, 61831168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6e25767f

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1        8192   137215   129024   63M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      137216 31116287 30979072 14.8G 83 Linux

Disk /dev/sda: 14.9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1        8192 31116287 31108096 14.9G  c W95 FAT32 (LBA)

2.マイクロSDカードデバイス名「/dev/sda」を使って、次のようにマイクロSDカードのパーテーション操作を行います。コマンドプロンプト「Command (m for help):」が表示されるので、次の表示に従ってキーを押していきます。

# fdisk /dev/sda

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): o
Created a new DOS disklabel with disk identifier 0x901a1230.

Command (m for help): p
Disk /dev/sda: 14.9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x901a1230



Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-31116287, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-31116287, default 31116287): +100M

Created a new partition 1 of type 'Linux' and of size 100 MiB.

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): c
If you have created or modified any DOS 6.x partitions, please see the fdisk documentation for additional information.
Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2):
First sector (206848-31116287, default 206848):
Last sector, +sectors or +size{K,M,G,T,P} (206848-31116287, default 31116287):

Created a new partition 2 of type 'Linux' and of size 14.8 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

3.マイクロSDカードをフォーマットしてマウントします。

# mkfs.vfat /dev/sda1
mkfs.fat 3.0.27 (2014-11-12)
# mkdir boot
# mount /dev/sda1 boot
# mkfs.ext4 /dev/sda2
mke2fs 1.43.3 (04-Sep-2016)
Creating filesystem with 3863680 4k blocks and 966656 inodes
Filesystem UUID: 92cc35b6-c518-49bd-a430-abdfa952e2e1
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

# mkdir root (すでにrootディレクトリがあれば飛ばす )
# mount /dev/sda2 root

4.ファイルシステムをダウンロードします。

# wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz
--2017-11-26 00:57:32--  http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz
Resolving os.archlinuxarm.org (os.archlinuxarm.org)... 50.116.36.110
Connecting to os.archlinuxarm.org (os.archlinuxarm.org)|50.116.36.110|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://sg.mirror.archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz [following]
--2017-11-26 00:57:32--  http://sg.mirror.archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz
Resolving sg.mirror.archlinuxarm.org (sg.mirror.archlinuxarm.org)... 210.23.25.77
Connecting to sg.mirror.archlinuxarm.org (sg.mirror.archlinuxarm.org)|210.23.25.77|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 386455111 (369M) [application/octet-stream]
Saving to: ‘ArchLinuxARM-rpi-3-latest.tar.gz’

ArchLinuxARM-rpi-3-latest.tar. 100%[====================================================>] 368.55M   297KB/s   in 21m 15ss

2017-11-26 01:18:47 (296 KB/s) - ‘ArchLinuxARM-rpi-3-latest.tar.gz’ saved [386455111/386455111]

5.ファイルシステムを書き込みます。
最初に次のコマンドで「bsdtar」をインストールします。

# apt-get install bsdtar

次のコマンドでファイルシステムを書き込みます。ワーニング・エラーが表示されましたが無視しました。

# bsdtar -xpf ArchLinuxARM-rpi-3-latest.tar.gz  -C root
bsdtar: Ignoring malformed pax extended attribute
bsdtar: Ignoring malformed pax extended attribute
bsdtar: Ignoring malformed pax extended attribute
bsdtar: Ignoring malformed pax extended attribute
bsdtar: Error exit delayed from previous errors.
# sync
# mv root/boot/* boot

6.次のコマンドでアンマウントします。

# umount boot root

7.マイクロSDカードリーダからマイクロSDカードを取出し、Raspberry Pi 3に挿入してrebootします。

8.次のログイン画面が表示されます。

Aexh Linuz 4.13.10-1-ARCH(tty1)
alarm login:

あらかじめ設定されるアカウントを次に示します。

  • userID: root / password : root
  • userID: alarm / password: alarm

ArchLinuxのネットワーク関連の環境設定

ArchLinuxのインストール直後は、LANケーブルを接続するだけでDHCPによりネットワークに接続できます。Raspberry Pi 3に標準装備されている無線LANから、SSHとSFTPを利用できるように設定します。

初回ログインとユーザーの追加

初回は root でログインすることになりますが、次のコマンドでユーザを追加します。

# useradd -m -g wheel [user]      # ユーザを追加して wheel グループに入れる
# passwd [user]                   # ユーザのパスワードを設定

次のコマンドでsudo もできるようにします。sudo の設定ファイルは /etc/sudoers です。このファイルはどんなときでも visudo コマンドを使って編集します。

# pacman -S sudo                  # sudo をインストール
# visudo                          #  /etc/sudoersを編集します。編集内容については下記参照

visudo では 次の行のコメントを外します。

Defaults env_keep += “HOME”
sudo したときユーザの $HOME を参照できるようにする
%wheel ALL=(ALL) ALL
wheel グループのユーザに sudo する権限を与える。

ここでいったんログアウトして、今作ったユーザでサイドログインします。

有線LAN

デバイス名「eth0」のNICに対しては、次のように固定IPアドレスを割り当てます。DHCPは「false」にします。

# vi /etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
DHCP=false
Address=192.168.1.41/24
Gateway=192.168.1.1
DNS=192.168.1.1

無線LAN

次のコマンドを入力し、GUIに表示されたアクセスポイントからSSIDを選択し、セキュリティキーを入力します。

# wifi-menu -o

GUIを抜けると/etc/netctl/上に接続先のprofileが作成され、無線LANとの接続が行われます。次のコマンドを入力して、起動時に自動的に無線LANとの接続します。

# netctl enable xxxx
# netctl start xxxx
  xxx:wifi-menuで作成されたprofile

エラーメッセージ「Please install ‘dialog’ to use wifi-menu」が表示された場合、次のコマンドで無線 LAN デバイスが認識していることを確認します。

# ip link

ここでデバイス名が「wlan0」と表示されていれば、無線 LAN を認識できているので、無線LANにWPA/WPA2で接続するために、次のコマンドでwpa_supplicantをインストールします。。

# $ sudo pacman -S wpa_supplicant

次のコマンドで接続用のプロファイルのサンプルをコピーして、専用プロファイル「wlan0-aterm-xxxx」を作成します。専用プロファイルのファイル名は任意の名称が付けられます。

$ sudo cp /etc/netctl/examples/wireless-wpa /etc/netctl/wlan0-aterm-xxxx

パスワード等の部分を変更するため、にテキストエディタで専用プロファイル「wlan0-aterm-xxxx」を開くと、次のように設定ファイルの内容が表示されます。この設定ファイルの「ESSID」をSSID、「Key」にパスワードをそれぞれ記述します。

Description='A simple WPA encrypted wireless connection'

Interface=wlan0
Connection=wireless

Security=wpa
IP=dhcp

ESSID='xxxxx'
# Prepend hexadecimal keys with \"
# If your key starts with ", write it as '""<key>"'
# See also: the section on special quoting rules in netctl.profile(5)
Key='yyyy'
# Uncomment this if your ssid is hidden
#Hidden=yes
# Set a priority for automatic profile selection
#Priority=10

SSH(Secure Shell)
ArchLinuxのインストール直後は、SSHのサービスが起動していないため、次のコマンドで起動時に自動的に待ち受けが始まるよう設定します。

# systemctl start sshd.service
# systemctl enable sshd.service

SFTP(SSH File Transfer Protocol)
SFTPのためにvsftpdをインストールします。vsftpdを次のコマンドでインストールします。

# pacman -Sy –noconfirm vsftpd

次のコマンドでvsftpdを有効にして再起動します。なおvsftpdの設定ファイルは「/etc/vsftpd.conf」になります。

# systemctl start vsftpd
# systemctl enable vsftpd