Unix- Praktikum

Carsten Gn¨orlich Vorlesung Unix-Praktikum Werkzeuge tee /dev/shm 13. Dateisysteme watch Dateisysteme Neues Ger¨at dmesg Carsten Gnorlich /var/log, -f ¨ mkfs.ext4 mount, umount /etc/fstab Rechnerbetriebsgruppe Label Technische Fakult¨at mount auf Abbildern Universit¨at Bielefeld

01. Februar 2016

1 / 43 Willkommen zur dreizehnten Vorlesung Was gab es beim letzten Mal?

Unix- Praktikum ◮ Dateisystem-Querverweise Carsten Gn¨orlich ◮ Ausgabeumleitung von stdout und stderr Werkzeuge ◮ Paketverwaltung tee /dev/shm ◮ watch screen Dateisysteme Neues Ger¨at dmesg /var/log, tail -f mkfs.ext4 mount, umount /etc/fstab Label mount auf Abbildern

2 / 43 Willkommen zur dreizehnten Vorlesung Was machen wir heute?

Unix- Praktikum

Carsten Werkzeuge Gn¨orlich tee

Werkzeuge /dev/shm tee watch /dev/shm watch Dateisysteme Dateisysteme Neues Ger¨at dmesg Neues Ger¨at /var/log, tail -f mkfs.ext4 dmesg mount, umount /var/log, tail -f /etc/fstab Label mkfs.ext4 mount auf Abbildern mount, umount /etc/fstab Label mount auf Abbildern

3 / 43 Ausgabeumleitung Ausgabe gleichzeitig beobachten und in eine Datei umleiten

Unix- Praktikum Ein Prozeß l¨auft mehrere Stunden. Wir wollen Carsten Gn¨orlich ◮ seine Ausgabe in eine Datei umleiten

Werkzeuge ◮ gleichzeitig seine Ausgabe “live” beobachten tee /dev/shm watch Dateisysteme Beispiel (zum Spielen): zeit.bash Neues Ger¨at dmesg /var/log, tail -f mkfs.ext4 #!/bin/bash mount, umount /etc/fstab Label mount auf while /bin/true; do Abbildern date "+%A, %d. %B %Y %H:%M:%S" sleep 5 done

4 / 43 Ausgabeumleitung Ausgabe gleichzeitig beobachten und in eine Datei umleiten

Unix- Praktikum tee: Ein “T-Stuck”¨ in eine Pipe einbauen Carsten Gn¨orlich Beispiel: Werkzeuge tee /dev/shm > ./zeit.bash | tee zeit.log watch Dateisysteme ◮ man sieht die Ausgabe von zeit.bash direkt Neues Ger¨at dmesg ◮ /var/log, tail -f sie wird zus¨atzlich in zeit.log gespeichert mkfs.ext4 mount, umount /etc/fstab Label Anmerkung: mount auf Abbildern ◮ Nach tee kann die Pipe weitergehen ◮ Man “zapft” (kopiert) damit also wirklich Daten aus der Pipe heraus

5 / 43 Pseudo-Blockger¨ate /dev/shm: Die Festplatte im RAM

Unix- Praktikum /dev/shm bzw. /run/shm Carsten Gn¨orlich • “Festplatte” im RAM

Werkzeuge • Kann bis zur H¨alfte des RAMs belegen tee /dev/shm watch + extrem schnell Dateisysteme Neues Ger¨at + gut zum Verschieben von Daten dmesg /var/log, tail -f z.B. ISO-Abbilder bauen, tar-Archive ein-/auspacken mkfs.ext4 mount, umount + gut zum Schonen von SSDs /etc/fstab Label z.B. Browser-Cache hierhin auslagern mount auf Abbildern – aber: Daten im RAM → nach Reboot sind sie weg!

6 / 43 Kopieren zwischen Blockger¨aten typische Anwendungen von dd

Unix- Praktikum Eine 16GB große Datei aus Nullen erzeugen: Carsten Gn¨orlich > dd if=/dev/zero of=datei.img bs=1M count=$((16*1024)) Werkzeuge tee /dev/shm ISO-Abbild einer CD erzeugen (count weglassen!): watch Dateisysteme > dd if=/dev/scd0 of=∼/abbild.iso bs=1M Neues Ger¨at dmesg /var/log, tail -f mkfs.ext4 Gesamte Festplatte testweise in die Datensenke kopieren mount, umount /etc/fstab (hilft um festzustellen ob sie defekte Sektoren hat) Label mount auf > sudo dd if=/dev/sda of=/dev/null bs=1M Abbildern

