21.07.2018, 23:35 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

1

23.04.2010, 21:50

[gelöst] Linux-Dateisystem auf USB-Stick - zur Installation von XAMP

Hallo,

Hatte hier(Bereich: Remastern) schon einmal einen Hinweise bekommen, wie ich beim Remaster xamp einbinden könnte.
Ausserdem erhielt ich den Hinweis, dass ich mit Symlinks Verzeichnisse unterhalb von /opt auf den USB-Stick verweisen lassen könnte, und so meine Testdateien erhalten blieben, wenn ich Knoppix herunterfahre.

Nun, da ich xamp sowieso neu installieren muss (neuere Version 1.7.3) und da ich auch schon KNOPPIX 6.2 habe,
möchte ich gleich das ganze xamp auf den USB-Stich installieren.
Das Verzeichnis /opt (welches für nicht über Paketmanagement installierte Software sein soll)
wird bei mir sowieso nicht anderweitig benötigt. (zumindest im Moment)

Deshalb wollte ich vor der Installtation einen Symlink für /opt anlegen, der auf ein Verzeichnis auf dem USB-Stick zeigt.
(klar dass man den Symlink nach jedem Neustart setzen muss)
Bekomme nun aber immer beim Entpacken von XAMp eine Meldung - vermutlich im Zusammenhang mit Benutzerrechten.

tar: lampp/logs/ssl_request_log: Kann Datei-Eigentümer nicht zu uid 0, gid 0 ändern: Die Operation ist nicht erlaubt

Das bisherige Ergebnis der Odyssee:

habe zu der Fehlermeldung folgendes über google gefunden:
http://www.ip-phone-forum.de/archive/index.php/t-152615.html
Entweder Du bist nicht root, oder Du verwendest ein Dateisystem, das den Eigentümer nicht ändern kann.
Das letztere ist es wohl - mein Dateisystem des USB-Sticks habe ich nicht geändert,
weil ich meine Änderungen an den html/php-File mit jemanden austauschen wollte, der mit Windows arbeitet

F r a g e:
Die Lösungsansätze, die mir bisher einfallen - Frage: taugt da einer was - was muss ich beachten

1. den Entpacker tar irgendwie davon abhalten(Optionen von tar), Benutzerrechte setzen zu wollen
stellt sich nur die Frage, ob xamp ohne diese Rechte überhaupt vernünftig arbeitet.
Seht Ihr da eine Chance - schließlich weiß ich ja nicht, ob die enthaltenen Programme beim Arbeiten
auch irgendwelche Benutzerrechte setzen möchte und da nun einmal von einem Linux-Dateisystem
ausgehen, wenn man die Linuxversion installiert?

habe schon gesehen dass es folgende Optionen gibt:
--owner 0 set owner to 0 while adding files - ist wahrscheintlich so verpackt worden?
-o extract files with owner to current user (the default for non-root-users)

Allerdings helfen diese Optionen mir nicht beim Entpacken ohne Rechte zu setzen,
suche aber nicht weiter, wegen der oben genannten Bedenken.

2. was mir weniger gefällt - weil nicht unter Windows lesbar (zumindest nicht von jemanden, den ich nicht nötigen
möchte ein Schnittstellenprogramm/Treiber unter Windows zu installieren), werde ich nun doch in Erwägung ziehen:

den Stick ext3 oder irgendwie Linux-kompatibel formatieren, mit Filesystem, das Benutzerrechte auf Dateiebene ermöglicht.

Kann man denn einen USB-Stick einfach mit einem anderen Dateisystem formatieren?
Zerstört man dabei ev. dem Stick seine eigenen Treiberdateien?

Welche Erfahrungen habt ihr damit?

