26.09.2018, 13:42 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: Knoppix Forum | www.KnoppixForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

17.03.2010, 10:33

Grunsätzlich: Partition(en) bootbar machen

Ich weiß was der MBR und was ein PBR/Bootsektor ist. Nun suche ich noch Möglichkeiten diese auch zu beschreiben. Und zwar mit grub1/grub2/lilo Ich habe dabei kein bestimmtes Ziel vor Augen. Ich will das einfach nur mal lernen. google hilft mir nicht genug, der support von grub2 hilft mir ebenfalls nicht wirklich.

Szenario: Zur Zeit arbeite ich unter Ubuntu 10.04, das benutzt grub2 und alles läuft. Und jetzt möchte ich einfach mal so zur Übung Bootsektoren beschreiben:

Meine Partitionierung sieht ungefähr folgendermaßen aus: http://www.knoppixforum.de/index.php?pag…ed19bc899a625fb

Mittlerweile ist debian auf sdc6 und ein ubuntu auf sdc7. In Frage kommen also sdc5 bis sdc8. Wie installiere ich also grub/grub2/lilo auf eine dieser Partitionen?
Installieren = Code in den PBR schreiben, notwendige files nach /dev/sdcX/boot schreiben und bei grub2 auch noch nach /dev/sdcX/etc/grub.d usw.

Sowohl für grub als auch für grub2 sollte das der Befehl sein:
grub-install
Ist das ein Programm (binary) oder ein Script?
Dieser schreibt automatisch auf die jetztige Partition, auf der / gemountet ist? Oder boot?
Mit der Option --root-directory lassen sich nun andere Partitionen "targetieren".

Insgesammt also:
sudo grub-install --root-directory=/media/Slackware /dev/sdc5

Das sollte also grub2 ins PBR von sdc5 schreiben und den rest von grub2 in ~/boot bzw. ~/etc? So dass man, wenn man mal die Partition sdc5 als aktiv markiert, sogleich von dort booten kann. Richtig?

Was mache ich, wenn ich grub1/lilo dort installieren wollen sollte? Muss ich grub1/lilo dazu vorher auf dem aktuellen System installieren? Wenn ja, wie kann ich es so anstellen, dass ich grub1/lilo nur runterlade aber nicht einrichte? wget?


Ändert grub/grub2/lilo die aktive Parition im MBR der Platte, oder kann man das nur mit Programmen wie fdisk/gparted/gfdisk machen?
Wie kann ich grub/grub2/lilo sagen, er soll außer ins PBR auch ins MBR installieren? Wie kann ich, das ausschließen?

Ich suche jeweils die allgemeine Vanilla-Vorgehensweise, die dann auf möglichst allen distris funktioniert. Keine Ubuntu/Knoppix-only und kein quick and dirty!




___________________________________________________________________
Fallbeispiel: es geht nicht.
sudo grub-install --root-directory=/media/Slackware /dev/sdc5
/usr/sbin/grub-setup: warn: Es wird versucht, GRUB in eine Partition anstatt in den MBR zu installieren. Das ist eine SCHLECHTE Idee..
/usr/sbin/grub-setup: warn: Einbettung ist nicht möglich. GRUB kann in dieser Konfiguration nur mittels Blocklisten installiert werden. Blocklisten sind allerdings UNZUVERLÄSSIG und deren Verwendung wird daher nicht empfohlen..
/usr/sbin/grub-setup: error: Benutzen Sie --force, wenn Sie wirklich Blocklisten verwenden möchten..

Ok, scheinbar schreibt diese Vorgehensweise nicht gleichzeitig ins MBR. Schön, dass das mitgeteilt wird! Aber warum geht es nicht? Was sind Blocklisten?

FM_81

Fortgeschrittener

2

18.03.2010, 05:04

RE: Grunsätzlich: Partition(en) bootbar machen

Ändert grub/grub2/lilo die aktive Parition im MBR der Platte, ...
Meines Wissens nein! Dem Linux-Bootloader sind, sofern irgend einer selbst erst einmal läuft, aktive Partitionen weitest gehend egal. Chainload zum entsprechenden PBR (oder auch MBR), gut is'. Ältere Bootloader haben bisweilen oft das Problem das richtige Gerät zu finden, da beim Booten ja noch nichts weiter da ist als der Loader selbst.
GRUB2 kann aber per UUID ansprechen, so dass sich dieses Problem minimiert.

