Ein PC hat eine Festplatte mit SATA Schnittstelle und zwei Partitionen. Auf der einen ist ein MSDOS 6.22 installiert, auf der anderen ein Ubuntu. Wenn das MSDOS hochfährt, hat seine Partion die Bezeichnung "c:". Wenn das Ubuntu hochfährt, soll der Anwender gefragt werden, ob er "Sichern" oder Wieder- "Herstellen" möchte. Beim "Sichern" soll ein bestimmter Ordner von der MSDOS Partition in einen bestimmten Ordner eines einzusteckenden USB-Sticks kopiert werden. Beim "Herstellen" soll ein bestimmter Ordner vom USB-Stick in einen bestimmten Ordner der MSDOS Partition kopiert werden. Falls der Ordner auf dem USB-Stick nicht existiert, soll der Bediener darauf hingewiesen werden, dass er jemand benachrichtigt. Falls der USB-Stick nicht steckt, soll der Bediener zum Einstecken aufgefordert werden. Der spätere Bediener hat keine Ahnung von nichts. Er weiß nur, ob er "Sichern" oder "Herstellen" wählen soll. Den Rest muss der PC sicherstellen. Ich muß also zwei Kopierbefehle der Form cp QuellPfad/Ordner ZielPfad/Ordner vorbereiten, der nach der Auswahl von "Sichern" bzw. "Herstellen" aufgerufen wird. Der Pfad beginnt dann mit der Partitionsbezeichnung. Aber woher weiß ich, welche Partitionsbezeichnungen nach dem Hochfahren des Rechners bzw. Einstecken des USB-Sticks die MSDOS und Ubuntu Partition der Festplatte und welche der USB-Stick hat?
fdisk -l Damit siehst du welcher Datenträger durch welche Gerätedatei repräsentiert wird. Der Zugriff auf diese Datenträger erfolgt, indem die Datenträger durch die Gerätedateien ins Dateisystem "eingehängt" werden. Nehmen wir mal folgende Zuordnung an: /dev/sda1 -> MSDOS /dev/sda2 -> Ubuntu /dev/sdb1 -> USB-Stick Dann wird die Ubuntu-Partition, also /dev/sda2, auf jeden Fall mal im root-Verzeichnis ( / ) eingehängt sein. MSDOS und der USB Stick werden - sofern automatisch eingehängt, irgendwo im /media-Verzeichnis sein. Einfach mal nachschauen, was da so drin ist, denn der Ordnername hängt von dem Partitionsname oder der Seriennummer ab. Alternativ kannst du die Laufwerke auch manuell in fest vordefinierte Ordner einhängen. z.B. /dev/sda2 -> /mnt/msdos und /dev/sdb1 -> /mnt/usbstick Dann kannst du mit cp /mnt/msdos/myfile.txt /mnt/usbstick/ bspw. die Datei "myfile.txt" von der msdos-Partition auf den USB Stick kopieren.
:
Bearbeitet durch User
mount reicht doch, fdisk liefert zuviel unnütze Information. Wenn einer einzelne Dateien u. Verzeichnisse kopieren will braucht er den Namen unter dem das im Dateisystem eingehängt ist um es damit anzusprechen, den liefert fdisk nicht braucht also noch einen Schritt den kann man sich aber sparen.
"blkid" und die "/dev/disk/" symlinks von [euv]dev dürften für dich relevant sein. Über welche Informationen du die Laufwerke erkennen willst, musst du selbst wissen.
G. P. schrieb: > Der Zugriff auf diese Datenträger erfolgt, indem die Datenträger durch > die Gerätedateien ins Dateisystem "eingehängt" werden. > Nehmen wir mal folgende Zuordnung an: > /dev/sda1 -> MSDOS > /dev/sda2 -> Ubuntu > /dev/sdb1 -> USB-Stick Kann ich jetzt mit cp /dev/sda1/myfile.txt /dev/sdb1/ kopieren? Ist die Zuweisung zu sda1, sda2, sdb1 das, was man Einhängen/Mounten nennt? Oder kommt das erst danach? Ist die Zuweisung 1) nach jedem Hochfahren 2) bei jedem Rechner mit gleicher Hardware (Motherboard, RAM, Festplatte) gleich oder kann sie auch anders sein, beispielsweise so: /dev/sdb1 -> MSDOS /dev/sdb2 -> Ubuntu /dev/sda1 -> USB-Stick
Karl He. schrieb: > Kann ich jetzt mit > cp /dev/sda1/myfile.txt /dev/sdb1/ > kopieren? > Nein. > Ist die Zuweisung zu sda1, sda2, sdb1 das, was man Einhängen/Mounten > nennt? Oder kommt das erst danach? Danach. --- Das ganze spielt sich doch auschliesslich unter linux ab. Nur wenn das läuft sollen obige Aktionen ausgeführt werden, richtig? Die Partitionen und deren Bezeichner sind dabei erstmal recht egal schon wenn man davon ausgehen kann das der stick beim einstecken automatisch gemounted wird, IDs interessieren ggf. nur wenn geprüft werden soll ob ein ganz bestimmter Datenträger eingehängt wurde. Alles was im filesystem aktuell erreichbar ist steht in /etc/mtab, mount oder cat /etc/mtab zeigt die mountpoints über die das entsprechende Dateisystem des Datenträgers erreichbar ist. Wenn du drauf warten willst bis sich veränderungen zeigen, einer den Speicherstick einsteckt, könnste mit z.B. mit inotifywait /etc/mtab überwachen wenn sich was tut prüfst du auf existenz des Ordners, wenn das ein shellscript werden soll.
Karl He. schrieb: > Kann ich jetzt mit > cp /dev/sda1/myfile.txt /dev/sdb1/ > kopieren? /dev/sdb1 ist ein block device file. Dieses repräsentiert den Speicher der ersten Partition von /dev/sdb (welches den gesamten Speicher des jeweiligen Speichermediums repräsentiert.). Versuche nicht das obere cp Kommando ohne den / am ende auszuführen. Früher ersetzte das nur das device file, aber ich habe gehört dass es mittlerweile so clever ist ins device file zu schreiben (auch wenn ich das noch nie getestet habe), und das würde das Dateisystem dort drin überschreiben, was nicht so gut wäre. Karl He. schrieb: > Ist die Zuweisung zu sda1, sda2, sdb1 das, was man Einhängen/Mounten > nennt? Oder kommt das erst danach? Eine Zuweisung ist kein fester Fachbegriff in diesem Zusammenhang. Wir meinen damit nur, das etwas zu etwas anderem gehört, aber wir beziehen uns nicht alle auf die selben Sachen. Ich interpretierte es als Informationen zu den Laufwerken, so dass man zweifelsfrei sagen kann welches Laufwerk zu was gehört. Für diese Zuordnung kann man aus die UUID, das Label, den physischen Pfad, etc. zugreifen. blkid kann diese Informationen anzeigen, und in /dev/disk/ erstellt [euv]dev immer Verzeichnisse mit Links auf die Device files, so dass man auf diese über deren UUID oder Label, etc. zugreiffen kann. Mounten bezeichnet das einhängen eines Dateisystems ins Filesystem. Du kannst also den Inhalt des Dateisystems in /dev/sdb1 in einem beliebigen Verzeichniss, z.B. /mnt/whatever/ einhängen. Diesen Vorgang bezeichnet man als Mounten. Man nutzt dafür das mount Kommando und/oder die /etc/fstab.
[in sahne] schrieb: > Das ganze spielt sich doch auschliesslich unter linux ab. > Nur wenn das läuft sollen obige Aktionen ausgeführt werden, richtig? Genau!
Karl He. schrieb: > soll der Anwender gefragt werden, ob er > "Sichern" oder Wieder- "Herstellen" möchte. Das ist ja offensichtlich nichts privates, sondern Business. Mein Stundensatz beträgt 280,- Netto.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.