skweez.net

Alles skweez?

1001111001011101011100100100101

Alles zu “archlinux”

20.11.2010

System auf GUID Partition Table umstellen

von mks.

Note: An English version of this article is available.

Disclaimer: Dieser Artikel ist keine Schritt-für-Schritt-Anleitung für Anfänger! Ich habe alles auf Arch Linux durchgeführt, darum können die Pfadangaben auf Ubuntu leicht abweichen. Veränderungen an der Partitionstabelle und am Master Boot Record sind immer riskant! Mache Backups! Ich bin nicht verantwortlich für verlorene Daten!

Dieser Artikel beschreibt, wie man ein Linux-System von einer MSDOS-Partitionstabelle auf den neuen GUID Partition Table-Standard (GPT) umstellen kann. GPT ist Teil der EFI-Spezifikation und wird somit wahrscheinlich sehr bald in den meisten Desktops und Notebooks Einzug halten. Apple benutzt EFI und GPT bereits großflächig in seinen Systemen und auch IA64-basierte Server und Workstations setzen auf den neuen Standard. Aber auch wenn man noch ein BIOS-basiertes System sein Eigen nennt, kann man GPT nutzen.

MSDOS-Partitionstabellen werden im sog. Master Boot Record (MBR) gespeichert. Dieser ist der erste Sektor auf der Festplatte und somit 512 Byte groß. Der MBR enthält aber auch noch den Boot-Loader, der bereits 440 Byte in Anspruch nimmt. Die Partitionstabelle muss seit eh und je in 64 Byte passen. Das ist der Grund, warum man eigtl. höchstens vier Partitionen anlegen kann (dabei benötigt jeder Eintrag genau 16 Byte). Weil die Größe einer Partition in 32 Bit gespeichert wird, kann jede auch “nur” 2 Terabyte groß sein.

Wer von den Einschränkungen durch MBR-Partitionstabellen die Nase voll hat, insbesondere von der Begrenzung auf vier primäre Partitionen und den Hack mit erweiterten Partitionen, der kann sich GPT als Alternative anschauen. Mit GPT kann man 128 Partitionen anlegen, jede maximal 8192 Exabyte groß.

Was man braucht

Das fdisk-Tool kann nicht mit GPT umgehen. Man braucht daher gdisk, das aber nahezu gleich bedient wird. Außerdem benötigt man einen GPT-kompatiblen Boot-Loader. Der alte GRUB 0.97 benötigt dazu einen Patch, GRUB2 kann aber einwandfrei mit GPT umgehen. Ich benutze allerdings extlinux, das mit syslinux daherkommt, weil ich das Konfigurationssystem von GRUB2 nicht mag.

Wenn man das erste Mal auf GPT umstellt, muss man außerdem die erste Partition um 33 Sektoren verschieben (das ist die Größe, die die neue Tabelle braucht). Wenn man, wie ich, eine extra /boot-Partition hat, dann ist das kein Problem, ansonsten sollte man evtl. bis zur nächsten Neuinstallation warten. ;-)

Kombatibilität

Linux kann GPT-formatierte Platten mounten und auch davon booten. Man sollte aber vorher prüfen, ob der Kernel mit GPT-Unterstützung kompiliert wurde.

$ zgrep CONFIG_EFI_PARTITION /proc/config.gz

CONFIG_EFI_PARTITION=y # we're ready to go

Auch FreeBSD kann von GPT booten, was ich aber nicht getestet habe. Windows kann ohne Weiteres nicht auf BIOS-basierten Systemen von GPT-Platten booten! Wenn sich also Linux die Platte mit Windows teilt, sollte man noch darauf verzichten.

Let’s rock’n'roll

Zuerst habe ich syslinux und gdisk aus den Repositories installiert. Man braucht mindestens syslinux 4.0. Wenn man noch nicht Ubuntu 10.10 installiert hat, muss man es daher selbst kompilieren.

Dann habe ich extlinux in den MBR mit herkömmlicher Partitionstabelle installiert, um zu testen ob es überhaupt geht und eine funktionierende Konfiguration zu erstellen.
Nicht vergessen, /boot zu mounten; sda an das eigene System anpassen!

$ dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda # Copy bootloader to MBR
$ mkdir /boot/extlinux
$ extlinux --install /boot/extlinux
$ cp /usr/lib/syslinux/menu.c32 /boot/extlinux

Nun muss man /boot/extlinux/extlinux.conf anlegen und entsprechend dem eigenen System anpassen. Das manual `man syslinux` hilft dabei. Meine sieht folgendermaßen aus. Deine muss sicherlich anders aussehen!