Welches Filesystem würdet ihr nehmen?
( ich habe keine Erfahrung/Kenntnis der verschiedenen Linux-Dateisysteme, sollte aber irgendwann einmal zum arbeiten an
der eigentlichen Aufgabe kommen. - Ich denke platzsparend sollte es sein (falls mit einer Art File Allocation Table gearbeitet
wird, wäre eine kleine Blockgröße nicht dumm.)

Übrigens arbeite ich unter Knoppix/Linux weil ich keine Platte mit einem Windows habe, auf dem ich rumspielen oder irgendwas
installieren will. Dann stände schon wieder das Thema Plattenkauf an, mit all diesen Fragen: externe USB-Platte, die unter Linux
und Windows-System gleichzeitig enthalten kann - habe heute erst erfahren, dass USB-Platten Treiber benötigen.

Danke für Euere Ideen.


-----------------------------------------------------------

Ich bin im Detail wie folgt vorgegangen.

- Download xamp erfolgt auf Verzeichnis /home/knoppix/Downloads

- auf dem USB-Stick ein Verzeichnis /media/sda1/aMyArea angelegt

- weil /opt schon ein Symblink ist (auf UNIONFS/opt) habe ich diesen gelöscht
aus der root-Konsole
rm /opt

- dann habe ich einen neuen Symlink angelegt mit
ln -is /media/sda1/aMyArea/opt /opt

- dieser scheint auch alle Rechte zu haben:
root@Microknoppix:/media/sda1/aMyArea# ls -ali
insgesamt 12
1417 drwxrwxrwx 3 knoppix knoppix 4096 19. Apr 15:11 .
1 drwxrwxrwx 7 knoppix knoppix 4096 1. Jan 1970 ..
1418 drwxrwxrwx 3 knoppix knoppix 4096 19. Apr 18:47 opt
root@Microknoppix:/media/sda1/aMyArea#

- jetzt prüfe ich gleich noch den Symlink:
root@Microknoppix:/# ls -li /opt
21917 lrwxrwxrwx 1 root root 23 19. Apr 16:45 /opt -> /media/sda1/aMyArea/opt
root@Microknoppix:/# ^C
root@Microknoppix:/#

- gem. Anleitung soll ich mit su in Root wechseln,
bei meinem ersten Versuch arbeitete ich aus der Root-Konsole - mit dem selben Problem
da ich den Unterschied zwischen Rootkonsole und mit 'su' Root werden und ein Programm mit sudo starten
nicht so ganz überblicke habe ich eine normale Konsole verwendet und habe mit su nach root gewechselt
und die Installation (nach dem Löschen der erzeugten Verzeichnisse/Dateien) erneut gestartet

-dann nochmaliges starten der Installation gem. Doku Aufruf folgt Aufrufe (die Umleitung in eine Datei ist natürlich nicht aus der Doku):
root@Microknoppix:/home/knoppix/Downloads# tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt &>xinst.txt
^C <--- Abbruch, weil ich schon weiß, dass Fehlermeldungen
root@Microknoppix:/home/knoppix/Downloads# whoami
root

Datei inst.txt enthält die folgenden Meldungen
lampp/
lampp/logs/
lampp/logs/ssl_request_log
tar: lampp/logs/ssl_request_log: Kann Datei-Eigentümer nicht zu uid 0, gid 0 ändern: Die Operation ist nicht erlaubt
lampp/logs/php_error_log
tar: lampp/logs/php_error_log: Kann Datei-Eigentümer nicht zu uid 0, gid 0 ändern: Die Operation ist nicht erlaubt
lampp/logs/error_log
tar: lampp/logs/error_log: Kann Datei-Eigentümer nicht zu uid 0, gid 0 ändern: Die Operation ist nicht erlaubt
lampp/logs/access_log
tar: lampp/logs/access_log: Kann Datei-Eigentümer nicht zu uid 0, gid 0 ändern: Die Operation ist nicht erlaubt
lampp/cgi-bin/
tar: lampp/logs: Kann Datei-Eigentümer nicht zu uid 0, gid 0 ändern: Die Operation ist nicht erlaubt
lampp/cgi-bin/printenv
tar: lampp/cgi-bin/printenv: Kann Datei-Eigentümer nicht zu uid 0, gid 0 ändern: Die Operation ist nicht erlaubt
lampp/cgi-bin/test-cgi
tar: lampp/cgi-bin/test-cgi: Kann Datei-Eigentümer nicht zu uid 0, gid 0 ändern: Die Operation ist nicht erlaubt

... bis zum Abbruch mit Ctrl+C weil ich den Fehler ja schon einmal hatte

Nochmals Danke für das Drüberschauen und lesen bis hier her.
(falls mir hier niemand helfen kann, suche ich gerne nach einem xamp-Forum)

Gruß
the_idealist100

Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von »the_idealist100« (23.05.2010, 17:58)


klaus2008

Meister

Beiträge: 2 688

Geschlecht: Männlich

2

23.04.2010, 23:43

Containerdatei

Hallo!

Du musst nicht den gesamten Stick mit dem ext2-Dateisystem formatieren, sondern kannst einfach eine große Containerdatei anlegen, mit dem ext2-Dateisystem versehen und als loop-Device einbinden. Dann hast Du so etwas wie eine weitere Festplatte.

1. Erstellen einer 1000 MB großen Containerdatei auf einem Stick, der als /media/sdb1 in das Dateisystem eingebunden wurde.

Quellcode

1
2
sudo dd if=/dev/zero of=/media/sdb1/extra.img bs=1M count=1000
sudo mkfs.ext2 -L Extra /media/sdb1/extra.img
Das Formatieren muss man natürlich zulassen, obwohl es sich um kein spezielles Block-Gerät handelt.

2. Einbinden der Containerdatei in das Dateisystem an der Stelle /opt

Quellcode

1
2
[ -d /opt ] || sudo mkdir /opt
sudo mount -t ext2 -o loop /media/db1/extra.img /opt


3. Lösen der Einbindung

Quellcode

1
2
3
sudo umount /opt
losetup -a
losetup -d /dev/loop1

Der erste Aufruf von losetup zeigt, welche loop-Devices im System vorhanden sind. Mit dem zweiten Aufruf von losetup kann man das loop-Device wieder freigeben (also /dev/loop1 entsprechend anpassen). Sonst kann man vor dem Problem stehen, dass nach mehrmaligem Anwenden des mount-Befehls mit einem loop-Device und späterer umount-Anweisung trotzdem alle loop-Devices belegt sind. Zumindest bei Knoppix 6.1 beinhaltet umount nicht die anschließende Ausführung von losetup -d.

Vielleicht kannst Du damit etwas anfangen.

Gruss Klaus

3

25.04.2010, 00:46

geniale Lösung - Danke - der Softlink /opt muss wohl doch vorher gelöscht werden?

Hallo Klaus2008,

danke - mein xampp ist auf dem USB-Stick installiert - die ersten Startversuche scheinen zu klappen.

Einfach eine geniale Lösung. Danke das Du mir die Lösung so detailiert ausgearbeitet hast.

Allerdings habe ich festgestellt, daß /opt nach Ausführung von 2. immer noch als symbolischer Link auf /UNIONFS/opt zeigt,
wenn ich das mit "ls -ali /opt" prüfe.

Ich weiß zwar nicht, ob das die optimalste Lösung ist(vielleicht gibt es für das mounten eines loop-Devices eine Option um vorhandene Softlinks zu ersetzen), ich habe den Softlink mit "rm /opt" gelöscht, dann mit "mkdir /opt" einen Mountpoint angelegt und dann 2. noch einmal ausgeführ. (vorher habe ich natürlich mit den Anweisungen aus 3. die Einbindgung des loop-Files gelöst).

Bezüglich xamp mußte ich dann noch die Benutzerrechte anpassen - aber diesbezüglich hatte ich ja auch nicht weiter gefragt.

Eigenartigerweise liest man in der Manpage von Mount (Knoppix 6.2)
If no explicit loop device is mentioned (but just an option \`-o loop\'
is given), then mount will try to find some unused loop device and use
that. If you are not so unwise as to make /etc/mtab a symbolic link to
/proc/mounts then any loop device allocated by mount will be freed by
umount. You can also free a loop device by hand, using \`losetup -d\',
see losetup(8).

Demnach müßte eigentlich umount auch die Freigabe des loop-Devices bewirken.
Das habe ich aber noch nicht näher getestet, weil ich nicht so sicher weiß, wie ich prüfe, welche loop-Devices alle belegt/vergeben sind.
Denn "losetup -a" zeigt gleich zwei Einträge an, wenn ich dann das erste lösche, sind jedoch beide weg. Da muß ich mir nochmal den Befehl losetup ansehen(vielleicht ist das alles ja ganz normal), der Befehl scheint mir aber eher knoppixspezifisch - in meinem relativ ausführlichen Debian-Buch (Heike Jurzik) finde ich ihn nicht.

Quellcode

1
2
3
4
5
6
7
8
9
losetup -a
#Meldung bei Ausführung in der Konsolenkommandozeile
# root@Microknoppix:/# losetup -a
#  /dev/loop0: [0811]:334 (/media/sdb1/xampWork.img)
#  /dev/loop/0: [0811]:334 (/media/sdb1/xampWork.img)
### prüfen ob das immer so ist, oder nur weil ich mich beim mount ev. vertippt hatte
# root@Microknoppix:/# losetup -d /dev/loop0 
# root@Microknoppix:/# losetup -a
# root@Microknoppix:/#


Übrigens schlägt mein Debian-Buch vor, mittels eines Blickes in die Datei /var/log/messages (als Admin) festzustellen, unter welchem Namen sich das usb-Gerät anmeldet.
Bei Knoppix finde ich die Datei an dieser Stelle nicht. Irgendwo unter /knoppix/ ... hatte ich mit find die Datei gefunden, diese war aber 0 Byte lang. Ich meine mich zu erinnern, daß man irgendeine Linux-Logdatei erst aktivieren mußte - bevor man die letzten x Einträge anschaut - habe das aber nicht mehr parat - deshalb könnte das normals sein. Außerdem denke ich, fällt das unter die Rubrik, daß Knoppix wohl nicht genau gleich Debian ist.

Nun für heute (gestern) :) habe ich erst einmal genug getan - wollte mich auch nur mal bedanken und vom Status berichten.

Gruß

the_idealist100

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »the_idealist100« (15.05.2010, 00:03)


4

26.04.2010, 17:53

Stick kann man nicht umounten - kein Wiedereinhängen des USB-Stick-Loop-Device-Files nach Neustart Live-Knoppix

Hallo,

der Versuch des wieder Mountens des loop-Devices nachdem Knoppix neu gestartet funktioniert noch nicht.

Aber viel schlimmer noch - dazu benötige ich zuerst Hilfe - dann probiere ich alles noch einmal - der USB-Stick läßt sich nicht mehr umounten.

Also zuerst versuchte ich, nachdem ich nach dem Neustart von Knoppix,
den Symlink /opt gelöscht hatte mit:
[ -L /opt ] && sudo rm /opt
ein Verzeichnis /opt angelegt hatte mit:
[ -d /opt ] || sudo mkdir /opt
die loop-Datei (die ich xampWork.img genannt hatte - würde ich ja nochmals testen, diese genau wie vorgeschlagen "Extra" zu nennen - jedoch muss ich erst einmal das umounten des USB-Sticks bewerkstelligen - neu starten - ev. Datei löschen)

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
root@Microknoppix:/home/knoppix# sudo mount -t ext2 -o loop /media/sdb1/xampWork.img /opt
ioctl: LOOP_CLR_FD: Das Gerät oder die Ressource ist belegt
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail  or so

root@Microknoppix:/home/knoppix# dmesg | tail -30
[  271.355971] sd 4:0:0:0: [sda] Write Protect is off
[  271.355978] sd 4:0:0:0: [sda] Mode Sense: 23 00 00 00
[  271.355983] sd 4:0:0:0: [sda] Assuming drive cache: write through
[  271.370964] sd 4:0:0:0: [sda] Assuming drive cache: write through
[  271.370977]  sda: sda1
[  271.385046] sd 4:0:0:0: [sda] Assuming drive cache: write through
[  271.385059] sd 4:0:0:0: [sda] Attached SCSI removable disk
[  290.683330] usb 1-1: new high speed USB device using ehci_hcd and address 3
[  291.311080] usb 1-1: New USB device found, idVendor=090c, idProduct=6000
[  291.311089] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  291.311094] usb 1-1: Product: USB 2.0 Mass Storage Device
[  291.311099] usb 1-1: Manufacturer: Siliconmoton Inc.
[  291.311103] usb 1-1: SerialNumber: AA00000000008242
[  291.311545] usb 1-1: configuration #1 chosen from 1 choice
[  291.323442] scsi5 : SCSI emulation for USB Mass Storage devices
[  291.324064] usb-storage: device found at 3
[  291.324073] usb-storage: waiting for device to settle before scanning
[  297.185019] scsi 5:0:0:0: Direct-Access     SMI                       0100 PQ: 0 ANSI: 0 CCS
[  297.185985] sd 5:0:0:0: Attached scsi generic sg3 type 0
[  297.187093] usb-storage: device scan complete
[  297.401280] sd 5:0:0:0: [sdb] 7928832 512-byte logical blocks: (4.05 GB/3.78 GiB)
[  297.401887] sd 5:0:0:0: [sdb] Write Protect is off
[  297.401893] sd 5:0:0:0: [sdb] Mode Sense: 4b 00 00 08
[  297.401898] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[  297.404644] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[  297.404656]  sdb: sdb1
[  297.407162] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[  297.407171] sd 5:0:0:0: [sdb] Attached SCSI removable disk
[  598.003753] EXT2-fs error (device loop0): ext2_check_descriptors: Block bitmap for group 6 not in group (block 0)!
[  598.003764] EXT2-fs: group descriptors corrupted!
root@Microknoppix:/home/knoppix#


Nun - als ich zwischenzeitlich auch alles Mögliche gemacht habe, z.B. Dateien in ein anderes (nicht im loop-Device liegendes) Verzeichnis des Sticks kopiert, was auch die Ursache sein könnte, kann ich den USB-Stick nicht mehr aushängen, um das System sauber herunterzufahren.

Am Vortag hatte ich ja schon einmal ein ähnliches Problem - konnte aber zumindest mit lsof noch feststellen welcher Prozeß aktiv war - gedit ? oder so, etwas das gar nichts mit dem loop-Device zu tun hatte. Hatte mit kill gelöscht, umount und runtergefahren - danach die ganze loop-Datei gelöscht und erneut erzeugt.

Vor dem herunterfahren hatte ich alles ordnungsgemäß nach 3. der Anleitung ausgehängt.

Heute sieht das so aus (Übrigens arbeite ich auf der Rootkonsole - deshalb nicht immer ein sudo):

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
root@Microknoppix:/home/knoppix# lsof /media/sdb1
root@Microknoppix:/home/knoppix# lsof /dev/sdb1
root@Microknoppix:/home/knoppix# umount /opt 
umount: /opt: not mounted
root@Microknoppix:/home/knoppix# umount /media/sdb1
umount: /media/sdb1: device is busy
umount: /media/sdb1: device is busy

root@Microknoppix:/home/knoppix# umount /opt
umount: /opt: not mounted
root@Microknoppix:/home/knoppix# mount
rootfs on / type rootfs (rw,relatime)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
/dev/sr1 on /mnt-system type iso9660 (ro,relatime)
tmpfs on /ramdisk type tmpfs (rw,relatime,size=1048576k)
/dev/cloop on /KNOPPIX type iso9660 (ro,relatime)
unionfs on /UNIONFS type aufs (rw,relatime,si=ffcfe46d,noplink)
unionfs on /home type aufs (rw,relatime,si=ffcfe46d,noplink)
usbfs on /proc/bus/usb type usbfs (rw,relatime)
tmpfs on /UNIONFS/var/run type tmpfs (rw,relatime,size=10240k)
tmpfs on /UNIONFS/var/lock type tmpfs (rw,relatime,size=10240k)
tmpfs on /UNIONFS/var/log type tmpfs (rw,relatime,size=102400k)
tmpfs on /tmp type tmpfs (rw,relatime,size=1048576k)
udev on /dev type tmpfs (rw,relatime,size=20480k)
tmpfs on /dev/shm type tmpfs (rw,relatime,size=1048576k)
devpts on /dev/pts type devpts (rw,relatime,mode=1777)
/dev/sdb1 on /media/sdb1 type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp850,iocharset=iso8859-1,shortname=winnt,errors=remount-ro)
root@Microknoppix:/home/knoppix#

Zugegeben die Meldung von mount, und was da so alles eingehängt ist verstehe ich nicht im Detail.

Da fällt mir etwas auf - was habe ich umounted - das Loop-File oder den USB-Stick?
Also alles nochmals von vorne, sofern ich momentan erst einmal alles umounten kann zum herunterfahren.

Also so richtig wichtig ist mir im Moment nur das umounten, ich fahre jetzt extra das System nicht herunter und hoffe mir kann jemand helfen.

Gruß

the_idealist100

klaus2008

Meister

Beiträge: 2 688

Geschlecht: Männlich

5

26.04.2010, 21:23

Hallo!

Einen Fehler zu finden, erscheint mir schwierig...

Hattest Du nach dem misslungenen mount-Befehl losetup ausgeführt und nachgesehen, ob das loop-Device benutzt wird?

Man kann das Dateisystem der nicht eingebundenen Containerdatei mittel e2fsck überprüfen

Quellcode

1
e2fsck -pfv /media/sdb1/xampWork.img


Gruß Klaus

6

26.04.2010, 23:20

nachsehen ob loop-Device benutzt wird?

Hallo,

mit welchen Anweisungen kann ich prüfen, ob das Loop-Device tatsächlich benutzt wif? Das scheint mir ja ziemlich Knoppix-spezifisch, da ich in meinem dicken und auch ziemlich aktuellen Debian-Buch gar nichts zu diesem Thema finde.

Ich habe den Symlink /opt gelöscht - habe das mit ls -ali /opt geprüft.
Habe ein Verzeichnis /opt angelegt und die mount-Anweisung wie von dir vorgeschlagen ausgeführt.

Danach habe ich xampp auf /opt entpackt (mehr braucht es zum Installieren nicht). Dann habe ich im Browser die Verbindung zum Apache-Server von xamp getestet, habe die Demoseiten gesehen und habe unter phpmyadmin eine Datenbank angelegt eine Tabellenstruktur importiert.

Aber kann ich sicher sein, dass die Daten in der Loop-Back-Datei des USB-Sticks sind oder kann es bei einer Fehlfunktion auch passieren, dass ich irgendwo auf dem im Hauptspeicher simulierten Filesystems arbeite, ohne es zu merken.

Ich meine im Dateimanager PCMan File Manager gesehen zu haben, daß die Dateigröße der angelegten loop-Back-Datei erst 1 GB war, jetzt ist Sie nur 805,3 MB. Habe ich beim zweiten Versuch, mich bei dem Parametern von dd vertippt? - ist es normal, daß sich die Größe der für das Loop-Device angelegten Datei, je nachdem wieviele Daten darauf gespeichert sind - ändert? Wäre dies ein Indiz dafür, dass ich wirklich auf dem Loop-Device arbeite.

Eine Frage, wo erfolgt denn die Speicherung der Verwaltungsdaten eines Loop-Devices? - Auf dem Device selbst, wären diese ja noch nach einem Neustart eines Live-Systems erhalten. Wenn ich nach einem Neustart des Livesystems versuche, das Device erneut zu mounten bekomme ich ja die folgende Meldung(wie im Code-Fenster in der vorherigen Antwort):
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error

Das sieht ja so aus, als wenn irgendein irgendwo gespeicherter Superblock fehlt, er nicht mehr weiß, in welchem Filesystem das Loop-Device mit mkfs.ext2 formatiert wurde?

Hast Du dieses Vorgehen so schon jemals selbst benutzt oder von jemanden gehört, der dies tut? Speziell das wieder mounten von einem auf USB-Stick befindlichen Loop-Devices und hast danach wieder die Daten gefunden? Oder war Dein Vorschlag eher als ungetestete Idee zu verstehen? Das soll nicht heißen, daß ich nicht auch dafür dankbar wäre, nur wenn ich weiß, dass das schon einmal bei jemanden funktioniert hat, suche ich nach dem Fehler und bleibe dran - ansonsten ist die Fehlersuche sicher auch interessant, um zu lernen wie ein loop-Device arbeitet. Trotzdem müßte ich mir dann erst einmal eine andere Lösung suchen - und wenn es eine Festplatteninstallation ist, schließlich ist das Ziel an einem php-Programm mit zu arbeiten und dabei Erfahrung mit php zu sammeln.

Danke.

Gruß

the_idealist100

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »the_idealist100« (16.05.2010, 20:44)


klaus2008

Meister

Beiträge: 2 688

Geschlecht: Männlich

7

27.04.2010, 18:51

Zitat von »the_idealist100«

mit welchen Anweisungen kann ich prüfen, ob das Loop-Device tatsächlich benutzt wif?
Ich würde es mit

Quellcode

1
losetup -a
versuchen.

Es gibt einen kurzen Eintrag bei Wikipedia über loop-devices: http://de.wikipedia.org/wiki/Loop_device

8

28.04.2010, 00:16

loopdevice vorhanden oder benutzt?

Hallo Klaus,

Danke!

Die Betonung meiner Frage lag auf "benutzt".

Ich hatte das so verstanden, dass losetup -a mir eine Auflistung der vorhandenen loopdevices liefert.
Jedoch keine Aussage darüber macht, ob und wofür es benutzt wird.

Morgen werde ich noch ein letztes Mal testen. Nur da device anlegen - eine Datei draufschieben - sauber aushängen - wieder einhängen ohne und mit Knoppix neu starten.

Habe zu dem Thema noch etwas gefunden - Galileo Openbook - Linux -Johannes Plötner, Steffen Wendzel - wenn man in google nach "loop device" and "usb".

Ob mich das aber soweit bringt, die programmtechnischen Abläufe so weit zu verstehen, daß ich beurteilen kann, ob man ein Live-System zwischendurch runterfahren kann und nach dem Start durch ein erneutes mounten wieder auf die im loop device gespeicherten Daten zugreifen kann, wird man sehen.

Ich würde mich ja mal an den sourcecode wagen - aber wer weiß wieviele Bibliotheken da eingebunden sind und wie umfangreich das wäre.

Gruß

the_idealist100

RalfonLinux

Erleuchteter

Beiträge: 2 932

Geschlecht: Männlich

9

06.05.2010, 10:28

Hi idealist,

sorry das ich mich einmische, aber wenn du deine Daten im /dev/loop ablegst, wie kommt der Windowsuser hinterher darauf ?
Er kann mit der Datei doch nichts anfangen.

Ich habe ähnliches mal für einen Bekannten gebaut, und habe mir mittels qemu eine virtuelle Maschine gebastelt.
Das virtuelle Festplattenimage (max 2GB) habe ich ihm auf eine DVD gebrannt, und qemu für Windows gleich mit dazu.
Wenn er jetzt XAMP machen möchte, startet er OHNE Admin-Rechte den qemu mit der entsprechenden Datei.

Die veränderlichen Daten kommen vom USB-Stick, welche ich innerhalb der VM gemountet habe.


Eine weitere Möglichkeit wäre, ihn die portableVersion des XAMP kopieren zu lassen.
http://portableapps.com/apps/development/xampp benötigt keine Installation, es werden nur die Dateien entpackt.
Somit könnte er auch ohne Admin-Rechte XAMP auf seinem Windows-Rechner machen.

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\
 /( _ )\      // \\
  ^~ ~^      /( _ )\
              ^~ ~^

M4xi

Profi

Beiträge: 1 150

Geschlecht: Männlich

10

12.05.2010, 22:48

Hi,

bin auch mal wieder da...
Also ich habe jetzt nicht alles gelesen, da ich im Moment nicht so viel Zeit habe (Schule).
Soweit ich weiß, brauchst Du kein Linux-Dateisystem, wenn Du nur "htdocs" auslagerst.
Somit würdest Du auch unter Windows an deine Daten kommen.
Einfach einen USB-Stick NTFS, FAT oder sonst wie formatieren und dann wie ich schon sagte (war ich doch oder?) den Link anlegen.
Wenn es hier um ein Remaster geht kannst Du den Link einfach nach "/mnt/htdocs" linken und dort dann den USB-Stick einbinden.

Viele Grüße
Maxi

11

13.05.2010, 19:11

Fehler: mount: wrong fs type, bad option, bad superblock on /dev/loop0 (Windows wird nicht benötigt)

Hallo,

Danke für Euere Mühe.

Erst einmal kleine Brötchen backen - bin Linux-Einsteiger - deshalb arbeite ich noch mit dem Knoppix-Live-System - und möchte das auch so handhaben, bitte keine umfangreichen Lösungen mit virtueller Maschine ....

Das ursprüngliche Thema war: das xamp bei der Installation (der Linuxversion!) irgendwelche Dateirechte prüft, auf einem FAT-Dateisystem gibt es keine Rechte auf Dateiebene. NTFS scheint mir wegen dem Platzbedarf und auch wegen der vielleicht noch nicht ganz ausgereiften Unterstützung durch Linux nicht die ideale Lösung.

Die Sache mit dem loop-Device fand ich gar nicht schlecht - scheint Platzsparend.

Ich will ja im Moment nur ein paar einfache php-Seiten mit kleiner SQL-Datenbank testen und umbauen - so zur Übung. Da muss nichts unter Windows direkt lesbar sein - ich besitze keine Window-XAMPP-Installation. Die php-Dateien kopiere ich dann vom Loop-Device in den Fat-Bereich des USB-Sticks.

Grundsätzlich finde ich die Idee mit dem Loop-Device für meine Zwecke ganz brauchbar - sicher täte es auch eine ein USB-Stick den ich mit einem anderen Dateisystem formatiere.

Nun würde ich gerne erst einmal mit der angefangen Lösung mit dem Loop-Device weiterkommen und mich nicht total verzetteln.

Habe zumindest einmal das Speichern einer normalen Textdatei im loop-Device getestet - Knoppix/den Rechner heruntergefahren - neu gestartet - loop-Device neu eingehängt - die Daten sind noch da. Also liegt es daran wohl nicht. Deshalb einfach die Frage kennt jemand die Fehlermeldung des loopdevices.

Da im Moment ziemlich viel andere wichtige Dinge anstanden - hatte ich das Thema zurückgestellt. Habe das php-Programm erst einmal im Brain-Mode analysiert. Nun wirklich mit xampp zu arbeiten wäre schon cool. Im Notfall muß ich auch noch mit einer Ubuntu-Installation anfangen und komme so vom Hundertsten ins Tausendste (keinesfalls möchte ich mich auch noch mit einem virtellen System beschäftigen). Im übrigen verstehe ich es sowieso nicht, warum in allen möglichen Situationen empfohlen wird auf ein virtuelles System zurückzugreifen (sogar beim Remastern, da hat man doch früher auch das Image zum Testen als Loop-Device eingehängt?). Ich denke, ein virtuelles System simuliert ja nicht nur ein Speichermedium eines Dateisystems sondern ev. ein ganzes Betriebssystem - also ist dies weit aufwändiger als eine Image-Datei zu verwenden. Ich denke immer "mehr Funktionen = mehr Aufwand, den die entsprechende Verwaltungssoftware (des Loop-Devices oder des Virtuellen Systems) unterstützt = mehr Fehlermöglichkeiten. Mein Motto wäre eher "Keep it small, keep it simple".

Meine aktuelle Frage lautet:

Zitat

Eine Frage, wo erfolgt denn die Speicherung der Verwaltungsdaten eines Loop-Devices? - Auf dem Device selbst, wären diese ja noch nach einem Neustart eines Live-Systems erhalten. Wenn ich nach einem Neustart des Livesystems versuche, das Device erneut zu mounten bekomme ich ja folgende Meldung(wie im Code-Fenster in der vorherigen Antwort):
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error


Trotzdem Danke für die Mühe.

Gruß

The_idealist100

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »the_idealist100« (13.05.2010, 19:56)


M4xi

Profi

Beiträge: 1 150

Geschlecht: Männlich

12

13.05.2010, 19:30

Hi,

Zitat

das xamp bei der Installation (der Linuxversion!) irgendwelche Dateirechte prüft, die es auf einem FAT-formatierten USB-Stick nicht gibt. NTFS scheint mir wegen dem Platzbedarf und auch wegen der vielleicht noch nicht ganz ausgereiften Unterstützung durch Linux nicht die ideale Lösung.
Das geht generell nicht weder bei FAT noch bei NTFS.
Um ein Programm unter Linux ausführen zu können, muss es das Attribut "x" haben und genau das wird bei den Windows Dateisystem nicht gespeichert.
Wenn Du nur "htdocs" auslagerst, ist das egal, da da keine Programme zum ausführen liegen. (PHP-Skripte != Programme).

Zitat

Eine Frage, wo erfolgt denn die Speicherung der Verwaltungsdaten eines Loop-Devices? - Auf dem Device selbst, wären diese ja noch nach einem Neustart eines Live-Systems erhalten. Wenn ich nach einem Neustart des Livesystems versuche, das Device erneut zu mounten bekomme ich ja die folgende Meldung(wie im Code-Fenster in der vorherigen Antwort):
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
Welche Verwaltungsdaten?
Wie mountest Du denn?
Mit "losetup" oder wie das heißt, oder direkt mit "mount".
Da da "/dev/loop0" steht gehe ich mal von erstem aus.
Hier mal eine Auflistung der Befehle, wie ich es machen würde.
Erstellen der Image Datei (2GB):

Quellcode

1
dd if=/dev/zero of=imagedatei bs=512 count=4194304
Formatieren der Datei mit einem Dateisystem (ext2):

Quellcode

1
mk2fs imagedatei
Mounten der Datei:

Quellcode

1
mount -rw imagedatei /opt -o loop
Umounten:

Quellcode

1
umount /opt

Nach Neustart:
Mounten der Datei:

Quellcode

1
mount -rw imagedatei /opt -o loop
Umounten:

Quellcode

1
umount /opt

Das muss funktionieren...

Viele Grüße
Maxi

13

14.05.2010, 23:21

@RalfonLinux

Hallo Ralf,

auch Dir danke für Deinen Vorschlag.

Du hast, glaube ich die Situation nicht ganz verstanden.

Das mein Bekannter direkt auf meine Dateien zugreifen kann, habe ich schon gestrichen - ich kopiere die geänderte php-Datei nach meinen Tests einfach aus dem Loop-Device zurück auf ein normales Verzeichnis des Fat-Formatierten USB-Sticks.

Also die Sache ich so, ein netter Bekannter hat ein kleine php-Projekt, dort sind ein paar Anpassungen vorzunehmen, hat mir erklärt wie das ganze im Moment arbeitet, was das Ziel ist und mir diese Aufgabe zum Üben überlassen. Das macht halt mehr Spaß als einfach nur Trockenübungen zu machen.

Dieser Bekannte hat ein XAMP unter Windows laufen - der braucht also kein xamp von mir, sondern nur die geänderten php-File und die ev. geänderten Datenbanken(eher selten) (da muss ich noch schauen, xampp enthält ja ein tool mit dem man die Datenbankstruktur exportieren/importieren kann - oder ob ich es schaffe die nötigen Dateien zu identifizieren, diese unter Windows und ev. einer anderen MySQL-Release diese direkt kopiert werden können - erscheint mir eher riskant)

Nur ich habe eine Windows2000-Einrichtung auf der sich meine wichtigen privaten Daten befinden - mit dieser Platte gehe ich nicht in das Internet und ich installiere hier auch eher selten etwas (da müßte man ja dann dauernd in das Internet und Updates ziehen).
Parallel dazu arbeite ich mit einer Knoppix-Live-CD, um in da Internet zu gehen.
Weil ich gerade mal ein bischen mit Maxis Hilfe eine Live-DVD remastert habe - mit einem XAMP - will ich XAMP unter Knoppix im Live-Betrieb betreiben.
Da ich die php-Dateien nach einem Herunterfahren des Systems noch benötige, wollte ich das Verzeichnis htdocs auf den Stick mounten.
Dann fiel mir aber auf, dass es ja für XAMPP auch immer wieder neue Versionen geben wird - ich nicht jedesmal Knoppix remastern wollte , XAMPP sowieso auf /opt installiert wird - so wollte ich das ganze Verzeichnis /opt auf den USB-Stick legen und XAMPP gleich dort installieren.

Übrigens verstehe ich die Sache mit qemu nicht so ganz, müßte mich damit dann auch erst intensiv. beschäftigen. Hast Du nun eine virtuelle Maschine bebastelt oder ein virtuelles Festplattenimage? Eine virtuelle Maschine würde ja ein gesamtes Betriebssystem simulieren - das im Live-System scheint mir ziemlich Speicherintensiv? (Habe nur 1,5 GB)

Das stelle ich jetzt doch erst einmal zurück. Danke für Deine Mühe.

Gruss

the_idealist100

14

14.05.2010, 23:59

@Maxi

Hallo Maxi,

schön auch von Dir wieder etwas zu hören.

Deine Vorschläge sind denen von Klaus2008 ja ziemlich ähnlich.

Ich hatte die Befehle auch schon in Skripte zusammengefasst, damit ich nicht immer daran zweifle, ob ich im aktuellen Testfall wieder etwas anderes falsch gemacht habe.
(das war übrigens eine Idee von jemanden hier im Forum - mache alles mit Skripten und dokumentiere dadurch, was ich getan habe)

Es gibt drei Skripte:

- Create - erstellt das loop-File und instaliert xampp
- ...on - hängt das loop-File zum Arbeiten ein
- ...off - hängt alles wieder aus, um das System danach herunterzufahren.

Leider sind die Skripte noch etwas unübersichtlich, weshalb ich Sie hier nicht hereingestellt hatte. Ich habe mir ziemlich viele Notizen zu den Anweisungen und den Optionen gemacht mit Seitenverweisen auf meine Bücher usw. Dann gibt es auch noch Notizen zu offenen Fragen, die ich später genauer klären wollte. Außderdem habe ich auch noch so eine Art Einzelschritt eingebaut - nach jeder Anweisung wird auf ein Quittieren gewartet, damit ich die Meldungen genau ansehen kann und im Bedarfsfall vor dem nächsten Schritt Prüfungen in einer anderen Konsole vornehme oder mit Strg+C das Skript abbreche, um noch bestimmte Überprüfungen vorzunehmen. Werde diese mal überarbeiten und Sie zur Überprüfung anhängen.

Das wird wohl Sonntag werden, bis ich dazu komme.

Danke.

Gruß

the_idealist100

RalfonLinux

Erleuchteter

Beiträge: 2 932

Geschlecht: Männlich

15

21.05.2010, 19:02

Hi idealist,

wegen qemu, ist ganz einfach.
Du hast einen Windows-Rechner, der NICHT ins Internet soll, okay.
Du brauchst eine XAMP-Installation, welche NICHT im Internet steht, okay
Du willst die Dateien aus dem XAMP tauschen mit deinem Bekannten, auch okay.

Ich kann dir jetzt nur die Anleitung für die Linux-Lösung geben, aber das solltest du auch auf Windows umsetzen können.
Du nimmst von http://homepage3.nifty.com/takeda-toshiya/qemu/index.html die qemu für Windows bzw. das entsprechende Pendant für deine Linux-Version.

Nun erstellst du eine virtuelle Festplatte

Quellcode

1
qemu-img create xamptest.img 2GB
Dies erzeugt eine 2GB-Datei
Nun

Quellcode

1
qemu -m 512M -hda xamptest.img -cdrom /dev/sr0 -boot d

Er nimmt als virtuelle Maschine 512MB, xamptest.img ist seine priFestplatte, als CDROM hast du die physikalische CD in deinem physiklischen DVD-Laufwerks drinne.

Wenn die virtuelle Maschine jetzt startet, wird eine normale Windowsinstallation gestartet, wenn im DVD-Laufwerk deine Windows-Install-CD drinne ist.
Ist KNOPPIX eingelegt, wird halt ebend KNOPPIX gestartet.
Du kannst natürlich auch eine Debin-Install-Cd, K/L/ubuntu oder sonst was einlegen.
So geht z.B. auch eine DSL mit nur 50MB
Du führst also eine normale Installation innerhalb der virtuellen Maschine durch (Nur auf die 2GB)

Nun browst du INNERHALB der VM nach http://www.apachefriends.org/de/xampp-linux.html und nun nimmst dir den XAMPP und folgst deren Anleitung.
Die Installation erfolgt wiederum nur innerhalb der virtuellen Maschine.

Was haben wir bis jetzt ?
Ein virtuelles Windows/Linux
Ein virtuell installierten XAMPP

Wenn dein Bekannter jetzt auch den QEMU unter Linux installiert hat, bzw. als Windows-User du ihm dein runtergeladenen Windows-QEMU mit der 2GB-Datei auf eine DVD-Brennst, habt ihr beide den gleichen Grundstock.

Nun hast du einen USB-Stick, welcher deine PHP-Scripte beinhaltet.
Also startest du bzw. dein Bekannter den QEMU mit

Quellcode

1
2
qemu -m 512M -hda /mnt/cdrom/xamptest.img -hdb fat:/mnt/USBStick -snapshot -net nic \
        -net user,hostfwd=tcp::40080-:80,hostfwd=tcp::40443-:443,hostfwd=tcp::40022-:22

Er läuft jetzt komplett von der DVD, sofern du die "Links" /mnt/cdrom/xamptest.img und /mnt/USBStick für dich angepaßt hast. (Batch oder shell erleicht die Arbeit ;-) )
Deine Daten findest du auf der zweiten virtuellen Festplatte, also z.B. /dev/hdb1 bzw. D:\
Von deinem Host kommst du via localhost:400080 auf Port 80 der VM, entsprechend 40443 auf 443 und 40022 auf 22

Wenn du die VM wieder runter fährst, werden alle Änderungen verworfen. (läßt sich ja auch schlecht auf eine DVD schreiben)
Wenn du die Änderungen auf dem USB-Stick sichern möchtest, kannst du mittels [Strg]+[Alt]+[2] in den QEMU-Monitor wechseln, und

Quellcode

1
commit ide0-hd1
absetzen.
Dann werden die Daten auf hdb, also /mnt/USBStick geschrieben.
Mit [Strg]+[Alt]+[1] kommst du wieder auf deine virtuelle Maschine und gut ist.


So erstmal ins unreine gesprochen, genauere Anweisungen findest du unter
http://qemu-buch.de/de/index.php/QEMU-KV…altsverzeichnis
http://en.wikibooks.org/wiki/QEMU

Viel Spaß über Pfingsten
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\
 /( _ )\      // \\
  ^~ ~^      /( _ )\
              ^~ ~^

16

23.05.2010, 17:57

Danke - gelöst - sieht zumindest im Moment so aus

Hallo Klaus, hallo Maxi,

ich möchte Euch noch einmal für Euere Hilfe danken.

Nun habe ich es beim zweiten Mal lesen wohl erst so richtig verstanden - wie Klaus das gemeint hat, mit der Überprüfung der loop-Device-Image-Datei

Quellcode

1
e2fsck -pfv /media/sdb1/xampWork.img


Da wurde tatsächlich etwas reapariert - und xampp zeigt zumindest die Startseite soweit wieder an. Zugegeben, ich hatte den Befehl ignoriert, weil ich die Ursache für das Problem finden wollte und dann das ganze Loop-Device neu erstellen wollte, damit sicher keine Probleme zurückbleiben. Es ging mir also erst einmal darum, die Fehlerursache zu verstehen.


Nun habe ich den ursprünglichen Fehler, der dazu führte, dass man das device nicht sauber aushängen konnte, doch noch gefunden. Alles funktioniert bestens - das loop-Device installieren - xampp installieren - aushängen - nach Neustart wieder einhängen des loop-Files.

Der letzte Stand sind immer noch die Anweisungen, die mir Klaus an die Hand gegeben hatte und die ich in die Skripte verbaut hatte. Da sich diese kaum von der Empfehlung von Maxi, unterscheiden, hatte ich noch nichts geändert an den Skripten. Auch wenn sich manche Optionen der Anweisungen teilweise unterscheiden, entspechen sie so weit ich das überblicke den Default-Werten und führen wahrscheinlich zum gleichen Ergebnis.

Aber jetzt ist mir beim Überarbeiten der Skripte der Fehler aufgefallen. Ein ganz dummer Fehler, der wohl an meiner Unerfahrenheit mit bash-Skripten lag. Ich hatte in einer Echo-Anweisung einen Fehler mit den Anführungszeichen, was dazu führte, dass der dort enthaltene Texthinweis zu umount tatsächlich als Anweisung ausgeführt wurde, was mir jetzt erst an der farblichen Markierung von geedit aufgefallen ist. Somit wurde der umount vor dem losetup -d ausgeführt, die Fehlermeldung habe ich ev. auf den später codierten umount bezogen und gar nicht bemerkt, dass der umount aus der Echo-Zeile den Fehler meldet.

Ich wollte mich hauptsächlich noch einmal melden und allen Danken.

Gruß

the_idealist100

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