Gesamte Festplatte mit Nullen ¨uberschreiben (Datenverlust!) (z.B. um alle Daten vor einem Verkauf zu l¨oschen) > sudo dd if=/dev/zero of=/dev/sda bs=1M

7 / 43 Kopieren zwischen Blockger¨aten dd: Status via USR1-Signal abfragen

Unix- Praktikum Einen dd-Prozeß im Hintergrund starten: Carsten Gn¨orlich > dd if=/dev/zero of=/dev/null & [4] 3077 Werkzeuge tee /dev/shm watch USR1-Signal via kill schicken: Dateisysteme (kill dient also nicht nur zum Beenden von Prozessen!) Neues Ger¨at dmesg /var/log, tail -f > kill -USR1 3077 mkfs.ext4 17128294+0 Datens¨atze ein mount, umount /etc/fstab 17128293+0 Datens¨atze aus Label mount auf 8769686016 Bytes (8,8 GB) kopiert, 6,31664 s, 1,4 GB/s Abbildern

dd-Prozeß beenden: > kill 3077 [4]+ Beendet dd if=/dev/zero of=/dev/null

8 / 43 Virtualisierung unter Ubuntu watch: Periodisch einen Kommandozeilenbefehl ausfuhren¨

Unix- Praktikum watch: Programm periodisch ausfuhren¨ Carsten Gn¨orlich Aufrufschema: watch -n 5 kommandozeilenaufruf Werkzeuge tee ◮ -n : Anzahl der Sekunden, nach der Aufruf wiederholt wird /dev/shm watch Dateisysteme Neues Ger¨at Alle 5 Sekunden Gr¨oße der Datei abbild.iso anzeigen: dmesg /var/log, tail -f mkfs.ext4 > watch -n 5 ls -lah abbild.iso mount, umount /etc/fstab Label Alle 2 Sekunden (Standard) Massenspeicher in /dev anzeigen: mount auf Abbildern (Ohne ”” wurde¨ sd* expandiert und keine neuen Ger¨ate gezeigt!) > watch "ls -l /dev/sd*"

Freien Speicherplatz in /home beobachten: > watch -n 5 df -h /home 9 / 43 Wiederholung: Partitionen Logische Partitionen erlauben mehr als 4 Partitionen

Unix- Primäre Part. Logische Part. Praktikum (max 4: sda1−sda4) (beliebig viele) Carsten /dev/sda Gn¨orlich /dev/sda11 2 3 ... − 1 2 3 ... Werkzeuge /dev/sda5 tee 1 2 3 ... /dev/shm /dev/sda6 watch /dev/sda2 1 2 3 ... Dateisysteme /dev/sda7 Neues Ger¨at 1 2 3 ... dmesg /dev/sda8 /var/log, tail -f mkfs.ext4 mount, umount /etc/fstab Label Eine primare Partition kann in weitere logische Partitionen mount auf ¨ Abbildern aufgeteilt werden: ◮ /dev/sda5, /dev/sda6, /dev/sda7, ... ◮ passiert w¨ahrend des Installationsdialogs ◮ was macht man mit nachtr¨aglich eingebauten Datentr¨agern? 10 / 43 Partitionierung Werkzeuge

Unix- Praktikum Graphisches Werkzeug: Carsten Gn¨orlich ◮ gparted

Werkzeuge tee /dev/shm Kommandozeilenwerkzeug: watch Dateisysteme ◮ fdisk Neues Ger¨at dmesg /var/log, tail -f mkfs.ext4 mount, umount /etc/fstab Label mount auf Abbildern

11 / 43 Partitionierung mit fdisk Neues Ger¨at partitionieren

Unix- Praktikum ◮ neue Festplatte Carsten Gn¨orlich ◮ Memorystick Werkzeuge tee /dev/shm watch Vorsicht: Richtiges Ger¨at bearbeiten! Dateisysteme (sonst Datenverlust!) Neues Ger¨at dmesg /var/log, tail -f mkfs.ext4 mount, umount /etc/fstab Label mount auf Abbildern

12 / 43 Partitionierung mit fdisk Neues Ger¨at finden

Unix- Praktikum Bei fest eingebauten Ger¨aten: Carsten Gn¨orlich ◮ Bootmeldungen untersuchen

Werkzeuge ◮ Inhalt von /dev vorher und nachher vergleichen tee /dev/shm ◮ Partitionstabellen anschauen watch Dateisysteme Neues Ger¨at dmesg Bei Wechseldatentr¨agern: /var/log, tail -f mkfs.ext4 mount, umount /etc/fstab ◮ Label Logfiles w¨ahrend des Einsteckens beobachten mount auf Abbildern

13 / 43 Partitionierung mit fdisk Wie findet man das neue Ger¨at?

