next up previous contents
Nästa: 5.4 Att arkivera filer Upp: 5. Hur gör man? Förra: 5.2 Att söka efter

  
5.3 Att använda disketter

Det korrekta sättet att använda disketter är att först montera dem. Hur det går till beskriver vi i avsnitt 7.4. På många system tillåts det inte att användarna på egen hand monterar disketter; i sådana fall tvingas de att använda något som kallas för Mtools. Mtools är en samling kommandon med vars hjälp man kan läsa från, och skriva till, disketter av ''DOS-format''. Detta är det ursprungliga formatet från IBM:s första PC-datorer. Det finns en mängd märkliga restriktioner i samband med DOS-formatet. Bland annat får filnamnen inte se ut hur som helst, och filskyddskoderna bevaras inte. Därför brukar man bara använda DOS-disketter om det finns tvingande skäl, som tex att man inte har rättighet att montera disketter eller att man måste flytta filer till eller från någon dator som inte kör Linux.

I de kommandon som ingår i Mtools kallas den första diskettenheten för a:, den andra för b: osv. Kommandot mdir listar filerna på disketten:$ mdir a:
 Volume in drive A has no label
 Volume Serial Number is 6E8A-0F0B
 Directory for A:/
 
gnulinux dvi     61948 03-01-1998  18:11  gnulinux.dvi
        1 file(s)            61 948 bytes
                          1 395 712 bytes free

$
Bara en fil, gnulinux.dvi finns på disketten. Med hjälp av mcopy kopierar vi filen bellman till disketten:$ mcopy bellman a:
Copying bellman
$ mdir a:
 Volume in drive A has no label
 Volume Serial Number is 6E8A-0F0B
 Directory for A:/
 
gnulinux dvi     61948 03-01-1998  18:11  gnulinux.dvi
bellman            372 03-01-1998  18:11  bellman
        2 file(s)            62 320 bytes
                          1 395 200 bytes free

$
Vi kan också kopiera filer från disketten till datorn med mcopy. Om man inte anger någon destinationskatalog, så placeras kopian i den nuvarande katalogen.$ mcopy a:gnulinux.dvi
Copying gnulinux.dvi
$ ls
bellman       dikter/       gnulinux.dvi  lenngren
$

Kommandot mdel raderar filer på disketten:$ mdel a:gnulinux.dvi
Removing gnulinux.dvi
$ mdir a:
 Volume in drive A has no label
 Volume Serial Number is 6E8A-0F0B
 Directory for A:/
 
bellman            372 03-01-1998  18:11  bellman
        1 file(s)               372 bytes
                          1 457 152 bytes free

$

Man får använda jokertecken:$ mdel a:*
Removing bellman
$ mdir a:
 Volume in drive A has no label
 Volume Serial Number is 6E8A-0F0B
 Directory for A:/
 
File "*" not found
                         1 457 664 bytes free

$
Man bör skydda jokertecknen som gäller filer på disketten från skalet, för det är Mtools som ska tolka dem. Anledningen till att jag struntade i att sätta apostrofer kring a:* ovan är att jag visste att det inte fanns någon fil i den nuvarande katalogen vars namn började med tecknen a:.

Kommandot mlabel kan sätta ett slags namn på disketten:$ mlabel a:dikter
$ mdir
 Volume in drive A is DIKTER
 Volume Serial Number is 6E8A-0F0B
 Directory for A:/
 
File "*" not found
1 457 664 bytes free

$

Disketter har högst begränsad kapacitet. Om man vill spara en mycket stor fil på diskett, så måste filen delas upp i bitar som ryms på var sin diskett. Vi ska nu visa hur det går till. (Ett annat sätt är att använda tar med flaggan -M, se avsnitt 5.4.)