default menu.c32
prompt 0
menu title Arch Linux
timeout 30
 
label linux
 menu label Linux
 kernel ../vmlinuz26
 append initrd=../kernel26.img root=/dev/sda3 ro resume=/dev/sda2 quiet

Nachdem die extlinux-Konfiguration funktionierte, habe ich die System Rescue CD gebootet. Die folgenden Schritte kann man nicht auf dem laufenden System machen, da man die Partitionstabelle verändern und dann mit der neuen Tabelle den Boot-Loader installieren muss. Der Kernel liest die Tabelle aber erst beim Reboot neu ein, der aber nicht funktioniert, solange man den Loader noch nicht installiert hat.

Auf dem laufenden Live-CD-System habe ich meine Partitionen eingehängt und /boot gesichert.

$ mkdir /mnt/host
$ mount /dev/sda3 /mnt/host
$ mount /dev/sda1 /mnt/host/boot
$ cd /mnt/host
$ tar cf boot.tar boot/
$ umount boot/

Jetzt habe ich gdisk gestartet. Es bringt beim ersten Start die Meldung, dass man eine MBR-Tabelle hat, welche es konvertiert hat und dass man die erste Partition löschen oder verkleinern/verschieben muss. Also löscht man sie und legt sie weiter hinten neu an.

$ gdisk /dev/sda
Command (? for help): d
Partition number (1-4): 1
 
Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-312581774, default = 34) or {+-}size{KMGTP}: 
Last sector (34-112454, default = 112454) or {+-}size{KMGTP}: 
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): 
Changed type of partition to 'Linux/Windows data'
 
Command (? for help): x
 
Expert command (? for help): a
Partition number (1-4): 1
Known attributes are:
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount
 
Toggle which attribute field (0-63, 64 or <Enter> to exit): 2
 
Attribute value is 0000000000000004. Set fields are:
2 (legacy BIOS bootable)
 
Command (? for help): w

Jetzt hat man die Partitionstabelle zu einer GPT konvertiert. Letzter Schritt: den Inhalt von /boot wiederherstellen und extlinux nochmal installieren, diesmal aber mit dem Loader-Code für GPTs (gptmbr.bin).

$ mkfs.ext2 /dev/sda1
$ mount /dev/sda1 /mnt/host/boot
$ cd /mnt/host
$ tar xf boot.tar
$ dd if=/mnt/host/usr/lib/syslinux/gptmbr.bin of=/dev/sda
$ extlinux --install /mnt/host/boot/extlinux

Wenn alles glatt gelaufen ist, hat man nun ein GPT-System. Viel Glück! :-)

$ reboot

Referenzen (Englisch)

20.11.2010

Using a GUID Partition Table

von mks.

Disclaimer: This article is not a step-by-step guide for beginners! I did this on Arch Linux, the paths may differ slightly on Ubuntu. Playing with the master boot record and partition table of your system is always a risk. Make a backup! I don’t take any liability for your lost data!

This article describes, how you can switch your system from the old MSDOS style partition table to the new GUID Partition Table (GPT) format. GPT is part of the EFI specification and will therefor probably become the standard for partitioning in most desktop computers in the near future. Apple is already using EFI and GPT in their desktops and notebooks and IA64 based servers and workstations do too. However, you can also use GPT on your BIOS based system.

MSDOS style partition tables are stored in the so called Master Boot Record (MBR), the first sector (512 Bytes) on the disk. It also contains the boot loader, which already takes up 440 Bytes. The partition table must fit into 64 Bytes. This is the reason why you can create only 4 partitions at max (with each entry taking up 16 Bytes of space) in an MBR partition table. Because the size of MBR partitions is stored as 32 bit, each one can be 2 TB large.

If you are, like me, fed up with the limits imposed by MBR partition tables and don’t want to use that hack with extended partitions anymore, you may want to try GPT. A GPT can hold 128 partitions each with a maximum of 8192 Exabytes in size.

What you need

The fdisk tool can not handle GPT. You will need gdisk, which is used in almost the same way. You will also need a compatible boot loader: the old grub 0.97 needs a patch, but grub2 handles GPT fine. However I use extlinux from the syslinux package (>=4.0), because I don’t like the complex configuration system of grub2.

You will also need to move your first partition by 33 sectors (because that’s the space, GPT takes up). If you have a separate boot partition, like me, this is pretty easy. If you don’t, you should probably wait until the next fresh reinstall. ;-)

Compatability

