SD Card NOOBS Raspbian Installation

NOOBS auf der SD Card für eine Raspbian Installation bereitstellen

In folgendem Beitrag werden wir den RaspberryPi verkabeln und auf einer leeren SD Card NOOB für eine Raspbian „Jessie“ Installation bereitstellen.
RaspberryPi 3 Hardware

1) Erforderliche Komponenten

  • RaspberryPi3 Rev B
  • Netzteil mit Micro USB Stecker zur Spannungsversorgung (Empfehlung 5,1V/2,5A – damit man zusätzliche Dinge wie Kamera problemlos betreiben kann)
  • SD Speicherkarte min. 4GB, ich verwende eine 16GB (Klasse 4 oder 6)
  • HDMI Kabel zur Übertragung von Bild und Ton
  • USB Maus/Tastatur
  • Netzwerkkabel
  • Bildschirm oder TV Gerät mit HDMI Anschluss
  • PC mit CardReader zu Vorbereitung der SD Card

Raspberry Pi 3 Komponenten

2) SD Card vorbereiten

Windows Anwender können den „SD Card Formatter“ von https://www.sdcard.org/downloads/formatter_4/index.html herunterladen um damit die SD Card zu formatieren.

Unter LINUX werden wir mit Standardwerkzeugen die Karte vorbereiten. Das Ergebnis ist eine SD Card mit NOOBS. Die „New Out Of Box Software“ NOOBS ist das Installationssystem für den Raspberry Pi.

Mit NOOBS können Betriebssysteme wie zum Beispiel Raspbian, OpenELEC oder RaspBMC installiert werden.

Wenn ich die SD Card in den Reader stecke wird auf meinem PC unter OpenSuse ein /dev/mmcblk0 Device erzeugt. Unter diesem Device kann auf die Karte zugegriffen werden. Damit wir die Boot Software bereitstellen können, müssen wir im ersten Schritt wie bei einer Festplatte eine sogenannte Partition auf der Karte erzeugen. Danach werden wir diese neue Partition verwenden und durch Formatierung darin ein Filesystem erzeugen.

Vorsicht!!!
Bei der Verwendung von fdisk immer prüfen, ob das richtige Device File angegeben wurde. Falsche Anwendung führt zu Datenverlust!

2.1.) Mit „fdisk“ eine Partition auf einer leeren SD Card erstellen

Falls es auf der Karte bereits eine Partition gibt, kann diese mit „d“ gelöscht werden. Bestehende Partitionen werden mit „p“ angezeigt.

# fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.25.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/mmcblk0: 15 GiB, 16088301568 bytes, 31422464 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: 0x000afe9d

Erklärung:
Eine neue primäre Partition mit einer Größe von 2GB erzeugen, welche in weiterer Folge mit einem VFAT Filesystem formatiert wird.

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): 1
First sector (2048-31422463, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-31422463, default 31422463): +2G

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

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)'.

Erklärung:
Mit „a“ wird ein spezielles Boot Kennzeichen der Partition gesetzt, damit von dieser gebootet werden kann.

Command (m for help): a
Selected partition 1
The bootable flag on partition 1 is enabled now.

Command (m for help): p
Disk /dev/mmcblk0: 15 GiB, 16088301568 bytes, 31422464 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: 0x000afe9d

Device         Boot Start     End Sectors Size Id Type
/dev/mmcblk0p1 *     2048 4196351 4194304   2G  c W95 FAT32 (LBA)

Erklärung:
Neue Partitionstabelle speichern.

Command (m for help): w
Die Partitionstabelle wurde verändert.
ioctl() wird aufgerufen, um die Partitionstabelle neu einzulesen.
Festplatten werden synchronisiert.

3.)Filesystem erzeugen

$ sudo /sbin/mkfs.vfat /dev/mmcblk0p1
mkfs.fat 3.0.26 (2014-03-07)

4.) NOOBS downloaden


https://www.raspberrypi.org/downloads/noobs/

5.) NOOBS auf der SD Card bereitstellen

5.1) Partition mounten

Mit dem „mount“ Befehl wird unter LINUX ein Filesystem einer Partition in einen Mountpoint eingehängt.

Erklärung:
Der Befehl „sudo“ wird benötigt, weil „mount“ nur privilegierte Benutzer durchführen können.
Die Bezeichnung „mmcblk0p1“ gibt das Blockdevice an, wobei „mmcblk0“ für die gesamte Karte und p1 für die erste Partition stehen.
Das Verzeichnis /mnt ist der sogenannte Mountpoint, wo die Partition eingehängt wird.

$ sudo mount /dev/mmcblk0p1 /mnt
$ df -h /mnt
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
/dev/mmcblk0p1  2,0G    4,0K  2,0G    1% /mnt

5.2) NOOBS entpacken

Erklärung:
Mit dem Befehl „ls“ können Metadaten einer Datei angezeigt werden, zB Berechtigungen, Größe, Eigentümer usw.
Mit dem Befehl „unzip“ können wir die ZIP-Datei unter dem mit der Option -d angegebenen Zielverzeichnis entpacken.
LINUX verwendet beim Kopieren einen Cache im Speicher. Dadurch müssen Daten, die später nochmals benötigt werden, nicht erneut von der Festplatte gelesen werden, was für die IO Performance von größer Bedeutung ist. In unserem Fall müssen wir sicherstellen, dass auch alle Daten sicher auf die SD Card geschrieben wurden, bevor wir diese aus dem Cardreader nehmen. Der Befehl „sync“ gewährleistet, dass alle Blöcke sicher auf die Karte geschrieben werden. Wenn wir die Partition mit dem Befehl „umount“ wieder vom Mountpoint /mnt aushängen werden implizit vorher alle Blöcke auf das Medium geschrieben.

$ ls -lh NOOBS_v2_1_0.zip 
-rw-r--r-- 1 u109 users 1,1G 29. Nov 16:20 NOOBS_v2_1_0.zip

$ sudo unzip -d /mnt NOOBS_v2_1_0.zip
$ sync

5.3 Karte aus dem ROOT Filesystem aushängen

Bevor wir die Karte entfernen, wird das Filesystem mit „umount“ wierder sauber aus dem Mountpoint ausgehängt.

$ sudo umount /mnt

Zum vorherigen Raspberry Beitrag: Raspberry Pi Einführung