• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Anfängerfrage: Schreibzugriffe auf Festplatte - Wo?

angelfall

Newbie
Hallo allerseits,

ich muss zugeben, dass ich bisher noch überhaupt nichts mit Kernelprogrammierung zu tun hatte und ich mich auch mit Linux nur mittelmäßig auskenne. Aber da ich eine bestimmte Aufgabe bekommen habe und so schlecht "nein" sagen kann, kämpfe ich mich so durch :?

Ich habe eine SATA-Festplatte und Suse Linux, Kernelversion 2.6.16.46. Ich möchte erstmal nur wissen, wo im Kernel der Funktionsaufruf (?) steht, mit dem Linux letztendlich ein Zeichen auf diese SATA Platte schreibt.
hab schon viel in den Kerneldateien gestöbert, aber nichts passendes gefunden.

bin für jede hilfe dankbar
 

nbkr

Guru
Den direkten Zugriff auf die Platte erledigt der Treiber. Der schreibt aber in dem Sinne keine Zeichen (Buchstaben) auf die Platte. Das ist dem Treiber zu hoch. Wofür musst Du den so tief ins System um da Sachen zu ändern?
 
OP
A

angelfall

Newbie
die platte ist read-only gemountet. temp-, var-dateien und alles andere landet im ram. ich soll jetzt schauen ob wirklich nichts mehr auf die platte geschrieben wird. :?:

zu diesem zweck wollte ich erstmal die stelle des schreibzugriffs suchen. und dann wollte ich weiter sehen.

wo finde ich denn die treiberdateien?
 

Gimpel

Guru
Das hängt auch schwer vom Dateisystem ab, wann tatsächlich auf die Platte geschrieben wird, und wie.

Guter Artikel zB:
http://www.linux-magazin.de/heft_abo/sonderheft/2006/04/beschraenktes_schreiben

Daher sollte der Dateisystem-Treiber und das VFS layer im kernel der richtige Ort zum suchen sein.
 
OP
A

angelfall

Newbie
Dateisystem ist ext2.

Mit dem Artikel komme ich leider nicht weiter. trotzdem danke.

Ich versuche dann mal die dateien zum dateisystem weiter zu durchstöbern.

wonach muss ich eigentlich suchen? nach einem "write"-Befehl?
 

Gimpel

Guru
Der Artikel war eher als Hinweis gedacht, wie in etwa "eine Datei schreiben" bei Linux vor sich geht. Hab nichts besseres gefunden auf die schnelle.

Userspace -> VFS layer -> Dateisystem -> Block layer -> Festplatte

Der Befehl im userspace ist write (man 2 write).

/usr/src/linux/Documentation/filesystems/vfs.txt erklärt das VFS etwas.
 
A

Anonymous

Gast
angelfall schrieb:
die platte ist read-only gemountet. temp-, var-dateien und alles andere landet im ram. ich soll jetzt schauen ob wirklich nichts mehr auf die platte geschrieben wird. :?:

zu diesem zweck wollte ich erstmal die stelle des schreibzugriffs suchen. und dann wollte ich weiter sehen.

such mal in /usr/src/linux/drivers/scsi/ dort sollte letztendlich irgendwo der Schreibzugriff auf die Platte erfolgen. eventuell in scsi_ioctl.c

Sicher die komplizierteste Art sowas herauszufinden. Wie wäre es denn mal offline die md5sum über die Partition zu bestimmen, danach Linux zu starten mit dem eingehängten Readonly Filesystem. Nach 3 Tagen wieder offline gehen und die Prüfsummen neu bestimmen. Hat sich nichts geändert, dann gab es überhaupt gar keinen schreibenden Zugriff, hat sich doch was geändert, könnte das wahrscheinlich wenn wirklich durchgängig Readonly gemountet war das nur durch Schreibschutz auf der Platte selbst verhindert werden. Das geht entweder durch Jumper auf der Platte oder aber auch über Steuerbefehle.

robi
 

Spasswolf

Member
Das hier könnte dich interessieren, da werden der open(2) und read(2) Systemcall durch den Kernel verfolgt, allerdings mit Kernel 2.4.0: http://www.win.tue.nl/~aeb/linux/vfs/trail-2.html
 
A

Anonymous

Gast
Spasswolf schrieb:
Das hier könnte dich interessieren, da werden der open(2) und read(2) Systemcall durch den Kernel verfolgt
Na ich glaube mal, wenn der Weg über die normalen Open und Write Kommandos auf Files nicht dicht wäre durch ein Readonly-Mount, dann hätte Linux einen Bug der etwas Größer als der Saturn wäre.

Aber der Kernel kann noch anders auf die Platte zugreifen, und durchaus auch direkt ganz ohne irgend ein Filesystem und durchaus über ganz andere Geräteknoten zB /dev/sg....
Fragen wären zB: wird bei einem Readonly-Mount im Filesystem hinterlegt an welchem Mountpoint das geschehen ist, wird im Filesystem selbst vermerkt das es derzeit schon gemountet ist, und wird der Mountcount hochgezählt oder nicht, wird ein fsck im Filesystem gemacht bevor gemountet wird?
Root könnte auch mit einem Script und mit dd oder sg_dd im Filesystem und auf der Platte herrum schreiben, ein Readonly als Mountoption würde das überhaupt nicht verhindern.

Wo willst du denn das bitte alles abfangen ?

robi
 
Oben