Antag att det finns en stor fil med namnet gnulinux.ps i katalogen /tmp:$ ls -l /tmp/gnulinux.ps
-rw-r--r--   1 göran    göran     2548527 mar  1 11:01 /tmp/gnulinux.ps
$
Vi styckar upp filen i småbitar med kommandot split. Småbitarna sparas i filer med namnen xaa, xab, xac osv i den nuvarande katalogen.$ split -b 1400k /tmp/gnulinux.ps
$ ls -l
total 2567
-rw-------   1 göran    göran         372 feb  1 16:48 bellman
drwxrwxr-x   3 göran    göran        1024 feb 20 13:19 dikter/
-rw-rw-r--   1 göran    göran       61948 mar  1 18:12 gnulinux.dvi
-rw-rw-r--   1 göran    göran         649 feb  1 15:53 lenngren
-rw-rw-r--   1 göran    göran     1433600 mar  1 19:50 xaa
-rw-rw-r--   1 göran    göran     1114927 mar  1 19:50 xab
$
Flaggan -b betyder att nästa argument anger den maximala storleken för småbitarna. Vi valde storleken 1400 kilobyte. Bokstaven ''k'' efter siffran 1400 i instruktionen ovan står för kilobyte. I stället för ''k'' kan man ange ''b'', som står för block (ett block är en halv kilobyte) eller ''m'', som står för megabyte. Om bokstaven utelämnas, så antas siffran ange antal byte.

Filerna xaa och xab kan nu kopieras till diskett. När de kopierats över till en dator igen kan de sättas samman med hjälp av cat på följande sätt:$ cat xa? > gnulinux.ps
$ ls -l gnulinux.ps
-rw-rw-r--   1 göran    göran     2548527 mar  1 20:12 gnulinux.ps
$ rm gnu* xa?
$

På UNIX-system motsvaras varje hårdvaruenhet av en fil i katalogen /dev. Den första diskettstationen motsvaras av filen /dev/fd0, den andra av /dev/fd1 osv.$ ls -l /dev/fd0
brw-rw----   1 root     floppy     2,   0 maj 28 02:49 fd0
$
Som synes av filrättigheterna måste man be systemadministratören om att få bli medlem av gruppen floppy innan man kan använda diskettenheten.

Disketter måste formatteras innan de kan användas. Formatteringen sker i två steg. Det första steget, lågnivåformatteringen, består i att det lagringsutrymme som finns på disketten struktureras och delas in i spår och sektorer. Det vanliga är att disketter formatteras med 18 spår ā 80 sektorer på vardera sidan. Sammanlagt blir det 2880 sektorer. En sektor innehåller 512 byte (en halv kilobyte), så lagringsutrymmet blir det välkända 1440K. (Man kan genom att använda fler spår, fler sektorer på varje spår och större sektorer få in mer på en vanlig diskett, upp till 1992K, men detta rekommenderas inte - bland annat eftersom det oftare blir fel vid avläsningen då.) Kommandot superformat /dev/fd0 formatterar en diskett i första diskettstationen. Om någon sektor är dålig, så får man veta detta; i så fall bör disketten kasseras. Lågnivåformatteringen tar ganska lång tid, men den behöver bara göras en gång för varje diskett.

Efter lågnivåformatteringen måste man skapa ett filsystem på disketten innan den kan användas; detta är det andra steget i formatteringsprocessen. (Om man använder tar eller dd för att läsa från eller skriva till disketten behövs dock inget filsystem.) Vanligtvis använder man endera av minix eller ext2 som filsystem. Ett mindre bra alternativ är filsystemet msdos eller vfat, som används för DOS-disketter.

Så här gör man för att formattera disketten:$ superformat /dev/fd0
Verifying track 79, head 1
mformat -s18 -t80 -h2 -S2 -M512 a:
$
Kommandot superformat lägger automatiskt ett filsystem av typen msdos på disketten. Så här kan vi skapa ett filsystem av typen ext2:$ /sbin/mkfs -t ext2 /dev/fd0
mke2fs 1.10, 24-Apr-97 for EXT2 FS 0.5b, 95/08/09
Linux ext2 filesystem format
Filesystem label=
360 inodes, 1440 blocks
72 blocks (5.00%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group
360 inodes per group

Writing inode tables: done
Writing superblocks and filesystem accounting information: done
$
Nu är disketten klar att användas. För att UNIX ska kunna skriva till eller läsa från en diskett med de vanliga kommandona cp, ls osv, måste den dock först monteras, se avsnitt 7.4.

Om vi vill byta till ett minix-filsystem, så gör vi så här:$ /sbin/mkfs -t minix /dev/fd0
480 inodes
1440 blocks
Firstdatazone=19 (19)
Zonesize=1024
Maxsize=268966912
$
Observera att det inte är nödvändigt att lågnivåformattera disketten igen!

För att byta till ett msdos-filsystem är det enklast att använda mformat:$ mformat a:
$


next up previous contents
Nästa: 5.4 Att arkivera filer Upp: 5. Hur gör man? Förra: 5.2 Att söka efter
Goran Andersson
1999-03-08