Alexander (HH): auf /dev/sdb1 wechseln?

Beitrag lesen

Moin Moin!

Habe mal vorhin cp /etc/networks /dev/sdb1 probiert und bekam keine Fehlermeldung.

Oh. Das ist seltsam; das hätte nach meinem Verständnis so nicht funktionieren können.

Doch doch, das funktioniert, nur nicht so wie erwartet. /dev/sdb1 beginnt jetzt mit dem Inhalt von /etc/networks. Das dort evtl. vorhandene Dateisystem ist jetzt mindestens angeknackst, bei FAT und einer ausreichend großen /etc/networks ist es vielleicht komplett geschrottet.

Hast Du erwartet, dass cp sich weitert, in ein Device zu schreiben? Oder das cp erst das Ziel löscht? Das ist mitnichten so, wie Du mit einer Floppy, einem Loop-Device oder notfalls dem Verstehen einer Fehlermeldung sehen kannst.

echo "hohoho" > hohoho.txt

cp hohoho.txt /dev/full
cp: writing `/dev/full': No space left on device

Copy auf /dev/full schlägt fehl, weil das full-Device chronisch überfüllt ist.

Ein kleines Loop-File, weil die Linux-Kiste gerade ein paar Räume weiter weg steht. 5120 Bytes, alles Nullen.

dd if=/dev/zero of=loopfile bs=512 count=10
10+0 records in
10+0 records out
5120 bytes (5.1 kB) copied, 0.000133719 s, 38.3 MB/s

losetup /dev/loop0 loopfile

Ein Block-Device /dev/loop0 aus dem Loop-File machen.

cp hohoho.txt /dev/loop0

Reinkopieren, keine Fehlermeldung

dd if=loopfile bs=1 count=7
Hohoho
7+0 records in
7+0 records out
7 bytes (7 B) copied, 0.000706611 s, 9.9 kB/s

Und wieder erfolgreich rauskopieren.

losetup -d /dev/loop0

Block-Device wieder loswerden.

Nächstes Spiel. Wir simulieren eine alte 720K-Floppy, ebenfalls per Loop-File.

dd if=/dev/zero of=loopfile bs=512 count=1440
1440+0 records in
1440+0 records out
737280 bytes (737 kB) copied, 0.01017 s, 72.5 MB/s

Einmal genullt.

mkdosfs -v loopfile
mkdosfs 2.11 (12 Mar 2005)
loopfile has 2 heads and 9 sectors per track,
logical sector size is 512,
using 0xf9 media descriptor, with 1440 sectors;
file system has 2 12-bit FATs and 2 sectors per cluster.
FAT size is 3 sectors, and provides 713 clusters.
Root directory contains 112 slots.
Volume ID is 4c323c5c, no volume label.

Nun ist da ein wunderhübsches, leeres FAT-Dateisystem drauf.

file - < loopfile
/dev/stdin: DOS floppy 720k, x86 hard disk boot sector

File bestätigt das.

losetup /dev/loop0 loopfile

Block-Device bauen.

cp /etc/passwd /dev/loop0

Kaputtkopieren.

file - < loopfile
/dev/stdin: data

Ooooops, Dateisystem geschrottet.

losetup -d /dev/loop0

Schnell wieder weg damit.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".