Ich suche jeweils die allgemeine Vanilla-Vorgehensweise, die dann auf möglichst allen distris funktioniert.
Das könnte schwierig werden!



___________________________________________________________________
Fallbeispiel: es geht nicht.
sudo grub-install --root-directory=/media/Slackware /dev/sdc5
/usr/sbin/grub-setup: warn: Es wird versucht, GRUB in eine Partition anstatt in den MBR zu installieren. Das ist eine SCHLECHTE Idee..
/usr/sbin/grub-setup: warn: Einbettung ist nicht möglich. GRUB kann in dieser Konfiguration nur mittels Blocklisten installiert werden. Blocklisten sind allerdings UNZUVERLÄSSIG und deren Verwendung wird daher nicht empfohlen..
/usr/sbin/grub-setup: error: Benutzen Sie --force, wenn Sie wirklich Blocklisten verwenden möchten..

Ok, scheinbar schreibt diese Vorgehensweise nicht gleichzeitig ins MBR. Schön, dass das mitgeteilt wird! Aber warum geht es nicht? Was sind Blocklisten?
Ich nehme stark an, in diesem letzten Falle geht es um GRUB2? Den gibt es noch nicht sooo lange, und so habe ich dass verstanden: Normalerweise wird die Datei 'core.img' zusätzlich in den freien Bereich zwischen MBR (oder in Deinem Falle PBR) und dem Beginn des eigentlichen Dateisystemes abgelegt. (Und dort sicherlich auch entspr. angepasst?) Ist dies aus irgendwelchen Gründen nicht möglich, verbleibt 'core.img' nur im Dateisystem und wird vom entsprechenden Bootsektor aus über Blocklisten angesprochen.

MfG, FM_81
ACHTUNG!
Ihre Systemleistung reicht nicht aus, um einen BLUE-SCREEN zu erzeugen!
Möchten Sie statt dessen einen GREEN-SCREEN sehen?

---- [Ja] ---- [Nein] ---- [Weiß noch nicht] ----

3

27.04.2010, 16:05

RE: RE: Grunsätzlich: Partition(en) bootbar machen

Ändert grub/grub2/lilo die aktive Parition im MBR der Platte, ...
Meines Wissens nein! Dem Linux-Bootloader sind, sofern irgend einer selbst erst einmal läuft, aktive Partitionen weitest gehend egal. Chainload zum entsprechenden PBR (oder auch MBR), gut is'. Ältere Bootloader haben bisweilen oft das Problem das richtige Gerät zu finden, da beim Booten ja noch nichts weiter da ist als der Loader selbst.
GRUB2 kann aber per UUID ansprechen, so dass sich dieses Problem minimiert.
Ich suche jeweils die allgemeine Vanilla-Vorgehensweise, die dann auf möglichst allen distris funktioniert.
Das könnte schwierig werden!



___________________________________________________________________
Fallbeispiel: es geht nicht.
sudo grub-install --root-directory=/media/Slackware /dev/sdc5
/usr/sbin/grub-setup: warn: Es wird versucht, GRUB in eine Partition anstatt in den MBR zu installieren. Das ist eine SCHLECHTE Idee..
/usr/sbin/grub-setup: warn: Einbettung ist nicht möglich. GRUB kann in dieser Konfiguration nur mittels Blocklisten installiert werden. Blocklisten sind allerdings UNZUVERLÄSSIG und deren Verwendung wird daher nicht empfohlen..
/usr/sbin/grub-setup: error: Benutzen Sie --force, wenn Sie wirklich Blocklisten verwenden möchten..

Ok, scheinbar schreibt diese Vorgehensweise nicht gleichzeitig ins MBR. Schön, dass das mitgeteilt wird! Aber warum geht es nicht? Was sind Blocklisten?
Ich nehme stark an, in diesem letzten Falle geht es um GRUB2? Den gibt es noch nicht sooo lange, und so habe ich dass verstanden: Normalerweise wird die Datei 'core.img' zusätzlich in den freien Bereich zwischen MBR (oder in Deinem Falle PBR) und dem Beginn des eigentlichen Dateisystemes abgelegt. (Und dort sicherlich auch entspr. angepasst?) Ist dies aus irgendwelchen Gründen nicht möglich, verbleibt 'core.img' nur im Dateisystem und wird vom entsprechenden Bootsektor aus über Blocklisten angesprochen.

