Installation auf USB-Medium

Nachfolgend soll die Installation eines DEBIAN Linux auf ein USB-Medium beschrieben werden. Hierbei handelt es sich um eine vollständige Installation (kein Kopieren einer Live-Distribution auf ein USB-Medium), so dass nach Erstellung von diesem Medium gestartet werden kann und es voll beschreibbar ist. Einige der nachfolgenden Informationen wurden dieser Webseite entnommen und entsprechend angepasst.


Voraussetzungen

Es wird ein minimales DEBIAN-System vorausgesetzt (Minimalinstallation). Weiterhin ist der Zugriff auf ein DEBIAN Repository notwendig, weil mehrere Pakete benötigt werden.


Nachfolgend wird ein DEBIAN Stretch AMD64 (Version 9.5) als Voraussetzung benutzt. Die Paketliste der Minimalinstallation ist hier zu finden.


Medium partitionieren

Im ersten Schritt wird das USB-Medium in den Rechner mit der Minimalinstallation gesteckt und hoffentlich vom System erkannt. Ein Einhängen ist nicht notwendig. Es erfolgt die Partitionierung des Mediums. Es würde ausreichen, eine einzige große Partition zu erstellen, worauf das Linux dann installiert wird. Nachfolgend soll aber trotzdem eine klassische Installation mit einer boot-, einer root- und einer swap-Partition erstellt werden. Das USB-Medium (Größe: 32 GB) wird nachfolgend als zweite Festplatte (/dev/sdb) erkannt.


Partitionierung mit fdisk

  • Festplatte löschen:
~# fdisk /dev/sdb

Command (m for help): o
Building a new DOS disklabel with disk identifier 0xa19a2b66.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)


  • boot-Partition (Größe: 200 MB) erstellen:
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-61160447, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-61160447, default 61160447): +200M


  • Erweiterte Partition erstellen:
Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
Partition number (1-4, default 2): 2
First sector (411648-61160447, default 411648): 
Using default value 411648
Last sector, +sectors or +size{K,M,G} (411648-61160447, default 61160447): 
Using default value 61160447


  • root-Partition (der Rest minus etwas für die swap-Partition) erstellen:
Command (m for help): n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (413696-61160447, default 413696): 
Using default value 413696
Last sector, +sectors or +size{K,M,G} (413696-61160447, default 61160447): +27G


  • swap-Partition (der Rest) erstellen:
Command (m for help): n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 6
First sector (57038848-61160447, default 57038848): 
Using default value 57038848
Last sector, +sectors or +size{K,M,G} (57038848-61160447, default 61160447): 
Using default value 61160447


  • Setzen des Boot-Flag für die erste Partition
Command (m for help): a
Partition number (1-6): 1


  • Endergebnis:
Command (m for help): p

Disk /dev/sdb: 31.3 GB, 31314149376 bytes
255 heads, 63 sectors/track, 3807 cylinders, total 61160448 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
Disk identifier: 0xa19a2b66

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048      411647      204800   83  Linux
/dev/sdb2          411648    61160447    30374400    5  Extended
/dev/sdb5          413696    57036799    28311552   83  Linux
/dev/sdb6        57038848    61160447     2060800   83  Linux


  • Änderungen schreiben und Programm fdisk verlassen:
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


Dateisysteme erstellen

Für die einzelnen Partitionen müssen die Dateisysteme erstellt werden.


  • boot-Partition:
~# mkfs.ext2 -L boot /dev/sdb1
mke2fs 1.42.5 (29-Jul-2012)
Dateisystem-Label=boot
OS-Typ: Linux
...
Superblock-Sicherungskopien gespeichert in den Blöcken: 
	8193, 24577, 40961, 57345, 73729

Platz für Gruppentabellen wird angefordert: erledigt                        
Inode-Tabellen werden geschrieben: erledigt                        
Schreibe Superblöcke und Dateisystem-Accountinginformationen: erledigt


  • root-Partition:
~# mkfs.ext4 -L root /dev/sdb5
mke2fs 1.42.5 (29-Jul-2012)
Dateisystem-Label=root
OS-Typ: Linux
...
Superblock-Sicherungskopien gespeichert in den Blöcken: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Platz für Gruppentabellen wird angefordert: erledigt                        
Inode-Tabellen werden geschrieben: erledigt                        
Erstelle Journal (32768 Blöcke): erledigt
Schreibe Superblöcke und Dateisystem-Accountinginformationen: erledigt


  • swap-Partition:
~# mkswap -L swap /dev/sdb6
Setting up swapspace version 1, size = 2060796 KiB
LABEL=swap, UUID=4bbbfeb9-fc42-45b2-adaf-97988a2649c4


Betriebssystem installieren