Linux can use GPT and boot from it. Make sure your kernel is compiled with the necessary support:

$ zgrep CONFIG_EFI_PARTITION /proc/config.gz

CONFIG_EFI_PARTITION=y # we're ready to go

FreeBSD can also boot from GPT, but I didn’t test it. Windows cannot boot from GPT partitions in BIOS systems! So if you have a dual booting machine with Windows, you shouldn’t do this.

Let’s rock’n'roll

First, I installed syslinux and gdisk from the repository. You will need syslinux 4.0 or newer. If you did not already update to Ubuntu 10.10, you will have to build it yourself.

I then installed extlinux with my MBR still intact, so I could test if it works. Change sda to your needs! Remember to mount your boot partition!

$ dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda # Copy bootloader to MBR
$ mkdir /boot/extlinux
$ extlinux --install /boot/extlinux
$ cp /usr/lib/syslinux/menu.c32 /boot/extlinux

Create and edit /boot/extlinux/extlinux.conf as described in `man syslinux`, fitting your system. Mine looks like this. Yours should most probably look different!

default menu.c32
prompt 0
menu title Arch Linux
timeout 30
 
label linux
 menu label Linux
 kernel ../vmlinuz26
 append initrd=../kernel26.img root=/dev/sda3 ro resume=/dev/sda2 quiet

After I had a working extlinux config, I rebooted with System Rescue CD. You can not do the following steps on your running system, because you will need to change the partition table and install the boot loader afterwards using the new table. But the kernel will only reload the table at reboot. However you cannot reboot into your system as long as you didn’t install the boot loader.

With the sysresccd running, I mounted my partitions and backed up my /boot.

$ mkdir /mnt/host
$ mount /dev/sda3 /mnt/host
$ mount /dev/sda1 /mnt/host/boot
$ cd /mnt/host
$ tar cf boot.tar boot/
$ umount boot/

Now I started gdisk. It will tell you, that you have a MBR table, which it converted to GPT and that you will have to delete or move your first partition. Delete and recreate it accepting the standards and mark it as legacy BIOS bootable.

$ gdisk /dev/sda
Command (? for help): d
Partition number (1-4): 1
 
Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-312581774, default = 34) or {+-}size{KMGTP}: 
Last sector (34-112454, default = 112454) or {+-}size{KMGTP}: 
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): 
Changed type of partition to 'Linux/Windows data'
 
Command (? for help): x
 
Expert command (? for help): a
Partition number (1-4): 1
Known attributes are:
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount
 
Toggle which attribute field (0-63, 64 or <Enter> to exit): 2
 
Attribute value is 0000000000000004. Set fields are:
2 (legacy BIOS bootable)
 
Command (? for help): w

You have now converted your partition table to GPT. Last step: restore the contents of your boot partition and install extlinux again, but this time with the boot loader code for GPT partitions (gptmbr.bin).

$ mkfs.ext2 /dev/sda1
$ mount /dev/sda1 /mnt/host/boot
$ cd /mnt/host
$ tar xf boot.tar
$ dd if=/mnt/host/usr/lib/syslinux/gptmbr.bin of=/dev/sda
$ extlinux --install /mnt/host/boot/extlinux

If everything went well, you can now reboot into your GPT system. Good luck. :-)

$ reboot

References

13.11.2010

Jag

von ritze.

Jag ist ein typisches Spiel für zwischendurch. Man sitzt vor einem Gebilde aus Steinen, die man versuchen muss durch geschicktes vertauschen der Nachbarsteine zum Einsturz zu bringen. Dabei müssen mindestens drei gleiche Steine in einer Reihe bzw. Spalte sein. Sobald dies zutrifft, explodieren die Steine und neue kommen von oben nach. Bedingung ist jedoch, dass nach jedem Zug mindestens ein Gebilde explodiert, ansonsten ist der Zug ungültig. Um das Spiel zu gewinnen, muss man Steine an bestimmten stellen ein bzw. zweimal zum Explodieren bringen, so die Grundidee. Damit das Spiel auf lange Sicht nicht zu öde wird, gibt es spezielle Steine und Werkzeuge, die man durch sammeln von Punkten freischalten kann. Auf diese Werkzeuge ist man ab und zu angewiesen, da ansonsten der Countdown einem Einholt.

Jag in Aktion

Ein nettes Feature ist, wenn das Fenster den Fokus verliert, dass das Spiel dann wie bei manchen GNOME-Spielen pausiert und das Spiel erst bei einem Klick auf die entsprechende Schaltfläche fortgeführt wird. Zudem gibt es noch einen Leveleditor, an dem man sich neue Herausforderungen erstellen kann, falls einem mal die Levels ausgehen oder einem die Zusatzlevels auf der Homepage zu langweilig erscheinen.

