Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] USB-Startmedium incl. User-Daten anlegen  (Read 6458 times)

MoonKid

  • Guest
[DE] USB-Startmedium incl. User-Daten anlegen
« on: 2016/05/10, 18:53:45 »
Zuerst hatte ich versucht den "USB-Startmedienersteller" von Ubuntu zu nutzen, weil man genau dort auch einen reservierten Bereich auf dem USB-Stick definieren kann, wo man eigenen Daten ablegen kann. Ging aber nicht. Da landete merkwürdiger Weise ein Ubuntu Xenial drauf - warum versteh ich nicht.

Also hab ich es so gemacht. Dabei bleibt aber kein Bereich für eigenen Daten und der Stick wird immer nur lesend eingebunden, so das ich nicht einfach noch was draufschreiben könnte.

Hab halt nur einen Stick. :D

Offline musca

  • User
  • Posts: 725
  • sid, fly high!
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #1 on: 2016/05/10, 19:59:12 »
Hallo Moonkid,

Du kannst auf Deinem leeren USB-Stick Grub2 installieren und das ISO-Image als Datei hinterlegen.
Dann noch ein Menuitem in der grub.cfg anlegen (natürlich mit der UUID Deiner eigenen Partition):
Code: [Select]
menuentry "siduction.iso" {
    insmod iso9660
    insmod part_msdos
    insmod ext2
    search --no-floppy --fs-uuid --set=root 44962848-3146-4863-a7ee-7643844dd0db

loopback loop /siduction.iso
linux (loop)/boot/vmlinuz0.amd fromhd=UUID=44962848-3146-4863-a7ee-7643844dd0db fromiso=/siduction.iso boot=fll lang=de_DE tz=Europe/Berlin quiet noeject md5sum toram
initrd (loop)/boot/initrd0.amd
}
Grub2 liest so das vmlinuz-Image und die Initrd direkt aus dem ISO-Image aus.
Die restliche Kapazität des Dateisystems bleibt auf diese Weise benutzbar.

Man kann sich in diese Technik hineinsteigern ...
oder einfach ganz lapidar auf dem USB-Stick installieren.

Grüße
musca
„Es irrt der Mensch, solang er strebt.“  (Goethe, Faust)

MoonKid

  • Guest
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #2 on: 2016/05/10, 21:45:09 »
Klingt nach einer schönen Lösung!
Ok, mal sehen ob das klappt.

Mit Gparted den USB-Stick FAT32 formatiert und mit "boot" markiert. Gparted spuckt in den Eigentschaften der Partition auch die UUID aus.
Dann das iso einfach draufkopiert.

Dann (unter einem Kubuntu 14.04.3 LTS "Trusty") die Grup2-Installation (inkl. Config) gestartet mit "sudo dpkg-reconfigure grub-pc".

Meldung "GRUB konnte nicht auf den folgenden Geräten installiert werden: /dev/sdb".

Mhm... Hab ich beim Formatieren was falsch gemacht?

Offline musca

  • User
  • Posts: 725
  • sid, fly high!
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #3 on: 2016/05/10, 21:53:56 »

Im Arch-Wiki findet man gute Anleitungen, oft sogar in deutsch.
„Es irrt der Mensch, solang er strebt.“  (Goethe, Faust)

MoonKid

  • Guest
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #4 on: 2016/05/10, 22:04:14 »
Habe auch http://wiki.siduction.de/index.php?title=Debian-Live_auf_USB-Stick#Mit_der_Kommandozeile ausprobiert. Beim mounten meldet er aber, das Gerät sei blockiert und können nur lesend eingebunden werden.

Ich komme so also nicth mal bis zu dem Punkt, um Grub2 zu installieren.

Code: [Select]
user@TONNE:~$ blkid
/dev/sdb1: UUID="DF28-3E3F" TYPE="vfat" SEC_TYPE="msdos" LABEL="Siduction"

user@TONNE:~$ sudo fdisk /dev/sdb

Befehl (m für Hilfe): p

Platte /dev/sdb: 4009 MByte, 4009754624 Byte
30 Köpfe, 14 Sektoren/Spur, 18646 Zylinder, zusammen 7831552 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0x0007485a

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1            2048     7831551     3914752    b  W95 FAT32

Offline musca

  • User
  • Posts: 725
  • sid, fly high!
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #5 on: 2016/05/10, 22:11:36 »
Dann ist der Stick wohl schon belegt.  Mit umount kannst Du ihn wieder freigeben.
„Es irrt der Mensch, solang er strebt.“  (Goethe, Faust)

MoonKid

  • Guest
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #6 on: 2016/05/11, 01:29:26 »
Habe hier vermutlich teilweise sdb und sdb1 nicht korrekt verwendet. ;)

grub meint aber z.B. auch, es könne nicht installiert werden, wegen multipler Partitionsbezeichnungen. Das meint aber wohl mehr, dass mehrere Partitionstabellen vorhanden sind. Kommt u.a. davon, wenn man vorher mal mit dd ein ISO-image auf den Stick geworfen hat.
Sichere Methode, um das zu beheben: sudo dd if=/dev/zero of=/dev/<Gerät> bs=4k