Jetzt kann das gewünschte DEBIAN-System auf das USB-Medium mit Hilfe von debootstrap installiert werden. An dieser Stelle wird die Adresse des DEBIAN-Repository benötigt.


  • Installation der notwendigen Pakete
~# apt-get install debootstrap
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Die folgenden NEUEN Pakete werden installiert:
  debootstrap
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 61,4 kB an Archiven heruntergeladen werden.
...
debootstrap (1.0.48+deb7u2) wird eingerichtet ...


  • Einhängen der Partitionen:
~# mkdir -p /tmp/usb
~# mount /dev/sdb5 /tmp/usb
~# mkdir /tmp/usb/boot
~# mount /dev/sdb1 /tmp/usb/boot


  • Installation des Betriebssystems:
~# debootstrap --arch amd64 stable /tmp/usb http://ftp.de.debian.org/debian/
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
I: Valid Release signature (key id ED6D65271AACF0FF15D123036FB2A1C265FFB764)
I: Retrieving Packages
I: Validating Packages
...
I: Configuring tasksel...
I: Configuring tasksel-data...
I: Base system installed successfully.


  • Einhängen von proc, dev und sys:
~# mount -t proc none /tmp/usb/proc
~# mount --bind /sys /tmp/usb/sys
~# mount --bind /dev /tmp/usb/dev


  • Kopieren der Datei /etc/resolv.conf:
~# cp /etc/resolv.conf /tmp/usb/etc/resolv.conf


Basiskonfiguration

Die Basiskonfiguration wird innerhalb des USB-Mediums durchgeführt. Dafür erfolgt mit dem Befehl chroot ein Wechsel in das neue System.


  • Wechsel in das neue System (zu erkennen am veränderten Prompt):
~# chroot /tmp/usb
/#


  • Dateisysteme schreiben:
/# grep -Ev 'rootfs|sda' /proc/mounts > /etc/mtab

Mit sda wird die erste Festplatte ausgeschlossen.


  • Installation von Kernel und GRUB:
/# apt-get install grub-pc linux-base linux-image-3.2.0-4-amd64
Reading package lists... Done
Building dependency tree... Done
...
Setting up grub-pc (1.99-27+deb7u2) ...
Creating config file /etc/default/grub with new version
Installation finished. No error reported.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64
done
Setting up dmsetup (2:1.02.74-8) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.2.0-4-amd64
Für GRUB erscheint während der Installation eine Abfrage, wohin die Installation der Daten erfolgen soll. Hier muss /dev/sdb ausgewählt werden.


  • Erstellen der Datei /etc/fstab:
/dev/sdb1       /boot   ext2    rw                      0       2
/dev/sdb5       /       ext4    errors=remount-ro       0       1
/dev/sdb6       none    swap    sw                      0       0


Nachfolgend erfolgt bezüglich GRUB die Abänderung, dass nicht die UUID, sondern die Gerätebezeichnung verwendet wird. Dafür muss die Datei /etc/default/grub angepasst werden:

GRUB_DISABLE_LINUX_UUID=true

Der Parameter ist im Normalfall auskommentiert.


  • GRUB konfigurieren:
/# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64
done


  • Administratorkennwort setzen:
/# passwd
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully


  • Verlassen der chroot-Umgebung:
/# exit


  • Aushängen der eingehängten Dateisysteme:
~# umount /tmp/usb/sys
~# umount /tmp/usb/dev
~# umount /tmp/usb/proc


  • Aushängen des USB-Mediums:
~# umount /tmp/usb/boot
~# umount /tmp/usb


Jetzt kann vom USB-Medium gestartet werden (sofern dies vom verwendeten System unterstützt wird)


Das neue System befindet sich jetzt in einem minimalen Zustand. Die Installation weiterer Programme, die Anpassungen einiger Konfigurationsdateien und die Erweiterung zu einem „normalen“ System sind hier beschrieben.




Anpassungen und Erweiterungen

Nachfolgend soll die Anpassung und Erweiterung eines minimal installiertes DEBIAN Linux auf ein USB-Medium (hier nachzulesen) beschrieben werden.


Zusätzliche Pakete

Es sollten einige zusätzliche Pakete installiert werden, damit bestimmte Anpassungen vorgenommen werden können:

  • openssh-server
  • vim
  • molly-guard
  • mc
  • nmap
  • fakeroot
  • reprepro
  • makepasswd
  • chkconfig
  • strace


Netzkonfiguration

Bevor weitere Pakete installiert werden können, muss das Netzwerk konfiguriert werden.


  • Prüfen auf ein erkanntes Netzwerkgerät (meist eth0):
~# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 04:b8:1f:d4:21:6a  
...

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
...


  • Anpassen der Datei /etc/network/interfaces für DHCP:
auto eth0
iface eth0 inet dhcp


  • Anpassen der Datei /etc/network/interfaces für manuelle Netzwerkeinstellung:
auto eth0
iface eth0 inet static
    address <IP-Adresse>
    netmask <Netzmaske>
    gateway <Gateway-Adresse>


  • Netzwerk starten:
~# ifup eth0

Falls eth0 das gewünschte Gerät ist, andernfalls muss hier ein anderes eingetragen werden.


resolvconf

Sollen die Eintragungen für die Datei „/etc/resolv.conf“ nicht (normalerweise für jedes unterschiedliche Netzwerk mit unterschiedlichen DNS-Servern) manuell erfolgen, empfiehlt sich die Installation des Paketes resolvconf:

~# apt-get install resolvconf


Jetzt muss bei einem manuell gesetztem Netzwerk die Datei „/etc/network/interfaces“ noch ergänzt werden:

iface eth0 inet static
    ...
    dns-nameservers <IP-Adresse> [<IP-Adresse>]


IPv6

Soll im System kein IPv6 verwendet werden, kann dies vollständig deaktiviert werden. Dafür muss eine neue Datei „/etc/sysctl.d/ipv6-disable.conf“ erstellt werden mit folgendem Inhalt:

net.ipv6.conf.all.disable_ipv6 = 1

Damit die Änderung wirksam wird, muss das System neu gestartet werden.


Rechnername

Der Rechnername wird vom Rechner übernommen, auf dem das USB-Medium erstellt wurde. Eine Änderung muss an mehreren Stellen vorgenommen werden.


  • Anpassen der Datei /etc/hostname:
<Rechnername>

Hier erfolgt der Eintrag als Rechnername, ohne FQDN.


  • Anpassen der Datei /etc/hosts:
<IP-Adresse>    <Rechnername>.<Domäne> <Rechername>

Für Domäne kann der FQDN, falls vorhanden, eingegeben werden. Existiert kein Domäne, reicht der Eintrag als einzelner Rechner aus.


  • Beispiel:
192.168.10.135    usbstick.beispiel.de usbstick


Sollte kein IPv6 verwendet werden, können diese Einträge aus der Datei /etc/hosts entfernt werden.


Lokalisation und Tastatur

Nach der Installation sind die Lokalisation und Tastatur standardmäßig nicht auf Deutsch eingestellt.


Lokalisation

Zur Anpassung der Lokalisation wird das Paket locales installiert:

~# apt-get install locales


Eine Abfrage mit dem Befehl locale zeigt an, dass alle LC-Variablen auf POSIX eingestellt sind. Zur Umstellung auf Deutsch (UTF-8) ist folgender Aufruf notwendig:

dpkg-reconfigure locales


Es erscheint ein Auswahlfenster, wo folgendes ausgewählt werden muss:

  • [*] de_DE.UTF-8 UTF-8“ → „<Ok>
  • de_DE.UTF-8“ → „<Ok>


Nach einem erneuten Anmelden und Abfragen mit dem Befehl locale wird die richtige Lokalisation angezeigt.


Tastatureinstellung

Zur Anpassung des Tastaturlayouts werden die Pakete keyboard-configuration und console-data installiert und konfiguriert:

~# apt-get install keyboard-configuration console-data


Für beide Pakete erfolgt bereits während der Installation die Konfigurationsabfrage, wo für die Umstellung auf Deutsch folgendes ausgewählt werden muss:

  • keyboard-configuration:
    • Deutsch
  • console-data:
    • Tastaturbelegung aus Liste für diese Architektur wählen
    • qwertz
    • German
    • Standard
    • latin - no dead keys


Die Konfiguration kann nachträglich mit folgendem Befehl aufgerufen werden:

~# dpkg-reconfigure console-data


.bashrc

Die Datei .bashrc, die beim Login ausgeführt wird, kann wie folgt erweitert werden:

alias ll="ls -alh --color=always"
alias cls='clear'
alias dum='du -ach --max-depth=0'
shopt -s histappend
export HISTSIZE=90000
export HISTFILESIZE=150000
export HISTIGNORE='cm*:pwd'
export HISTCONTROL=erasedups:ignorespace
export HISTTIMEFORMAT='%d.%m.%Y %T '
PS1="\[\033[1;30m\]\u@\h\w:~# \[\033[0m\]"
export PS1=$PS1$(history -a; history -r;)


Steffen Bornemann 08.11.2018

 
 debian-linux/usb-installation.txt · Zuletzt geändert: 2025/05/08 22:16 von 127.0.0.1
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: GNU Free Documentation License 1.3
Recent changes RSS feed Driven by DokuWiki