Raspbian をヘッドレスでインストール (wifi 接続)

イメージがある場所
[Operating system images](https://www.raspberrypi.com/software/operating-systems/)

ファイルをダウンロード

```bash
wget https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2023-05-03/2023-05-03-raspios-bullseye-armhf-lite.img.xz
```

解凍

```bash
xz -dv 2023-05-03-raspios-bullseye-armhf-lite.img.xz
```

SD に書き込み

```text
# dd bs=16M if=2023-05-03-raspios-bullseye-armhf-lite.img of=/dev/sda
117+1 records in
117+1 records out
1967128576 bytes (2.0 GB, 1.8 GiB) copied, 279.008 s, 7.1 MB/s
```

書き込みが完了した SD を、fdisk で見ると

```text
# fdisk /dev/sda

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


Command (m for help): p
Disk /dev/sda: 14.46 GiB, 15523119104 bytes, 30318592 sectors
Disk model: SD/MMC/MS PRO   
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: 0x4c4e106f

Device     Boot  Start     End Sectors  Size Id Type
/dev/sda1         8192  532479  524288  256M  c W95 FAT32 (LBA)
/dev/sda2       532480 3842047 3309568  1.6G 83 Linux

Command (m for help): q
```

パーティションサイズの拡張
>2GB しか使われていないので、 SDの全領域を使うように拡張

```text
# parted /dev/sda
GNU Parted 3.6
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p                                                                
Model: Generic- SD/MMC/MS PRO (scsi)
Disk /dev/sda: 15.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  273MB   268MB   primary  fat32        lba
 2      273MB   1967MB  1694MB  primary  ext4

(parted) resizepart 2 100%                                                
(parted) print                                                            
Model: Generic- SD/MMC/MS PRO (scsi)
Disk /dev/sda: 15.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  273MB   268MB   primary  fat32        lba
 2      273MB   15.5GB  15.3GB  primary  ext4

(parted) quit 
```


SD をマウントする

```text
# mount /dev/sda2 /mnt/sda2
# ls /mnt/sda2
bin   dev  home  lost+found  mnt  proc	run   srv  tmp	var
boot  etc  lib	 media	     opt  root	sbin  sys  usr
```

Wifi の設定
>ssid パスワードは自分の環境に合わせて下さい。

```text:/mnt/sda2/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
	ssid="HW02G-699999"
	psk="******"
	key_mgmt=WPA-PSK
}
```

Avahi で接続する為にホスト名を変更

```text:/mnt/sda2/etc/hostname
tulip
```

/boot をマウントする

>/mnt/sda1 が /boot になる。

```text
# mount /dev/sda1 /mnt/sda1
# ls /mnt/sda1
COPYING.linux		  bcm2710-rpi-3-b.dtb	    fixup.dat	  kernel8.img
LICENCE.broadcom	  bcm2710-rpi-cm3.dtb	    fixup4.dat	  overlays
bcm2708-rpi-b-plus.dtb	  bcm2710-rpi-zero-2-w.dtb  fixup4cd.dat  start.elf
bcm2708-rpi-b-rev1.dtb	  bcm2710-rpi-zero-2.dtb    fixup4db.dat  start4.elf
bcm2708-rpi-b.dtb	  bcm2711-rpi-4-b.dtb	    fixup4x.dat   start4cd.elf
bcm2708-rpi-cm.dtb	  bcm2711-rpi-400.dtb	    fixup_cd.dat  start4db.elf
bcm2708-rpi-zero-w.dtb	  bcm2711-rpi-cm4-io.dtb    fixup_db.dat  start4x.elf
bcm2708-rpi-zero.dtb	  bcm2711-rpi-cm4.dtb	    fixup_x.dat   start_cd.elf
bcm2709-rpi-2-b.dtb	  bcm2711-rpi-cm4s.dtb	    issue.txt	  start_db.elf
bcm2709-rpi-cm2.dtb	  bootcode.bin		    kernel.img	  start_x.elf
bcm2710-rpi-2-b.dtb	  cmdline.txt		    kernel7.img
bcm2710-rpi-3-b-plus.dtb  config.txt		    kernel7l.img
```

ブート時にSSH サーバーを起動するようにする。

```bash
cd /mnt/sda1
touch ssh
```

>ssh をスタートさせるに、/boot に、ssh という名前のファイルを置く。
>wpa_supplicant.conf も /boot に置く。
>wpa_supplicant.conf　は２箇所に置くことになる。

## ユーザーの作成

```bash
cd /mnt/sda1
touch userconf.txt
```

ユーザー:　scott
パスワード: tiger
とすると、

パスワードのハッシュ化

```bash
echo 'tiger' | openssl passwd -6 -stdin
```

```text
$ echo 'RAW_PASSWORD' | openssl passwd -6 -stdin
$6$gl8lyoCz1Q6YfGSN$iKtTRQShjyMpDEdspYh1IlT/I7l36OjyEZD3.hHGq2waL5wR8QlY1/02.ZvvSsmI2ANLBYi93TWuriMAeqC0K/
```

```text:/mnt/sda1/userconf.txt
scott:$6$gl8lyoCz1Q6YfGSN$iKtTRQShjyMpDEdspYh1IlT/I7l36OjyEZD3.hHGq2waL5wR8QlY1/02.ZvvSsmI2ANLBYi93TWuriMAeqC0K/
```

## Raspberry Pi に SD を装着してブート

ssh でログイン

```bash
ssh scott@tulip.local
```

>パスワードは tiger
>2022年版のRaspberry Pi OS には pi というユーザーがありません。

ログインしてからユーザーの作成

```bash
sudo adduser --uid 1200 uchida
sudo gpasswd -a uchida sudo
```

日本時間にする

```bash
sudo timedatectl set-timezone Asia/Tokyo
```

## 追加インストール

```bash
sudo apt install git
sudo apt install jq
sudo apt install httpie
sudo apt install dnsutils
```