MoonKid

  • Guest
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #7 on: 2016/05/11, 01:35:37 »
Im ArchWiki wird behauptet nach grub-install würde sich das Verzeichnis /boot/grub/ auf dem Stick befinden. Tut es aber nicht, obwohl diesmal keine Fehler aufgetretten sind. Dort ist nur /boot/grub/ zu sehen, ohne eine grub.cfg darin.

MoonKid

  • Guest
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #8 on: 2016/05/11, 01:47:52 »
Code: [Select]
menuentry "siduction.iso" {
    ...
    search --no-floppy --fs-uuid --set=root 44962848-3146-4863-a7ee-7643844dd0db

linux (loop)/boot/vmlinuz0.amd fromhd=UUID=44962848-3146-4863-a7ee-7643844dd0db fromiso=/siduction.iso boot=fll lang=de_DE tz=Europe/Berlin quiet noeject md5sum toram

Bist du dir sicher, dass das mit der UUID so korrekt ist? Habe die UUID meines USB-Sticks per blkid ausgelsen. Die ist incl. Bindestrich 9 Zeichen lang. Beim Bootem vom Stick springt Grub zwar an, aber findet dann die UUID nicht.
fromhd= erscheint mir auch nicht plausibel. In den Beispielen von Debian und Arch sehe ich gar keine UUID - aber die behandeln ja auch andere Distros, weshalb ich mir eher an deinem Beispiel konzentriere.

Offline musca

  • User
  • Posts: 725
  • sid, fly high!
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #9 on: 2016/05/11, 09:24:06 »
Ja, Hybrid-ISO-Images sind so verschachtelt aufgebaut. Gründlich umounten.
Normalerweise brauchst Du nur das erste Megabyte am Anfang des Mediums überschreiben.

Bezüglich der abweichenden Verzeichnisstruktur (kein /boot) kann ich mangels Details nur mutmaßen: "Kaum macht man's richtig, schon geht's."

Die Art der UUID hängt vom Dateisystem ab. Mein Beispiel stammte von einer Festplatte und deren Partition hatte ein anderes Dateisystem als Dein Stick.

Bezüglich "fromhd" hast Du richtig erkannt: "Dies ist spezifisch für siduction."

Gruß
musca
« Last Edit: 2016/05/11, 09:32:07 by musca »
„Es irrt der Mensch, solang er strebt.“  (Goethe, Faust)

MoonKid

  • Guest
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #10 on: 2016/05/11, 21:16:29 »
Und das bedeutet jetzt was? ;)
Die von dir gezeigte Config müsste bei mir eigentlich funktionieren?
Wie gesgat, sie tut es nicht, da er meint die UUID würde nicht existieren. blkid zeigt sie aber an.

Offline musca

  • User
  • Posts: 725
  • sid, fly high!
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #11 on: 2016/05/11, 21:26:45 »
Solange Du nur deine fertigen Schlussfolgerungen hier präsentierst, kann man Dir nur zustimmen.
„Es irrt der Mensch, solang er strebt.“  (Goethe, Faust)

MoonKid

  • Guest
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #12 on: 2016/05/11, 21:59:57 »
Ok, hab jetzt ohne die "boot-directory" option nochmal installiert. Nun wird gar kein Verzeichnis auf dem Stick angelegt.

Code: [Select]
user@TONNE:~$ sudo mkfs.vfat -F 32 -n STICK /dev/sdb1
mkfs.fat 3.0.26 (2014-03-07)

user@TONNE:~$ sudo grub-install --no-floppy /dev/sdb
Installing for i386-pc platform.
installation beendet. Keine Fehler aufgetreten.

user@TONNE:~$ ll /media/user/STICK -a
insgesamt 8
drwx------  2 user user 4096 Jan  1  1970 ./
drwxr-x---+ 3 root root 4096 Mai 11 21:55 ../

Im siduction-wiki steht "root-directory" als Option. Das ist in der manpage aber gar nicht erwähnt! Wie kommt sowas? Funktioniert aber:
Code: [Select]
user@TONNE:~$ sudo grub-install --no-floppy --root-directory=/media/user/STICK /dev/sdb
Installing for i386-pc platform.
installation beendet. Keine Fehler aufgetreten.
user@TONNE:~$ ll /media/user/STICK -a
insgesamt 12
drwx------  3 user user 4096 Mai 11 22:00 ./
drwxr-x---+ 3 root root 4096 Mai 11 21:55 ../
drwx------  3 user user 4096 Mai 11 22:00 boot/
« Last Edit: 2016/05/11, 22:03:08 by MoonKid »

MoonKid

  • Guest
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #13 on: 2016/05/11, 22:54:51 »
Ok, der STICK sieht jetzt so aus.
Code: [Select]
user@TONNE:/media/user/STICK$ ls iso
siduction-15.1.0-paintitblack-lxqt-i386-201601171445.iso

user@TONNE:/media/user/STICK$ ls boot
grub