MfG, FM_81
Ja, das habe ich auf deren Seite gelesen. Verstehe es aber nicht: Was heißt in den freien Bereich zwischen M/PBR und Dateisystem??? Gehört das zum Dateisystem dazu, liegt aber physisch ganz am Anfang, oder wie? Das hieße, dass man GRUB2, wenn man es auf einer benutzten Partition nachinstallieren wollte, es grundsätzlich nur über Blocklisten ginge. Weil man ja mit dem Beschreiben der Festplatte am Anfang beginnt. Das ist ja doof. Soll das ein Zwischending zwischen separater Boot-Partition und "Bootvezeichnis = /boot" sein?

Dieser Tag, für die Bootbare Partition wird also nur vom BIOS beachtet, falls im MBR nichts drin stehen sollte. Ok.

Und mit "allen Distris" meine ich nicht alle 100 sondern so Debian/Ubuntu/Slackware/openSuse/Fedora. Die üblichen halt. Auf alle Fälle Debian.
Was mich an grub ärgert, ist dass man mit "man grub" nicht weiterkommt. Der der Befehl lautet eben grub-setup oder grub-install usw, so dass entsprechend nur "man grub-installl" weiterhilft. Evtl.

INSTALL_DEVICE can be a GRUB device name or a system device filename.

grub-install copies GRUB images into /boot/grub (or /grub on NetBSD and OpenBSD), and uses grub-setup to
install grub into the boot sector.

Was ist ein GRUB image? Ein GRUB splash image, also eine popelige Bilddatei? Ich vermisse das "gute alte"

Quellcode

1
format x: /s 
. Das hat, wenn ich das richtig blicke, ins M/PBR geschrieben und die command.com (entspricht dem msdos-kernel?) + autoexec.bat + confid.sys + nocheine.Datei auf die angegebene Parition kopiert. Das suche ich. Aber statt den Buchstaben, mag ich lieber was logischeres benutzen: wie sdb5/ hdc3. Und einen Befehl, um genau das rückgängig zu machen.

Ist es Linuxwelt so, dass bei der Laufwerksbezeichnung (/dev/sdb3) die 2 grundsätzlich für die erweiterte Partition reserviert ist und die logischen Partitionen, immer mit 5 beginnen? Oder ist es manchmal die 4 statt der 2?

BTW: Habt ihr schon ein Auge auf die Forumsoftware von ubuntuusers.de geworfen? Zumindest beim Zitieren geht das recht intuitiv vor.

FM_81

Fortgeschrittener

4

01.05.2010, 09:05

RE: RE: RE: Grunsätzlich: Partition(en) bootbar machen

... Gehört das zum Dateisystem dazu, ...
Nein. Dein MBR ist der allererste Sektor. Die erste Partition beginnt meist erst 62 Sektoren dahinter. Bei Installation von GRUB2 in den PBR sollte es der GRUB2-Installationsmechanismus selbsttätig erkennen, ob "embedding" möglich ist, oder nicht.

... Dieser Tag, für die Bootbare Partition wird also nur vom BIOS beachtet, falls im MBR nichts drin stehen sollte. ...
Im MBR muss etwas drin stehen, auch wenn es nur sog. "generischer Code" ist. BIOS schaut nur dort.

... Ist es Linuxwelt so, dass bei der Laufwerksbezeichnung (/dev/sdb3) die 2 grundsätzlich für die erweiterte Partition reserviert ist ...
Nein, die erweiterte kann /dev/sda1 oder /dev/sda2 oder /dev/sda3 oder /dev/sda4 sein.

... die logischen Partitionen, immer mit 5 beginnen? ...
Das ist richtig. Ggf. gibt es aber gar kein /dev/sda1 oder /dev/sda2 oder /dev/sda3 oder /dev/sda4 - mindestens eine von diesen muss es aber geben, auch wenn es nur die erweiterte selbst ist.