Für Archlinuxbenutzer steht im AUR bereits ein Paket zur Verfügung. Ubuntu- und Debianbenutzer können sich auf der Downloadseite ein DEB-Paket herunterladen. Daneben stehen noch RPM-Pakete und der Quelltext zur Verfügung.

Ein weiteres nettes Spiel von den Machern von Jag ist Bubble Chains, das ich bis jetzt jedoch unter Archlinux noch nicht zum laufen gebracht habe.

Falls euch das Spiel gefällt, könnt ihr ja den Entwicklern etwas spenden. Einen Spendeknopf findet man direkt auf der Homepage.

27.09.2010

Desktopwallpaper bereits bei der Anmeldung anzeigen

von ritze.

Den Desktoprechner benutze lediglich ich als Benutzer. Daher möchte ich GDM ein wenig personalisieren, zum Beispiel soll mir GDM mein auf dem Desktop benutztes Hintergrundbild anzeigen und nicht jedes mal das langweilige Standardhintergrundbild. Dazu legt man als erstes ein kleines Skript mit den Namen .wallpaper.sh im Heimverzeichnis an:

#!/bin/bash
 
ln -s -f "$(gconftool-2 --get /desktop/gnome/background/picture_filename)" $HOME/.wallpaper
 
exit

Danach editiert man die bereits vorhandene Datei /etc/gdm/PostSession/Default.

#!/bin/sh
 
if [ ${USERNAME} = "max" ]; then
  su $USERNAME -c /home/$USERNAME/.wallpaper.sh
fi
 
exit 0

Somit wird erreicht, dass nach jeder Abmeldung des Benutzers max das eben angelegte Skript .wallpaper.sh im Heimverzeichnis ausgeführt wird. Durch dieses wird ein Link zum aktuell benutzten Hintergrundbild vom Benutzer max angelegt. Nun muss man nur noch GDM mitteilen, dass er .wallpaper als Hintergrundbild benutzen soll:

sudo -u gdm gconftool-2 --type str --set /desktop/gnome/background/picture_filename /home/max/.wallpaper

Natürlich sollte man den Benutzer max mit seinem eigenen Benutzername austauschen.

21.07.2010

Cover thumbnailer in Version 0.8 erschienen

von ritze.

Mit Cover thumbnailer kann man sich die Ordnersymbole im Nautilus auf hübschen. Dabei unterscheidet das Python Script zwischen Musikordner, Bildordner und andere Ordner.

Musikordner

Vor gut zwei Tagen ist eine neue Version von Cover thumbnailer veröffentlicht worden. Neuerungen sind zum einen bei den Musikordnern eine Mosaikdarstellung der Alben, die in dem Ordner enthalten sind. In meinem Fall wäre das der Interpretenordner. Zum anderen kann man die Anzahl der Bilder auf der Mappe für Ordner mit Bilder bestimmen.

Für Arch Linux habe ich das AUR auf die aktuelle Version aktualisiert.

Ubuntubenutzer können sich die neuste Version per PPA auf den Rechner besorgen:

sudo add-apt-repository ppa:flozz/flozz
sudo apt-get update
sudo apt-get install cover-thumbnailer

Zudem stehen auf der Homepage noch Pakete für Debian, Frugalware und NuTyX zur Verfügung.

17.06.2010

Benutzername auf der Benutzerliste von GDM2 verbergen

von ritze.

Um bestimmte Benutzer auf der Benutzerliste vom Loginmanager GDM2 zu verbergen, muss man die jeweiligen Benuzter in die Konfigurationsdatei /etc/gdm/gdm.schemas in die Zeile

    <schema>
      <key>greeter/Exclude</key>
      <signature>s</signature>
      <default>bin, root, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator, nobody, nobody4, noaccess, postgres, pvm, rpm, nfsnobody, pcap</default>
    </schema>

hinzufügen. Man kann sich jedoch weiterhin mit diesen Benuztern anmelden, wenn man bei der Anmeldung nicht einen Benuzter auswählt, sondern am Ende der Auswahlliste „Andere“ bzw. „Others“ auswählt. Danach kann man den gewünschten Benutzernamen eingeben.

17.05.2010

Daumentasten von der Maus unter Archlinux einrichten

von ritze.