user@TONNE:/media/user/STICK$ ll boot/grub
insgesamt 520
drwx------ 2 user user   4096 Mai 11 22:01 fonts/
-rw-r--r-- 1 user user    609 Mai 11 22:04 grub.cfg
-rw-r--r-- 1 user user   1024 Mai 11 22:01 grubenv
drwx------ 2 user user  20480 Mai 11 22:01 i386-pc/
drwx------ 2 user user   4096 Mai 11 22:01 locale/

user@TONNE:/media/user/STICK$ ll /dev/disk/by-uuid
lrwxrwxrwx 1 root root 10 Mai 11 22:39 DF5C-D732 -> ../../sdb1

Die grub.cfg sieht, wie in diesem Thread hier empfohlen, habe ich jetzt mal ignoriert. Ergibt für mich keinen Sinn und wurde bisher auch nicht erläutert. Habe mich jetzt an die config aus dem Siduction-Wiki gehalten und diese sieht so aus:
Code: [Select]
menuentry "Siduction LXQt" {
loopback loop /iso/siduction-15.1.0-paintitblack-lxqt-i386-201601171445.iso
linux (loop)/boot/vmlinuz0.amd fromiso=/iso/siduction-15.1.0-paintitblack-lxqt-i386-201601171445.iso boot=fll lang=de_DE tz=Europe/Berlin noplymouth noeject md5sum toram
initrd (loop)/boot/initrd0.amd
}

Die UUID passt jetzt scheinbar. Nun bekomme ich jedoch die Meldung /boot/vmlinuz0.amd not found

Überigens hatte ich das gleiche Verhalten mit der hier im Thread empfohlenen grub.cfg (mit UUID und fromhdd).

Offline musca

  • User
  • Posts: 725
  • sid, fly high!
Re: USB-Startmedium incl. User-Daten anlegen
« Reply #14 on: 2016/05/12, 00:11:20 »
Ja, ist klar, ich muss mich rechtfertigen, weil bei Dir was nicht klappt.
Ich habe also einen Stick erstellt, der auf Anhieb funktioniert hat.

root@sidbox:~# fdisk -l
Disk /dev/sdh: 14.7 GiB, 15804137472 bytes, 30867456 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: 0x5a36f9f0

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdh1        2048 30867455 30865408 14.7G  b W95 FAT32

root@sidbox:~# umount /dev/sdh1
umount: /dev/sdh1: not mounted

root@sidbox:~# mkdir /mnt/stick
root@sidbox:~# mount /dev/sdh1 /mnt/stick

root@sidbox:~# grub-install --no-floppy --root-directory=/mnt/stick /dev/sdh
Installing for i386-pc platform.
Installation finished. No error reported.

root@sidbox:~# ls /mnt/stick/boot/grub/
fonts  grubenv  i386-pc  locale

root@sidbox:~# mkdir -p /mnt/stick/boot/iso

root@sidbox:~# cp /home/user/download/siduction.iso /mnt/stick/boot/iso/siduction.iso

root@sidbox:~# blkid
/dev/sdh1: LABEL="GRUB" UUID="A49A-461F" TYPE="vfat" PARTUUID="5a36f9f0-01"

root@sidbox:~# vi /mnt/stick/boot/grub/grub.cfg

root@sidbox:~# cat /mnt/stick/boot/grub/grub.cfg
menuentry "siduction.iso" {
    insmod iso9660
    insmod part_msdos
    insmod ext2
    search --no-floppy --fs-uuid --set=root A49A-461F
loopback loop /boot/iso/siduction.iso
linux (loop)/boot/vmlinuz0.amd fromhd=UUID=A49A-461A fromiso=/boot/iso/siduction.iso boot=fll lang=de_DE tz=Europe/Berlin quiet noeject md5sum toram
initrd (loop)/boot/initrd0.amd
}

root@sidbox:~# umount /dev/sdh1 && reboot


Man kann entweder --root-directory=/mnt/stick  oder --boot-directory=/mnt/stick/boot/ verwenden,
letzteres ist laut changelog moderner. Den Eintrag im Archwiki habe ich inzwischen korrigiert, danke der_bud.

grub2 (1.99~20101122-1) experimental; urgency=low
  [ Colin Watson ]
    - Add new --boot-directory option to grub-install, grub-reboot, and
      grub-set-default; the old --root-directory option is still accepted
      but was often confusing.


Der fromhd Parameter dient der Identifizierung des Root-Dateisystems, hier speziell zum Finden des ISO.
Hier das zugehörige changelog im git aus glücklicheren Tagen:
fll-live-initramfs (1.3. 8) unstable; urgency=low

  * Add LABEL= and UUID= support to fromhd= cheatcode, we can leverage this to
    improve our iso-on-usb mode.

 -- Kel Modderman <kel@otaku42.de>  Fri, 12 Oct 2007 14:16:20 +1000



Ich wünsche weiterhin viel Spass beim Tüfteln.
musca

[Edit: Link zum Git war fehlerhaft, sorry.]
« Last Edit: 2016/05/12, 00:27:23 by musca »
„Es irrt der Mensch, solang er strebt.“  (Goethe, Faust)