MfG, FM_81
ACHTUNG!
Ihre Systemleistung reicht nicht aus, um einen BLUE-SCREEN zu erzeugen!
Möchten Sie statt dessen einen GREEN-SCREEN sehen?

---- [Ja] ---- [Nein] ---- [Weiß noch nicht] ----

5

01.05.2010, 14:15

RE: RE: RE: RE: Grunsätzlich: Partition(en) bootbar machen

... Gehört das zum Dateisystem dazu, ...
Nein. Dein MBR ist der allererste Sektor. Die erste Partition beginnt meist erst 62 Sektoren dahinter. Bei Installation von GRUB2 in den PBR sollte es der GRUB2-Installationsmechanismus selbsttätig erkennen, ob "embedding" möglich ist, oder nicht.



Habe grad ne Antwort erstellt, und diese Drecksforumssoftware hat mir alles gelöscht. Wurde wohl automatisch wieder abgemeldet? Hab nach so 30minuten Edit auf Vorschau geklickt, und es hieß, ich hätte nicht die Rechte dafür. Beim zurückgehen im Browser seh ich, dass mein edit nicht enthalten ist. (Die Seite stand doch nicht in der Cookies Whitelist, vielleicht deswegen.) Und jetzt habe ich kein Edit-Menu mehr. Nur Smileys-Leiste. Oje.


Also ganz Kurz:
Die Lücke von 63 Sektoren (So dass es mit dem MBR zusammen 64 Stück sind?) wird erzeugt, weil ältere OS drauf bestehen, gleich einen kompletten Zylinder zu nutzen. Das hieße, dass zwischen einem PBR und dem Dateisystem es diese Lücke ebenfalls gibt? Oder gibt es die nur nach dem MBR?


