mirror of
https://github.com/archlinuxarm/wiki.git
synced 2024-11-18 22:53:58 +00:00
Create Setup_SD_Script
* A script to partition/format an SD card, and extract the lasted Arch Linux ARM build to it. * Works on the Raspberry Pi and Raspberry Pi 2. ## Summary: * This script installs the latest version of Arch Linux ARM to an SD card. * Based on the official installation recommendations: https://archlinuxarm.org/platforms/armv6/raspberry-pi#installation ## Input: ### This script requires the following input: 1. The full path to a block device where Arch ARM is to be installed. ### This script performs the following actions: 1. Creates 100MB vfat (boot) partition on specified block device; 2. Creates ext4 (root) parition on remaining space; 3. Creates a temporary directory for mount points and download; 4. Downloads a tarball of the lastest ArchARM distribution; 5. Extracts files to new root partition; 6. Moves /boot directory to boot partiton. ## Usage: `bash flash-sdcard.sh /dev/sdcard` ## Source Tarball Download: ### The `$SRC` variable is set to the url of the source tarball for the desired version of Arch Linux ARM: * Raspberry Pi (Original/Model A, B, B+): http://archlinuxarm.org/os/ArchLinuxARM-rpi-latest.tar.gz * Raspberry Pi 2: http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
This commit is contained in:
parent
4f8552174e
commit
809083248c
1 changed files with 106 additions and 0 deletions
106
Setup_SD_Script
Normal file
106
Setup_SD_Script
Normal file
|
@ -0,0 +1,106 @@
|
|||
# Automated Arch Linux ARM install script
|
||||
|
||||
#!/bin/sh
|
||||
# flash-sdcard.sh
|
||||
#
|
||||
# Automated Arch Linux ARM install script
|
||||
# This script installs the latest version of Arch Linux ARM to an SD card.
|
||||
#
|
||||
# Based on official installation recommendations:
|
||||
# https://archlinuxarm.org/platforms/armv6/raspberry-pi#installation
|
||||
#
|
||||
# This script requires the following input:
|
||||
# 1. The full path to a block device where Arch ARM is to be installed.
|
||||
#
|
||||
# This script performs the following actions:
|
||||
# 1. Creates 100MB vfat (boot) partition on specified block device;
|
||||
# 2. Creates ext4 (root) parition on remaining space;
|
||||
# 3. Creates a temporary directory for mount points and download;
|
||||
# 4. Downloads a tarball of the lastest ArchARM distribution;
|
||||
# 5. Extracts files to new root partition;
|
||||
# 6. Moves /boot directory to boot partiton.
|
||||
#
|
||||
# Usage:
|
||||
# bash flash-sdcard.sh /dev/sdcard
|
||||
#
|
||||
|
||||
## Set flags
|
||||
set -u
|
||||
#set -e # fdisk may throw error codes even on successful writes.
|
||||
|
||||
## Check if input value was given and exists.
|
||||
## Show usage message if not.
|
||||
if [ $# -ne 1 ] || [ ! -e $1 ]; then
|
||||
echo
|
||||
echo "Valid path to SD card device is a required argument."
|
||||
echo
|
||||
echo "Example:"
|
||||
echo " bash $0 /dev/mmcblk0"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
## Wipe SD card.
|
||||
#dd if=/dev/zero of=$1
|
||||
|
||||
## Create partitions using fdisk by simulating user input.
|
||||
## (fdisk was not designed with non-interactive use in mind.)
|
||||
echo "o
|
||||
n
|
||||
p
|
||||
1
|
||||
|
||||
+100M
|
||||
n
|
||||
p
|
||||
2
|
||||
|
||||
|
||||
p
|
||||
w
|
||||
q
|
||||
" | fdisk $1
|
||||
|
||||
## Sync changes and update partition table.
|
||||
sync; partprobe $1; sync
|
||||
|
||||
## Create tempory directory for mounts and download.
|
||||
cd `mktemp -d`
|
||||
mkdir boot root
|
||||
|
||||
## If partition numbering for the device follows sda -> sda1 format.
|
||||
if [ -e "$1"1 ]; then
|
||||
mkfs.vfat "$1"1
|
||||
mount "$1"1 boot
|
||||
mkfs.ext4 "$1"2
|
||||
mount "$1"2 root
|
||||
|
||||
## If partition numbering for the device follows mmcblk0 -> mmcblk0p1 format.
|
||||
else
|
||||
mkfs.vfat "$1"p1
|
||||
mount "$1"p1 boot
|
||||
mkfs.ext4 "$1"p2
|
||||
mount "$1"p2 root
|
||||
fi
|
||||
|
||||
## Download tarball
|
||||
SRC="http://archlinuxarm.org/os/ArchLinuxARM-rpi-latest.tar.gz" #RasPi
|
||||
#SRC="http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz" #RasPi 2
|
||||
wget $SRC
|
||||
|
||||
## Download and verify PGP signature
|
||||
## (Best practice, but disabled for simplicity's sake.)
|
||||
#wget "$SRC".sig
|
||||
#gpg --recv-keys 2BDBE6A6
|
||||
#gpg --verify $SRC
|
||||
|
||||
## Extract tarball
|
||||
tar -xf ArchLinuxARM-rpi-latest.tar.gz -C root
|
||||
sync
|
||||
mv root/boot/* boot # Move /boot files to boot partition
|
||||
sync
|
||||
|
||||
## Unmount mounts
|
||||
umount boot root
|
||||
|
||||
## We're done.
|
Loading…
Reference in a new issue