RAW(8)

BEZEICHNUNG
raw - mit einem rohen Linux-Zeichengerät verbinden

ÜBERSICHT
raw /dev/raw/raw<N> <Major> <Minor>

raw /dev/raw/raw<N> /dev/<BlockGeraet>

raw -q /dev/raw/raw<N>

raw -qa

BESCHREIBUNG
raw wird dazu verwandt, ein rohes Linux-Zeichengerät mit einem Blockgerät zu verbinden. Jedes Blockgerät kann verwandt werden, zum Zeitpunkt des Einbindens muss der Gerätetreiber nicht im Zugriff sein (er kann später auf Verlangen als Kernelmodul geladen werden).

raw wird in zwei Modi verwandt: Es setzt entweder die Verbindung der rohen Geräte oder es fragt bestehende Verbindungen ab. Wenn ein rohes Gerät gesetzt wird, ist /dev/raw/raw<N> der Gerätename eines existierenden rohen Geräteknotens im Dateisystem. Das Blockgerät, mit dem es verbunden werden soll, kann entweder über die Gerätenummern major und minor oder als Pfadname /dev/<blockdev> zu einem existierenden Blockgerät angegeben werden.

Die bereits bestehenden Verbindungen können mit der Option -q abgefragt werden. Sie kann entweder mit dem Dateinamen des rohen Gerätes zur Abfrage dieses Gerätes oder mit der Option -a, um alle eingebundenen Geräte abzufragen, verwandt werden.

Die Verbindung kann durch Angabe von Major und Minor als 0 aufgelöst werden.

Sobald ein rohes Gerät mit einem Blockgerät verbunden ist, kann es geöffnet und in ihm geschrieben und von ihm gelesen werden, wie bei dem Blockgerät, mit dem es verbunden ist. Allerdings verhält sich das rohe Gerät nicht genau so wie ein Blockgerät. Insbesondere geht der Zugriff auf das rohe Gerät am Blockpufferzwischenspeicher des Kernels komplett vorbei: alle E/A erfolgt direkt zu und aus dem Adressraum des Prozesses, der die E/A durchführt. Falls das unterliegende Blockgerät DMA unterstützen kann, ist überhaupt kein Kopieren von Daten notwendig, um die E/A abzuschließen.

Da rohe E/A direkten Zugriff auf den Speicher des Prozesses beinhaltet, müssen ein paar zusätzliche Einschränkungen beachtet werden. Alle E/A muss korrekt an den Speicher und die Platte angepasst sein: Sie müssen an einem Sektorversatz auf der Platte beginnen, sie müssen eine exakte Anzahl an Sektoren lang sein und der Datenpuffer im virtuellen Speicher muss auch an ein mehrfaches der Sektorgröße angepasst sein. Bei den meisten Geräten ist die Sektorgröße 512 byte.

OPTIONEN

-q, --query
    setzt den Abfragemodus. raw wird eine existierende Bindung abfragen, statt eine neue zu setzen.

-a, --all
    gibt mit -q an, dass alle eingebundenen rohen Geräte abgefragt werden sollen.

-h, --help
    zeigt einen Hilfetext an und beendet das Programm.

-V, --version
    zeigt Versionsinformationen an und beendet das Programm.

FEHLER
Der Linux-Befehl dd(1) sollte ohne die Option dd(1) verwandt werden oder die Blockgröße muss ein Vielfaches der Sektorgröße des Gerätes (typischerweise 512 Bytes) sein. Andernfalls wird es mit dem Fehlermeldung »Ungültiges Argument« (EINVAL) fehlschlagen.

Rohe E/A-Geräte erhaltenen keine Zwischenspeicherkohärenz mit dem Linux-Blockgerätepufferzwischenspeicher. Falls Sie rohe E/A verwenden, um Daten, die bereits im Pufferzwischenspeicher sind, zu überschreiben, wird der Pufferzwischenspeicher nicht mehr mit den Inhalten des tatsächlichen unterliegenden Speichergeräts übereinstimmen. Dies erfolgt absichtlich, ist aber entweder ein Fehler oder eine Funktionalität, abhängig davon, wen Sie fragen.

ANMERKUNGEN
Statt rohe Geräte zu verwenden, sollten Anwendungen einem open(2) von Geräten, wie /dev/sda1, mit dem Schalter O_DIRECT, den Vorzug geben.

AUTOR
Stephen Tweedie (sct@redhat.com)

VERFÜGBARKEIT
Der Befehl raw ist Teil des Pakets util-linux und kann von https://www.kernel.org/pub/linux/utils/util-linux/ heruntergeladen werden.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.