Kann man diese Lücke beliebig groß gestalten?
=> Jo. Man kann bei fdisk den Extperten Modus betreten und dort den Anfangssektor ändern: [[http://forum.ubuntuusers.de/topic/ubuntu-4k-festplatte/]]

=> Hier hat jemand ein nettes Bild gemalt: [[http://wiki.ubuntuusers.de/Benutzer/gabi?highlight=grub]]

Diese Lücke wird auch von fdisk (von XP sowieso) bei default-Einstellungen noch gelassen. Und es wird scheinbar nur für die erste Partition so gemacht. Wie im ersten Link beschrieben, sollte man bei Benutzung einer Festplatte, die 4K-Blocks verwendet aber manuell was dran machen! Defaultmäßig wird das unter Linux eben nicht getan! (Um Kompatibel zu WinXP und älteren OSs zu sein)

Bleibt folgende Fragen:
Wird diese Lücke auch von Vista/Win7 gelassen, wenn man dort eine neue Festplatte vanilla partitioniert? Frag bloß damit da keine Lücken bleiben. Also Wissenslücken ;-)
Wird dieser Bereich von irgendwas benutzt, und man sollte das wissen? Es könnte dann die core.img überschreiben bzw. grub könnte es überschreiben.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »freewilly« (01.05.2010, 18:22)


FM_81

Fortgeschrittener

6

02.05.2010, 09:41

RE: RE: RE: RE: RE: Grunsätzlich: Partition(en) bootbar machen

Die Lücke von 63 Sektoren (So dass es mit dem MBR zusammen 64 Stück sind?) wird erzeugt ...
Das muss nach meinem Wissen

Quellcode

1
Die Lücke von 62 Sektoren (So dass es mit dem MBR zusammen 63 Stück sind?) wird erzeugt ...
heissen.

... weil ältere OS drauf bestehen, gleich einen kompletten Zylinder zu nutzen. Das hieße, dass zwischen einem PBR und dem Dateisystem es diese Lücke ebenfalls gibt? Oder gibt es die nur nach dem MBR?
Ich glaube am Beginn einer erweiterten Partition gibts das noch mal. Sonst nicht. Kann mich aber auch irren, meine letzten Aktionen mit "Hex-Editor direkt auf Festplatte" sind schon eine Weile her!


Wird diese Lücke auch von Vista/Win7 gelassen ...
Muss ich passen, diese Systeme werde ich mir voraussichtlich nicht antun!

Wird dieser Bereich von irgendwas benutzt, und man sollte das wissen? Es könnte dann die core.img überschreiben bzw. grub könnte es überschreiben.
Andere Bootloader, bzw. "Festplattenverwaltungsprogramme" könnten theoretisch...

MfG, FM_81
ACHTUNG!
Ihre Systemleistung reicht nicht aus, um einen BLUE-SCREEN zu erzeugen!
Möchten Sie statt dessen einen GREEN-SCREEN sehen?

---- [Ja] ---- [Nein] ---- [Weiß noch nicht] ----

RalfonLinux

Erleuchteter

Beiträge: 2 934

Geschlecht: Männlich

7

06.05.2010, 10:05

Zitat


Zitat von »freewilly«
Wird dieser Bereich von irgendwas benutzt, und man sollte das wissen? Es könnte dann die core.img überschreiben bzw. grub könnte es überschreiben.

Andere Bootloader, bzw. "Festplattenverwaltungsprogramme" könnten theoretisch...

Es gibt auch einige Windowsprogramme, welche der Meinung sind, sie könnten dort eine Bytefolge ablegen.
Dies wird dann als Kopierschutz verwendet.
Da die entsprechenden Sektoren nicht im Filesystem liegen, werden sie auch nicht als belegt gekennzeichnet.
Somit werden sie auch nicht kopiert, bzw. ohne ein raw-Image, gespiegelt.

jm2c
Ralf
Auf Wunsch gibt es nur noch Text und keine Bilder mehr in der Signatur.
Keine ? ....... :evil:

Quellcode

1
2
3
4
5
6
7
8
.
    ~
   - -          M
   /V\         - *
  // \\        /V\
 /( _ )\      // \\
  ^~ ~^      /( _ )\
              ^~ ~^

8

08.05.2010, 23:18


Es gibt auch einige Windowsprogramme, welche der Meinung sind, sie könnten dort eine Bytefolge ablegen.
Dies wird dann als Kopierschutz verwendet.
Da die entsprechenden Sektoren nicht im Filesystem liegen, werden sie auch nicht als belegt gekennzeichnet.
Somit werden sie auch nicht kopiert, bzw. ohne ein raw-Image, gespiegelt.


Klar, dass sich dieser Speicher außerhalb des Dateisystem prima für allerlei nutzen lässt. Ich wollte allerdings ein paar konkretere Programme genannt bekommen. Bitte.

Wie sehe ein praktischer Befehl aus, sich entweder die anzahl der "belegten" Sektoren oder deren Inhalt anzeigen zu lassen?

FM_81

Fortgeschrittener

9

09.05.2010, 13:22

Klar, dass sich dieser Speicher außerhalb des Dateisystem prima für allerlei nutzen lässt. Ich wollte allerdings ein paar konkretere Programme genannt bekommen. Bitte.
Ich wüsste jetzt leider kein konkretes Beispiel (außer den schon Genannten). Allzu oft scheint dies auch nicht mehr statt zu finden, sonst würden sich im Umkehrschluss Probleme mit GRUB2 häufen.
Wenn irgendwo Probleme mit GRUB2 auftreten, dann haben sie ganz sicherlich nichts mit diesem Thread zu tun.

Wie sehe ein praktischer Befehl aus, sich entweder die anzahl der "belegten" Sektoren ...
Schwierig, wenn nicht gar unmöglich. es sei denn, man hat einen Vorher-Nachher-Vergleich.

... oder deren Inhalt anzeigen zu lassen?

Quellcode

1
dd if=/dev/sda of=geheimer_bereich.dat bs=512 count=62 skip=1
Oder mit einem Hex-Editor direkt zugreifen...
Da Du Dich mit solchen Sachen beschäftigst, weisst Du auch sicherlich um die nötige Vorsicht bei diesen Aktionen! ;)

MfG, FM_81
ACHTUNG!
Ihre Systemleistung reicht nicht aus, um einen BLUE-SCREEN zu erzeugen!
Möchten Sie statt dessen einen GREEN-SCREEN sehen?

---- [Ja] ---- [Nein] ---- [Weiß noch nicht] ----

RalfonLinux

Erleuchteter

Beiträge: 2 934

Geschlecht: Männlich

10

10.05.2010, 10:52

Zitat von »"freewilly"«

Klar, dass sich dieser Speicher außerhalb des Dateisystem prima für allerlei nutzen lässt. Ich wollte allerdings ein paar konkretere Programme genannt bekommen. Bitte.

Einige Programme der Adobe-Serie CS2 setzen dort ihre Daten rein.

Zitat von »"freewilly"«

Wie sehe ein praktischer Befehl aus, sich entweder die anzahl der "belegten" Sektoren oder deren Inhalt anzeigen zu lassen?

Die Anzahl der belegten Sektoren im Filesystem ?
Die verwaltet das Filesystem selber, die ersten 63 Sektoren liegen aber ausserhalb des Dateisystems.
Die Platte kümmert sich da nicht drum, die ist nur für die Qualität der Magnetsignale verantwortlich.
Was du daraus interpretierst ist Aufgabe des Dateisystems.

MIttels

Quellcode

1
dd if=/dev/sda bs=512 count=63 | hexdump -C
siehst du die Daten im HEX-Format.

@FM_81
M.W. ist damals der grub in die Sektoren 1-63 installiert worden.
In 0 lag ein generischer Code, um auf 1ff zuzugreifen.
Dies gab die von dir angedrohten Schwierigkeiten.
Mit grub2 ist es nun möglich, den Zylinder zu verlassen, d.h. 0 hat den generischen Code, um dann weiter hinten (erweiterte Partition/LBR) den Code abzuarbeiten.

Ralf
Auf Wunsch gibt es nur noch Text und keine Bilder mehr in der Signatur.
Keine ? ....... :evil:

Quellcode

1
2
3
4
5
6
7
8
.
    ~
   - -          M
   /V\         - *
  // \\        /V\
 /( _ )\      // \\
  ^~ ~^      /( _ )\
              ^~ ~^

FM_81

Fortgeschrittener

11

13.05.2010, 09:41

@FM_81
M.W. ist damals der grub in die Sektoren 1-63 installiert worden.
In 0 lag ein generischer Code, um auf 1ff zuzugreifen.
Dies gab die von dir angedrohten Schwierigkeiten.
Mit grub2 ist es nun möglich, den Zylinder zu verlassen, d.h. 0 hat den generischen Code, um dann weiter hinten (erweiterte Partition/LBR) den Code abzuarbeiten.

Ralf
Du meinst den alten "Grub Legacy"?

Im MBR (respektive Sektor 0) lag eine bei der Installation veränderte STAGE1. Von dort wurde auf STAGE1_5 verwiesen, die dann schon das Dateisystem kannte, für dass sie gemacht war. Natürlich nur, wenn genug Platz war, um diese STAGE1_5 auch wieder in freien Bereich einzubetten. (irgendwie fast das Gleiche :)) Die fand dann STAGE2, die in diesem Fall auch nicht an einen festen Platz gebunden war.

Fehlte der Platz, um STAGE1_5 einzubetten, wurde von STAGE1 direkt auf STAGE2 verlinkt, mit allen Konsequenzen, das STAGE2 nie Ihren Platz wechseln durfte, weil GRUB sonst tot war.

In jedem Fall hatte STAGE1 schon alle Variablen (bestimmte Bytes im MBR) die das nachfolgende Verhalten bestimmten. (Sektor wo es weiter geht, LBA ja oder nein usw.)

Das selbe galt auch sinngemäß, wenn GRUB nicht im MBR installiert wurde.

MfG, FM_81

PS: Ich glaube, man könnte ganze Bücher über dieses Thema schreiben, bzw. sie existieren schon, und werden kaum gelesen ... :D
ACHTUNG!
Ihre Systemleistung reicht nicht aus, um einen BLUE-SCREEN zu erzeugen!
Möchten Sie statt dessen einen GREEN-SCREEN sehen?

---- [Ja] ---- [Nein] ---- [Weiß noch nicht] ----

Linux HardwareLinux Computer & PCs | Linux Notebooks & Laptops | Geek Shirts | Geek und Nerd Shirt Shop