Nach einer frischen Installation funktionieren die Daumentasten von der Maus so gut wie nie richtig; selbst bei Ubuntu war ich nicht anderes gewöhnt. Zum Beispiel funktionieren sie mit Firefox auf Anhieb. Mit Nautilus aber nur zur Hälfte. Aber kein Grund traurig zu sein, schließlich kann man ja selber Hand anlegen. Zwei gute Anleitungen habe ich im ArchWiki und auf linuX-gamers.net gefunden.

Als erstes habe ich das Treiberpakete xf86-input-evdev installiert und das Modul evdev mit modprobe evdev geladen. Danach muss man herausfinden, wie die Maus heißt:

cat /proc/bus/input/devices

Bei mir gab es zwei Kandidaten:

I: Bus=0017 Vendor=0001 Product=0001 Version=0100
N: Name="Macintosh mouse button emulation"
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=mouse0 event0
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

und

I: Bus=0003 Vendor=046d Product=c051 Version=0110
N: Name="Logitech USB-PS/2 Optical Mouse"
P: Phys=usb-0000:00:1d.1-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb6/6-1/6-1:1.0/input/>input5
U: Uniq=
H: Handlers=mouse1 event5
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=103
B: MSC=10

Ich habe mich für das letztere entschieden und passte den entsprechenden Abschnitt in /etc/X11/xorg.conf an:

Section "InputDevice"
        Identifier  "Mouse[0]"
        Driver      "evdev"
        Option      "Device" "/dev/input/event5" # (cat /proc/bus/input/devices)
        Option      "Name" "Logitech MX510"
EndSection

Nun werden die Maustasten zwar alle richtig erkannt, jedoch kann man sie noch nicht belegen, was man mit Hilfe von den zwei Paketen xvkbd und xbindkeys erreicht. Nachdem man diese auf dem System installiert hat, legt man in seinem Home-Ordner die Konfigurationsdatei .xbindkeysrc an und füllt diese mit folgenden Zeilen:

# Maustaste Zurueck
"xvkbd -xsendevent -text "\[XF86Back]""
   b:8
 
# Maustaste Vor
"xvkbd -xsendevent -text "\[XF86Forward]""
   b:9

Zum Schluss muss man nur noch xbindkeys mit dem Befehl xbindkeys starten.

24.04.2010

Magic SysRQ und MP3s hören mit Archlinux

von ritze.

Ich habe mir vor knapp zwei Wochen Archlinux eingerichtet. Natürlich läuft am Anfang nicht alles auf Anhieb, sodass man an vielen Stellen selber Hand anlegen muss. So auch an Magic SysRQ, mit dem man den X-Server neu starten kann, falls er mal nicht mehr reagieren sollte. Standardmäßig ist diese Funktion deaktiviert. Im ArchWiki steht zum Glück, wie es geht: Man öffnet die Konfigurationsdatei /etc/sysctl.conf und ändert von kernel.sysrq den Standardwert 0 auf 1. Danach sollte ein Neustart des X-Servers mittels ALT-GR+DRUCK+K wieder möglich sein.

Mein zweites Problem unter Archlinux bestand darin, dass ich zwar mit dem VLC media player MP3-Dateien hören konnte, jedoch Banshee sich weigerte, sie wiederzugeben. Des Rätsels Lösung war das fehlen des Pakets gstreamer0.10-plugins. Jedoch hat es mich gewundert, dass selbst Totem, das auch GStreamer zur Wiedergabe von Dateien verwendet, mich nicht darüber Informiert hat, was man als Ehemaliger Ubuntuianer gewöhnt ist.

19.02.2010

Reinstall Archlinux with minimal effort

von mks.

Sometimes you have to reinstall a borked system. With most Linux distributions this is dead easy, because likely every package manager has a function to get a list of all installed packages. Of course you should partition your harddisk wisely so you can just mount (e.g.) your old home partition afterwards.

Here’s how to do this with Archlinux’ package manager pacman.

  1. Get the list of installed packages.

    pacman -Qet | awk '{print $1}' > installed_packages.txt

    This gets all explicitly installed top level packages, i.e. those that are not required by other packages.

    Save that file on an external media of course.

  2. Reinstall the base system.

    Reinstall using your favorite install media. Setup all your configuration files (from your backup of course …). Setup /etc/fstab. Setup networking etc.

  3. Reinstall packages.

    pacman -Sy `cat installed_packages.txt`

    Getting the file from where you saved it in the first place of course.

  4. That’s it.

If you have installed packages from AUR, you should use yaourt instead of pacman, because pacman will of course fail to install those. So step 2.5 would be to install yaourt.