- Published on
Upgrade to Raspbian Buster (Debian 10) for Raspberry Pi
- Authors

- Name
- Tong
I'll use
- macOS Mojave
- Raspbian Buster Lite
- 32GB micro SD card
Flash os image to sdcard
List disks
diskutil list
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *32.0 GB disk2
1: Windows_FAT_32 boot 46.0 MB disk2s1
2: Linux 32.0 GB disk2s2
Unmount disk2
diskutil unmountDisk disk2
Download image
Check SHA-256
sha256sum 2019-06-20-raspbian-buster-lite.zip
9009409a9f969b117602d85d992d90563f181a904bc3812bdd880fc493185234 2019-06-20-raspbian-buster-lite.zip
Unzip
unzip 2019-06-20-raspbian-buster-lite.zip
Flash image
sudo dd bs=1m if=2019-06-20-raspbian-buster-lite.img of=/dev/rdisk2 conv=sync
List disk2
diskutil list disk2
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *32.0 GB disk2
1: Windows_FAT_32 boot 268.4 MB disk2s1
2: Linux 1.9 GB disk2s2
Unmount disk2 again
diskutil unmountDisk disk2
After install
Login
The default user is pi, password is raspberry.
Change keyboard
Open "/etc/default/keyboard"
sudo nano /etc/default/keyboard
The file should be like this:
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="gb"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
Change "gb" to "us"
XKBLAYOUT="us"
Remote access via SSH
Enable and start SSH
sudo systemctl enable ssh
sudo systemctl start ssh
Copy ssh-id
ssh-copy-id [email protected]
Secure SSH
On Raspbian, edit "/etc/ssh/sshd_config", there are three lines that need to be changed to no.
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
Change port number if necessary, e.g. 2222.
Port 2222
Read Securing your Raspberry Pi for more info.
Locale
Fix locale error like this
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
This means LC_ALL is set to en_US.UTF-8. But en_US.UTF-8 is not generated (not in locale -a).
Generate locales
sudo raspi-config
Select "4 Localisation Options" -> "L1 Change Locale"
Prees "space bar" to check All locales (will take time to generate)

Select en_US.UTF-8 as default.

Another way of doing this is to edit "/etc/locale.gen"
Uncomment en_US.UTF-8 and others you want to use
Use commands below to generate and set default
sudo locale-gen
sudo update-locale en_US.UTF-8
Many thanks to jaredwolff.com.
Cloudflare DDNS
Use my shell script
https://gist.github.com/HackingGate/2276b69d52839fef1603132b4de941f0
SSH login from anywhere
ssh [email protected] -p 2222