Unix- Praktikum dmesg: Log-Meldungen des Kernels ausgeben Carsten Gn¨orlich > dmesg | sd[a-z] [ 2.947433] sd 1:0:0:0: [sda] 781422768 512-byte logical blocks: Werkzeuge (400 GB/372 tee /dev/shm [ 2.947491] sd 1:0:0:0: [sda] Write Protect is off watch [ 2.947495] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00 Dateisysteme [ 2.947520] sd 1:0:0:0: [sda] Write cache: enabled, read cache: Neues Ger¨at dmesg [ 2.977831] sda: sda1 sda2 sda3 < sda5 > /var/log, tail -f mkfs.ext4 [ 2.978392] sd 1:0:0:0: [sda] Attached SCSI disk mount, umount [ 4.204527] sd 0:0:0:0: [sdb] 156301488 512-byte logical blocks: /etc/fstab Label (80.0 GB/74.5 mount auf Abbildern [ 4.204583] sd 0:0:0:0: [sdb] Write Protect is off [ 4.204587] sd 0:0:0:0: [sdb] Mode Sense: 00 3a 00 00 [ 4.204934] sd 0:0:0:0: [sdb] Write cache: enabled, read cache: [ 4.243937] sdb: sdb1 [ 4.244265] sd 0:0:0:0: [sdb] Attached SCSI disk

◮ Gr¨oße und Partitionen betrachten 14 / 43 Partitionierung mit fdisk Wie findet man das neue Ger¨at?

Unix- Praktikum Modellbezeichnung aus den Logs holen: Carsten Gn¨orlich > dmesg | grep sd[a-z]

Werkzeuge ... tee [ 2.947433] sd 1:0:0:0: [sda] 781422768 512-byte logical blocks: /dev/shm watch (400 GB/372 Dateisysteme ... Neues Ger¨at [ 4.204527] sd 0:0:0:0: [sdb] 156301488 512-byte logical blocks: dmesg /var/log, tail -f (80.0 GB/74.5 mkfs.ext4 mount, umount ... /etc/fstab Label mount auf > Abbildern dmesg | grep 0:0:0:0 ... [ 4.204265] scsi 0:0:0:0: Direct-Access ATA ST3808110AS ...

15 / 43 Partitionierung mit fdisk Wie findet man das neue Ger¨at?

Unix- Praktikum Nachschauen im dev-Verzeichnis: Carsten Gn¨orlich > ls -la /dev/sd* Werkzeuge brw-rw---- 1 root disk 8, 0 14. Jan 12:34 /dev/sda tee /dev/shm brw-rw---- 1 root disk 8, 1 14. Jan 12:34 /dev/sda1 watch brw-rw---- 1 root disk 8, 2 14. Jan 12:34 /dev/sda2 Dateisysteme brw-rw---- 1 root disk 8, 3 14. Jan 12:34 /dev/sda3 Neues Ger¨at dmesg brw-rw---- 1 root disk 8, 5 14. Jan 12:34 /dev/sda5 /var/log, tail -f mkfs.ext4 brw-rw---- 1 root disk 8, 16 14. Jan 12:34 /dev/sdb mount, umount /etc/fstab Label mount auf Abbildern Aber Vorsicht: ◮ Reihenfolge kann sich nach Einbau ¨andern; die neue Platte kann auch sda werden!

16 / 43 Partitionierung mit fdisk Partitionierung eines Ger¨ates anzeigen

Unix- Praktikum > sudo fdisk -l /dev/sda Carsten Gn¨orlich Disk /dev/sda: 128.0 GB, 128035676160 bytes Werkzeuge 255 heads, 63 sectors/track, 15566 cylinders tee /dev/shm Units = cylinders of 16065 * 512 = 8225280 bytes watch Sector size (logical/physical): 512 bytes / 512 bytes Dateisysteme I/O size (minimum/optimal): 512 bytes / 512 bytes Neues Ger¨at dmesg Disk identifier: 0x00082c67 /var/log, tail -f mkfs.ext4 mount, umount Device Boot Start End Blocks Id System /etc/fstab Label /dev/sda1 * 1 66 530113+ 83 Linux mount auf /dev/sda2 67 15566 124503750 5 Extended Abbildern /dev/sda5 67 1111 8393931 83 Linux /dev/sda6 1112 2156 8393931 83 Linux /dev/sda7 2157 2679 4200966 82 Linux swap /dev/sda8 2680 15566 103514796 83 Linux

◮ Neue Festplatten haben keine Partitionstabelle! 17 / 43 Partitionierung mit fdisk Wie findet man eingesteckte Wechseldatentr¨ager?

Unix- Praktikum Systemmeldungen (u.a. ¨uber ein-/ausgesteckte Ger¨ate): Carsten Gn¨orlich ◮ /var/log/syslog bzw. /var/log/messages

Werkzeuge tee /dev/shm Ausgeben von neuen Meldungen: watch Dateisysteme tail -f: gebe neu hinzugekommene Zeilen einer Datei aus Neues Ger¨at dmesg /var/log, tail -f mkfs.ext4 Uberwachen¨ einer log-Datei: mount, umount /etc/fstab Label > sudo tail -f /var/log/syslog mount auf Abbildern

18 / 43 Partitionierung mit fdisk Wie findet man eingesteckte Wechseldatentr¨ager?

Unix- Praktikum Beispiel: Carsten Gn¨orlich > sudo tail -f /var/log/syslog Werkzeuge tee /dev/shm Memorystick einstecken, auf Ausgaben warten: watch Dateisysteme Jan 14 16:50:18 wind kernel: [15341.080099] 2-4: new high speed USB device using ehci_hcd Neues Ger¨at Jan 14 16:50:18 wind kernel: [15341.215791] usb 2-4: New USB device found, idVendor=0951, idProduct=1615 dmesg Jan 14 16:50:18 wind kernel: [15341.215800] usb 2-4: New USB device strings: Mfr=1, Product=2, /var/log, tail -f Jan 14 16:50:18 wind kernel: [15341.215806] usb 2-4: Product: DT HyperX mkfs.ext4 Jan 14 16:50:18 wind kernel: [15341.215811] usb 2-4: Manufacturer: Kingston mount, umount Jan 14 16:50:18 wind kernel: [15341.215815] usb 2-4: SerialNumber: 2008012500000000000008B2 /etc/fstab Label ... viele weitere Ausgaben ... mount auf Jan 14 16:50:23 wind kernel: [15346.218847] sd 9:0:0:0: Attached scsi generic sg3 type 0 Abbildern Jan 14 16:50:23 wind kernel: [15346.220433] sd 9:0:0:0: [sdc] 3928064 512-byte logical blocks: Jan 14 16:50:23 wind kernel: [15346.221161] sd 9:0:0:0: [sdc] Write Protect is off ... weitere Ausgaben ...

◮ Ger¨at ist /dev/sdc • zur Sicherheit sollte man noch Hersteller und Gr¨oße prufen¨

19 / 43 Partitionierung mit fdisk fdisk - Ubersicht¨

Unix- Praktikum fdisk ist ein interaktives Kommandozeilenprogramm Carsten ◮ Gn¨orlich vgl. bc, gnuplot ◮ nach Eingabe eines Kommandos beginnt ein Dialog mit Werkzeuge tee mehreren Fragen und Vorgaben /dev/shm watch ◮ Hilfekommando “m” zeigt m¨ogliche Funktionen Dateisysteme Neues Ger¨at > sudo fdisk /dev/sdb dmesg /var/log, tail -f mkfs.ext4 Command (m for help): m mount, umount /etc/fstab Command action Label mount auf a toggle a bootable flag Abbildern b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu ...

20 / 43 Partitionierung mit fdisk fdisk - Partitionen l¨oschen mit “d”

Unix- Command (m for help): d Praktikum Partition number (1-5): 5 Carsten Gn¨orlich Command (m for help): d

Werkzeuge Partition number (1-5): 2 tee /dev/shm watch Command (m for help): d Dateisysteme Selected partition 1 Neues Ger¨at dmesg /var/log, tail -f Command (m for help): p mkfs.ext4 mount, umount /etc/fstab Disk /dev/sdc: 2011 MB, 2011168768 bytes Label mount auf [... mehr Ausgaben ...] Abbildern Device Boot Start End Blocks Id System

Command (m for help):

◮ alle Partitionen sind jetzt weg

21 / 43 Partitionierung mit fdisk fdisk - Neue Partitionstabelle anlegen mit “o”

Unix- Praktikum Hinweis: Wenn man ohnehin alle Partitionen l¨oschen will, Carsten ist das Anlegen einer neuen Partitionstabelle schneller: Gn¨orlich

Werkzeuge Command (m for help): o tee /dev/shm Building a new DOS disklabel with disk identifier 0x490a40e8. watch Changes will remain in memory only, until you decide to write them. Dateisysteme After that, of course, the previous content won’t be recoverable. Neues Ger¨at dmesg /var/log, tail -f Command (m for help): p mkfs.ext4 mount, umount /etc/fstab Label Disk /dev/sdb: 8004 MB, 8004304896 bytes mount auf [... mehr Ausgaben ...} Abbildern

Device Boot Start End Blocks Id System

Command (m for help):

22 / 43 Partitionierung mit fdisk Ziel: Wir wollen zwei Partitionen auf dem USB-Stick anlegen

Unix- Praktikum ◮ eine prim¨are zum Datenaustausch mit Windows Carsten Gn¨orlich (mit Windows-FAT32-Dateisystem)

Werkzeuge ◮ eine logische zur Nutzung innerhalb von Linux tee /dev/shm ◮ mit Linux-ext4-Dateisystem watch ◮ Dateisysteme Windows kann dies nicht lesen Neues Ger¨at ◮ aber ext4 kann im Gegensatz zu FAT32 dmesg /var/log, tail -f Unix-Berechtigungen speichern mkfs.ext4 mount, umount /etc/fstab Label mount auf Abbildern

23 / 43 Partitionierung mit fdisk fdisk - Prim¨are Partition anlegen mit “n”,”p”

Unix- Command (m for help): n Praktikum Partition type: Carsten p primary (0 primary, 0 extended, 4 free) Gn¨orlich e extended

Werkzeuge Select (default p): p tee Partition number (1-4, default 1): /dev/shm watch Using default value 1 Dateisysteme First sector (2048-3928063, default 2048): Neues Ger¨at Using default value 2048 dmesg /var/log, tail -f Last sector, +sectors or +size{K,M,G} (2048-3928063, mkfs.ext4 default 3928063): +512M mount, umount /etc/fstab Command (m for help): p Label mount auf Abbildern Disk /dev/sdc: 2011 MB, 2011168768 bytes [... mehr Ausgaben ...]

Device Boot Start End Blocks Id System /dev/sdc1 2048 1050623 524288 83 Linux

◮ primare Partition mit 512M Große angelegt ¨ ¨ 24 / 43 Partitionierung mit fdisk fdisk - Erweiterte Partition anlegen mit “n”,”e”

Unix- Command (m for help): n Praktikum Partition type: Carsten p primary (1 primary, 0 extended, 3 free) Gn¨orlich e extended

Werkzeuge Select (default p): e tee Partition number (1-4, default 2): /dev/shm watch Using default value 2 Dateisysteme First sector (1050624-3928063, default 1050624): Neues Ger¨at Using default value 1050624 dmesg /var/log, tail -f Last sector, +sectors or +size{K,M,G} (1050624-3928063, mkfs.ext4 default 3928063): mount, umount /etc/fstab Using default value 3928063 Label mount auf Command (m for help): p Abbildern [... mehr Ausgaben ...] Device Boot Start End Blocks Id System /dev/sdc1 2048 1050623 524288 83 Linux /dev/sdc2 1050624 3928063 1438720 5 Extended

◮ erweiterte Partition uber¨ Rest des Datentr¨agers angelegt ◮ Achtung: Dies ist nur die “Hulle”¨ fur¨ log. Partitionen! 25 / 43 Partitionierung mit fdisk fdisk - Logische Partition anlegen mit “n”,”l”

Unix- Command (m for help): n Praktikum Partition type: Carsten p primary (1 primary, 1 extended, 2 free) Gn¨orlich l logical (numbered from 5)

Werkzeuge Select (default p): l tee Adding logical partition 5 /dev/shm watch First sector (1052672-3928063, default 1052672): Dateisysteme Using default value 1052672 Neues Ger¨at Last sector, +sectors or +size{K,M,G} (1052672-3928063, dmesg /var/log, tail -f default 3928063): +1G mkfs.ext4 Command (m for help): p mount, umount /etc/fstab [... weitere Ausgaben ...] Label mount auf Device Boot Start End Blocks Id System Abbildern /dev/sdc1 2048 1050623 524288 83 Linux /dev/sdc2 1050624 3928063 1438720 5 Extended /dev/sdc5 1052672 3149823 1048576 83 Linux

◮ logische Partition mit 1G Gr¨oße angelegt ◮ ca. 512M noch frei fur¨ weitere log. Partitionen 26 / 43 Partitionierung mit fdisk fdisk - Partitions-Typ setzen mit “t”

Unix- Command (m for help): t Praktikum Partition number (1-5): 1 Carsten Gn¨orlich Hex code (type L to list codes): 0c Changed system type of partition 1 to c (W95 FAT32 (LBA)) Werkzeuge tee /dev/shm Command (m for help): p watch [... mehr Ausgaben ...] Dateisysteme Device Boot Start End Blocks Id System Neues Ger¨at dmesg /dev/sdc1 2048 1050623 524288 c W95 FAT32 (LBA) /var/log, tail -f mkfs.ext4 /dev/sdc2 1050624 3928063 1438720 5 Extended mount, umount /dev/sdc5 1052672 3149823 1048576 83 Linux /etc/fstab Label mount auf Abbildern ◮ /dev/sdc1 soll mit FAT32 verwendet werden ◮ ist nur Hinweis fur¨ Betriebssystem, keine Formatierung!

27 / 43 Partitionierung mit fdisk fdisk - Partition bootf¨ahig machen mit “a”

Unix- Command (m for help): a Praktikum Partition number (1-5): 1 Carsten Gn¨orlich Command (m for help): p

Werkzeuge tee Disk /dev/sdc: 2011 MB, 2011168768 bytes /dev/shm watch [... weitere Ausgaben ...] Dateisysteme Neues Ger¨at Device Boot Start End Blocks Id System dmesg /var/log, tail -f /dev/sdc1 * 2048 1050623 524288 c W95 FAT32 (LBA) mkfs.ext4 mount, umount /dev/sdc2 1050624 3928063 1438720 5 Extended /etc/fstab /dev/sdc5 1052672 3149823 1048576 83 Linux Label mount auf Abbildern Einige (kaputte) Bios-Versionen k¨onnen Partitionen nur booten, wenn das “Boot”-Flag gesetzt ist. ◮ auf der Systemplatte die Partition bootf¨ahig machen, in der /boot enthalten ist! ◮ fur¨ den Memorystick u. andere Ger¨ate ist dies sinnlos.

28 / 43 Partitionierung mit fdisk fdisk - Partitionstabelle mit “w” speichern

Unix- Command (m for help): w Praktikum The partition table has been altered! Carsten Gn¨orlich Calling ioctl() to re-read partition table. Werkzeuge tee /dev/shm WARNING: If you have created or modified any DOS 6.x watch partitions, please see the fdisk manual page for additional Dateisysteme information. Neues Ger¨at dmesg Syncing disks. /var/log, tail -f mkfs.ext4 mount, umount /etc/fstab • Label vor dem “w” sind Anderungen¨ nur im RAM mount auf Abbildern ◮ man k¨onnte es sich jetzt noch anders uberlegen¨ • nach dem “w” wird fdisk beendet

29 / 43 Partitionierung mit fdisk Systemplatte partitionieren

Unix- Praktikum Partition ¨andern aus der das System gerade l¨auft: Carsten Gn¨orlich ◮ Live-DVD verwenden

Werkzeuge ◮ Daten vorher sichern! tee /dev/shm watch Dateisysteme Neues Ger¨at dmesg /var/log, tail -f mkfs.ext4 mount, umount /etc/fstab Label mount auf Abbildern

30 / 43 Partitionen Neue Partitionen verwenden

Unix- Praktikum Wir haben jetzt einen partitionierten Datentr¨ager: Carsten Gn¨orlich >sudo fdisk -l /dev/sdc [sudo] password for cg: Werkzeuge tee /dev/shm Disk /dev/sdc: 2011 MB, 2011168768 bytes watch 62 heads, 62 sectors/track, 1021 cylinders, total 3928064 sectors Dateisysteme Neues Ger¨at Units = sectors of 1 * 512 = 512 bytes dmesg Sector size (logical/physical): 512 bytes / 512 bytes /var/log, tail -f mkfs.ext4 I/O size (minimum/optimal): 512 bytes / 512 bytes mount, umount /etc/fstab Disk identifier: 0x5257b8c3 Label mount auf Abbildern Device Boot Start End Blocks Id System /dev/sdc1 * 2048 1050623 524288 c W95 FAT32 (LBA) /dev/sdc2 1050624 3928063 1438720 5 Extended /dev/sdc5 1052672 3149823 1048576 83 Linux

◮ aber noch keine Dateisysteme darauf!

31 / 43 Partitionen Neue Partition mit Dateisystem versehen

Unix- Praktikum mkfs.ext4 - Partition mit Ext4-Dateisystem versehen Carsten Gn¨orlich ◮ nennt man auch “initialisieren”/”formatieren”

Werkzeuge tee /dev/shm > sudo mkfs.ext4 -m 0 /dev/sdc5 watch Dateisysteme Neues Ger¨at dmesg • -m 0 unterdruckt¨ Reservieren von Bl¨ocken; /var/log, tail -f mkfs.ext4 Reservieren ist nur sinnvoll bei der Systempartition mount, umount /etc/fstab Label mount auf Abbildern

32 / 43 Partitionen Neues Dateisystem einh¨angen

Unix- Praktikum mount - Dateisystem einh¨angen Carsten Gn¨orlich > sudo mount /dev/sdc5 /mnt Werkzeuge tee /dev/shm > df -h watch Dateisystem Size Used Avail Use% Eingeh¨angt auf Dateisysteme Neues Ger¨at /dev/sda1 111G 87G 19G 83%/ dmesg /var/log, tail -f [... weitere Ausgaben ...] mkfs.ext4 mount, umount /dev/sdc5 1008M 34M 975M 4% /mnt /etc/fstab Label mount auf Abbildern • mount h¨angt Blockdevice (mit Dateisystem) im Zielverzeichnis ein ◮ Verzeichnis kann danach genutzt werden • Zielverzeichnis muß existieren • Einh¨angen bleibt nur bis zum Reboot bestehen

33 / 43 Partitionen Neues Dateisystem wieder aush¨angen

Unix- Praktikum umount - Dateisystem aush¨angen Carsten Gn¨orlich > sudo umount /dev/sdc5 Werkzeuge oder tee /dev/shm > sudo umount /mnt watch Dateisysteme Neues Ger¨at dmesg /var/log, tail -f mkfs.ext4 mount, umount /etc/fstab Label mount auf Abbildern

34 / 43 Partitionen Neues Dateisystem aush¨angen - Problembehebung

Unix- Praktikum Typische Fehlermeldung und Behebung: Carsten Gn¨orlich > sudo mount /dev/sdc5 /mnt

Werkzeuge > cd /mnt # Kommandozeile ist im Verzeichnis tee > sudo umount /mnt /dev/shm watch umount: /mnt: device is busy. Dateisysteme (In some cases useful info about processes that use Neues Ger¨at the device is found by lsof(8) or fuser(1)) dmesg /var/log, tail -f > cd # Kommandozeile aus Verzeichnis nehmen mkfs.ext4 > sudo umount /mnt mount, umount /etc/fstab Label mount auf Abbildern • kein Prozeß darf Dateien oder Verzeichnisse im auszuh¨angenden Verzeichnis mehr ge¨offnet haben ◮ betreffende Programme beenden ◮ in allen Kommandozeilen aus (Unter-)Verzeichnissen herausgehen

35 / 43 Partitionen Neues Dateisystem permanent einh¨angen

Unix- Praktikum /etc/fstab: Konfigurationsdatei des Dateisystems Carsten Gn¨orlich > cat /etc/fstab Werkzeuge # tee proc /proc proc defaults 0 0 /dev/shm watch /dev/sda5 / ext4 errors=remount-ro 0 Dateisysteme /dev/sda1 /boot ext4 defaults 0 2 Neues Ger¨at /dev/sda8 /export ext4 defaults 0 2 dmesg /var/log, tail -f /dev/sda7 none swap sw 0 0 mkfs.ext4 mount, umount /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /etc/fstab Label mount auf Abbildern ◮ Vorsicht: fstab defekt → System bootet ggf. nicht! ◮ siehe man fstab, mount Hinweis: Fur¨ Wechseldatentr¨ager ist das Eintragen in der fstab unsinnig!

36 / 43 Partitionen Neues Dateisystem permanent einh¨angen

Unix- Praktikum Mountpoint (Zielverzeichnis) anlegen: Carsten Gn¨orlich > sudo mkdir /daten

Werkzeuge /etc/fstab erweitern: tee /dev/shm watch > cat /etc/fstab Dateisysteme # Neues Ger¨at proc /proc proc defaults 0 0 dmesg /var/log, tail -f /dev/sda5 / ext4 errors=remount-ro 0 mkfs.ext4 mount, umount /dev/sda1 /boot ext4 defaults 0 2 /etc/fstab /dev/sda8 /export ext4 defaults 0 2 Label mount auf /dev/sdc5 /daten ext4 defaults 0 2 Abbildern [... weitere Eintr¨age...]

mount einmalig aktivieren: sudo mount /daten

• System erst herunterfahren wenn dies fehlerfrei geht ◮ ab jetzt wird die Partition bei jedem Start eingeh¨angt 37 / 43 Dateisystem-Label Potentielle Probleme bei Ger¨aten mit 2 oder Platten

Unix- Praktikum /dev/sda und /dev/sdb k¨onnen sich vertauschen: Carsten Gn¨orlich • Die erste erkannte Platte wird sda, die zweite sdb

Werkzeuge ◮ Problem wenn Platten nicht immer in der selben tee /dev/shm Reihenfolge online gehen watch Dateisysteme Neues Ger¨at → dmesg /dev/sda defekt /dev/sdb wird zu /dev/sda /var/log, tail -f mkfs.ext4 ◮ mount, umount in beiden F¨allen wird das System nicht mehr starten /etc/fstab Label (z.B. auch wenn Linux nur auf /dev/sdb installiert ist) mount auf Abbildern

38 / 43 Dateisystem-Label Abhilfe: Dateisytem uber¨ “Label” identifizieren

Unix- Praktikum Beim Neuanlegen des Dateisystems: Carsten Gn¨orlich > sudo mkfs.ext4 -m 0 -L "Daten" /dev/sdc5

Werkzeuge tee Nachtr¨aglich fur¨ ein bestehendes Dateisystem: /dev/shm watch > sudo e2label /dev/sdc5 "Daten" Dateisysteme Neues Ger¨at dmesg Danach kann Dateisystem uber¨ das “Label” verwendet werden: /var/log, tail -f mkfs.ext4 > sudo mount LABEL=Daten /mnt mount, umount /etc/fstab Label mount auf oder in der fstab: Abbildern LABEL=Daten /daten ext3 defaults 0 2 ◮ Ger¨atename (/dev/sdc5) wird irrelevant ◮ alternativer Weg mit zuf¨alligen “Labels”: UUID=... (nutze blkid zum Anzeigen der UUID)

39 / 43 Virtualisierte Festplatten Wie mountet man Partitionen aus virtuellen Festplatten?

Unix- mount arbeitet auf Dateisystemen (= typischerw. Partitionen), Praktikum nicht auf gesamten Festplatten / Partitionstabellen Carsten Gn¨orlich Virtuelle Festplatten kann man mit fdisk ansehen: Werkzeuge tee > /sbin/fdisk -l ubuntu.img /dev/shm watch Dateisysteme Disk ubuntu.img: 17.2 GB, 17179869184 bytes Neues Ger¨at 255 heads, 63 sectors/track, 2088 cylinders, total 33554432 sectors dmesg /var/log, tail -f Units = sectors of 1 * 512 = 512 bytes mkfs.ext4 Sector size (logical/physical): 512 bytes / 512 bytes mount, umount /etc/fstab I/O size (minimum/optimal): 512 bytes / 512 bytes Label mount auf Disk identifier: 0x9e93ecc4 Abbildern Device Boot Start End Blocks Id System ubuntu.img1 * 2048 25391103 12694528 83 Linux ubuntu.img2 25393150 33552383 4079617 5 Extended ubuntu.img5 25393152 33552383 4079616 82 Linux swap

◮ wie greift man auf die Partitionen zu? 40 / 43 Virtualisierte Festplatten Wie mountet man Partitionen aus virtuellen Festplatten?

Unix- Praktikum Wir haben folgende Informationen (aus der fdisk-Ausgabe): Carsten Gn¨orlich ...

Werkzeuge Sector size (logical/physical): 512 bytes / 512 bytes tee ... /dev/shm watch Device Boot Start End Blocks Id System Dateisysteme ubuntu.img1 * 2048 25391103 12694528 83 Linux Neues Ger¨at dmesg /var/log, tail -f mkfs.ext4 • die erste prim¨are Partition beginnt bei Startsektor 2048. mount, umount /etc/fstab Label • ein Sektor entspricht 512 Bytes mount auf Abbildern ◮ die erste Partition beginnt in Byte 2048 · 512 in der Abbild-Datei! ◮ diesen “Offset” k¨onnen wir mount mitteilen!

41 / 43 Virtualisierung unter Ubuntu Daten aus der VM herausholen

Unix- Praktikum 1. VM herunterfahren! Carsten Gn¨orlich 2. Dateisystem-Abbild der VM mounten: > sudo mount ubuntu.img /mnt -r -t ext4 -o Werkzeuge tee loop,offset=$((2048*512)) /dev/shm watch 3. Daten aus /mnt herauskopieren Dateisysteme 4. > sudo umount /mnt Neues Ger¨at dmesg /var/log, tail -f mkfs.ext4 Erl¨auterung der mount-Optionen: mount, umount ◮ /etc/fstab -r: read-only, wir k¨onnen lesen, aber nichts ver¨andern Label mount auf ◮ -o loop Abbildern : Das Loop-Device wandelt die Abbild-Datei in ein Blockger¨at um, damit mount sie bearbeiten kann. ◮ -o ..., offset=...: Das Dateisystem beginnt nicht am Anfang des Blockger¨ats, sondern erst die angegebene Anzahl Bytes sp¨ater! ◮ -t ext4: Mit diesem Dateisystem ist die Partition formatiert 42 / 43 Ende der heutigen Vorlesung

Unix- Praktikum

Carsten Gn¨orlich

Werkzeuge tee /dev/shm watch Vielen Dank furs¨ Zuh¨oren! Dateisysteme Neues Ger¨at dmesg /var/log, tail -f Bis n¨achste Woche! mkfs.ext4 mount, umount /etc/fstab Label mount auf Abbildern

43 / 43