Boken Om Linux/Kapittel 30

Kapittel 30 For de som trenger MS-dosRediger

Kapittel 29 MS Dos

Ønsker du å få kontakt med MS-DOS fra Linux, finnes det i dag mange forskjellige verktøy. Du kan bruke m-verktøyene (Mtools), montere MS-DOS-filsystemer eller bruke en Linux MS-DOS- eller Windows-emulator. Linux kan også lett integreres i Windows med serverprogramvaren SAMBA, som gjør at Linux-boksen ses som en tradisjonell Windows NT (SMB)-filserver. Linux' støtte til nettverksprotokollen IPX/SPX gir også en tett integrasjon med fil- og utskriftstjenester fra Novell NetWare.

For deg som har et Mac-miljø: Du finner verktøy tilsvarende m-verktøyene for MS-DOS for Mac. Disse verktøyene kalles h-verktøy (h for HFS-volumer).

Montere MS-DOS-filsystemer

Installerer du SuSE, SteamOS eller OpenMandriva Lx vil installasjonsprogrammet i vareta at du har en Windows-partisjon fra før. Dette betyr at du etter installasjonen vil se dine gamle Windows-partisjoner som monterte filsystemer. Derimot kjører du andre Linux-distribusjoner som Fedora, Red Hat eller Debian må du selv manuelt montere Windows-partisjonene. Jeg vil i dette avsnittet gå gjennom oppsettet av /etc/fstab for å få automatisk montering av Windows-partisjonene når du starter maskinen. Jeg ser også på hvordan du manuelt kan monterer Windows-filsystemer fra Linux.

Akkurat som du kan montere Linux-filsystemer, kan du også montere MS-DOS-filsystemer.

Du gjør følgende:

   Logg deg inn som root ([root@nittedal /root]#).
   Lag en tom katalog fra /(root) med kommandoen mkdir.
   Oppdater filen /etc/fstab (driver og tilknytningspunkt).
   Skriv kommandoen 

[root@nittedal /root]# mount -a

Slik at /etc/fstab-filen blir lest. Jeg forutsetter her at din andre partisjon på din første harddisk (/dev/hda2) er et MS-DOS-filsystem. Hvis du ønsker å få automatisk montering av filsystemet mot katalogen /msdos-c, oppdaterer du følgende i /etc/fstab-filen:

Bruk vi- eller emacs-editoren, og gjør de nødvendige endringene. I første kolonne står navnet på driveren. Andre kolonne gir deg katalogen som filsystemet skal montere seg opp til. Neste kolonne angir filsystemtype (msdos, linux). I opsjon-kolonnen har du muligheten til å bestemme hvordan du ønsker å montere opp filsystemet. I kolonnen df kan du sette opp dump-frekvensen (se dump-kommandoen), dvs. på hvilket nivå du ønsker å ta sikkerhetskopi (bånd) av filsystemet. Har du valgt 0, blir det tatt full sikkerhetskopi av filsystemet første gang dump-programmet kjøres. Siste kolonne sier noe om når Linux-programmet fsck skal rydde opp det nye filsystemet. Det er her mest naturlig å bruke 0 (se fsck-kommandoen).

Følgende /etc/fstab finner du på min PC-arbeidsstasjon med Red Hat Linux:

[root@nittedal /root]# cat /etc/fstab /dev/hda5 / ext4 defaults 1 1

/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0

/dev/hda6 /usr ext2 defaults 1 2

/dev/hda1 /msdos-c msdos uid=0,gid=100,umask=007 0 0

/dev/hda7 swap swap defaults 0 0

/dev/fd0 /mnt/floppy ext2 noauto,owner 0 0

none /proc proc defaults 0 0

none /dev/pts devpts gid=5,mode=620 0 0

Her monterer jeg automatisk Windows-partisjonen /dev/hda1 mot noden /msdos-c. Siden dette er en FAT-partisjon monterer jeg dette med type msdos. Monteringen går via UID (brukerid)=0 (root) og GID (gruppeid)=100 og med umask 007.

Følgende /etc/fstab finner du på min PC-arbeidsstasjon med Fedora Linux:

[root@hagan /root]# cat /etc/fstab

LABEL=/ / ext4 defaults 1 1

LABEL=/boot /boot ext4 defaults 1 2

none /dev/pts devpts gid=5,mode=620 0 0

none /proc proc defaults 0 0

none /dev/shm tmpfs defaults 0 0

/dev/hda6 swap swap defaults 0 0

/dev/hda2 /home/elboth/windata msdos uid=500,gid=500,umask=007 0 0

/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0

/dev/cdrom1 /mnt/cdrom1 udf,iso9660 noauto,owner,kudzu,ro 0 0

/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0

Her monterer jeg automatisk Windows-partisjonen /dev/hda2 mot noden /home/elboth/windata. Siden dette er en FAT-partisjon monterer jeg dette med type msdos. Monteringen går vi UID (brukerid)=500 (root) og GID (gruppeid)=500 og med umask 007. Både brukeriden og gruppeiden til elboth (min brukerid) er mappet mot 500.

Følgende /etc/fstab finner du på min PC-arbeidsstasjon med SuSE Linux:

[root@hagan /root]# cat /etc/fstab

/dev/hda6 / reiserfs defaults 1 1

/dev/hda3 /data1 auto noauto,user 0 0

/dev/hda2 /windows/C ntfs ro,users,gid=users,umask=0002,nls=iso8859-1 0 0

/dev/hda5 swap swap pri=42 0 0

devpts /dev/pts devpts mode=0620,gid=5 0 0

proc /proc proc defaults 0 0

usbdevfs /proc/bus/usb usbdevfs noauto 0 0

/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0

/dev/fd0 /media/floppy auto noauto,user,sync 0 0

Her monterer jeg automatisk Windows-partisjonen /dev/hda2 mot noden /windows/C. Siden dette er en NTFS-partisjon monterer jeg dette med type ntfs. Monteringen går vi UID (brukerid)=users og GID (gruppeid)=group og med umask 0002. Rettighetene er satt til den aktive bruker. Filsystemet er bare lesbart (ro). Tegnsettet her er satt til ISO 8859 (tilsvarende som Microsoft Windows 9X bruker med norske spesialtegn) og ikke Unicode som brukes av Windows XP og blant annet Fedora Linux.

Hvis Linux-systemet ditt har en enhet for sikkerhetskopiering (båndstasjon), kan den også ta sikkerhetskopi av MS-DOS-filsystemene dine så lenge disse er montert opp. Har du bare sikkerhetskopiering under MS-DOS, må du kopiere filene fra Linux-filsystemene dine til MS-DOS-partisjonene dine.

Du har også muligheten til å montere en MS-DOS-harddisk eller diskett-partisjon under Linux direkte. Hvis du for eksempel har en MS-DOS-diskettstasjon som har driveren /dev/fd0, kan du montere den med kommandoen:

Eksempel:

[root@nittedal /root]# mount -t msdos /dev/fd0 /msdos-a

Her blir disketten (A) montert under /msdos-a. Hvis /etc/fstab-filen er oppdatert holder det med å skrive:

[root@nittedal /root]# mount /mnt/floppy

Her blir disketten (A) montert under /mnt/floppy. Ønsker du å bruke en uformatert diskett må den først formateres. Dette kan du enkelt gjøre fra GNOME med gfloppy eller fra KDE med KFloppy.

Eksempel:

[root@nittedal /root]# mount -t msdos /dev/hda2 /msdos-c

Her blir MS-DOS-partisjonen (C) montert under /msdos-c.

Figur 15.1: Her bruker vi usermount (Fedora) for montere DOS-partisjoner

Det er viktig at du avmonterer (umount) partisjonene (filsystemene) når du ikke bruker dem.

Eksempel:

[root@nittedal /root]# umount /msdos-a

[root@nittedal /root]# umount /msdos-c

Her blir MS-DOS-partisjonene avmontert. Pass på at du ikke er plassert i det filsystemet som du ønsker å avmontere. Du må heller ikke ha prosesser som gir tilgang til filsystemet som skal avmonteres.

Operasjoner mot MS-DOS-partisjonerRediger

M-verktøyene er et sett med kommandoer som virker som de tradisjonelle MS-DOS-kommandoene. Navneforskjellen fra de tradisjonelle MS-DOS-kommandoene er bare at du har bokstaven m foran MS-DOS-kommandoen.

For eksempel virker kommandoene mcd, mdir, og mcopy på samme måte som de tilsvarende MS-DOS-kommandoene. Da du installerte Mtools, fulgte håndboksidene for disse kommandoene med.

Alle m-verktøyene støtter lange filnavn (VFAT). Fra m-verktøyene gis tilgang til MS-DOS-filsystemene med MS-DOS' navnekonvensjon, for eksempel er diskettstasjoner A og B, og harddiskenhetene er C, D etc. Ved bruk av m-verktøyene virker jokere på samme måte som i Linux-operativsystemet, dvs at *.* i MS-DOS er det samme som * i Linux. Fra m-verktøyene gis tilgang til en MS-DOS-fil eller MS-DOS-katalog med syntaksen MS-DOS [drive] (navn A…Z) og et kolon. M-verktøyene støtter både lav- og høykapasitetsdisketter.

Du vil finne at alle Mtools-programmene bruker konfigurasjons-filene /etc/mtools.conf og $HOME/.mtoolsrc. Sjekk ut Linux-man-sidene for komplett beskrivelse av konfigurasjonsfilene og de forskjellige m-verktøyene.

Endre katalog – mcdRediger

Med kommandoen mcd kan du endre katalog på MS-DOS-partisjonen. Informasjonen blir lagret i din hjemmekatalog $HOME/.mcwd.

Eksempel:

[david@nittedal david]$ mcd a:\win32

Her har jeg flyttet meg til MS-DOS-partisjonen A og ned i katalogen \win32.

Kopiere filer – mcopyRediger

Med kommandoen mcopy kan du kopiere fra en MS-DOS-partisjon til en annen.

Eksempel:

[david@nittedal david]$ mcopy a:partno.txt .

Her kopierer jeg filen partno.txt fra MS-DOS-partisjonen (A) (diskettstasjonen) til den Linux-katalogen jeg står i.

Fjerne MS-DOS-filer – mdelRediger

Med kommandoen mdel kan du fjerne én eller flere MS-DOS-filer fra en MS-DOS-partisjon.

Eksempel:

[david@nittedal david]$ mdel c:license.txt

Her fjerner jeg filen license.txt fra MS-DOS-partisjonen C (harddisken).

[david@nittedal david]$ mcd a:\koder

Her flytter jeg til MS-DOS-partisjonen A og ned i katalogen \koder.

[david@nittedal david]$ mdel a:read.me

Her fjerner jeg MS-DOS-filen read.me fra MS-DOS-partisjonen A.

Innholdsfortegnelse – mdirRediger

Med kommandoen mdir får du samme funksjonalitet som MS-DOS- kommandoen DIR, dvs. innholdsfortegnelsen til en spesifisert MS-DOS-partisjon.

Figur 15.2: Her ser vi DOS-disketten fra Nautilus-filbehandleren

Ønsker du å se Windows/DOS partisjon (A-Z) fra GNOME eller KDE (Se figuren over) er det bare å passe på å montere partisjonen først.

Eksempel:

[david@nittedal david]$ mdir a:

Her får jeg innholdsfortegnelsen til diskettstasjonen (A).

Informasjon om bootsektor – minfoRediger

Med kommandoen minfo får du bootsektorinformasjon om MS-DOS-partisjonene på diskett eller harddisk.

Eksempel:

[david@nittedal david]$ minfo a:

Her får jeg bootsektorinformasjon om diskettpartisjonen i diskettstasjon A.

Lage MS-DOS-kataloger – mmdRediger

Med kommandoen mmd kan du lage MS-DOS-kataloger på en MS-DOS-partisjon.

Eksempel:

[david@nittedal david]$ mmd a:datakatalog

Her lager jeg katalogen datakatalog på partisjon A (diskettstasjonen).

Tekstinnhold av fil – mtypeRediger

Kommandoen mtype viser innholdet av en tekstfil på skjermen. Du har også muligheten til å bruke opsjoner for datakonvertering.

Eksempel:

[david@nittedal david]$ mtype -t c:read.me | more

Her ser jeg på innholdet av MS-DOS-filen read.me. Jeg konverterer fra MS-DOS-format til Linux- (UNIX-) format.

Forskjellige m-verktøyRediger

I dette avsnittet lister jeg opp andre populære m-verktøy som du kan bruke.

Tester m-verktøyeneRediger

MS-DOS- og Windows-emulatorerRediger

Bruker du en MS-DOS-emulator under Linux, er det begrenset hvilke MS-DOS-applikasjoner du kan kjøre. MS-DOS-emulatoren er ment først og fremst som en løsning for folk som bare trenger MS-DOS av og til. Ytelsen til en MS-DOS-emulator under Linux er altfor begrenset. Spesielt når bare native 8088-modus er støttet.

Eksempler på MS-DOS-applikasjoner som virker med MS-DOS-emulatoren under Linux, inkluderer Microsoft Windows 3.0 (i real-modus), cc-mail (DOS-baserte), Foxpro 2.0, Harvard Graphics, MathCad, Turbo Pascal, og WordPerfect 5.1, MS-DOS-kommandoer og standard DOS-hjelpeverktøy. Følgende MS-DOS-emulatorverktøy kan fås under Linux:

   dos eller dosemuxdosdosexecdosdebug 

Bare xdos er X-Windows-basert, alle de andre startes direkte fra den tegnbaserte terminalledeteksten. Ønsker du å kjøre DOS-emulatoren dosemu (dos, xdos) under Fedora Linux kan du laste den ned fra Fedora sin hjemmeside. Har du Red Hat Linux følger den med i PowerTools-Cden.

Figur 15.3: DOS-emulatoren xdos under Linux

Oppgaver til kapittel 29

Oppgave 29.1

Skal du gjøre en operasjon på en MS-DOS-partisjon, kan du adressere I/U-enhetene med MS-DOS- og Linux-syntaks. Hva er navnene på driverne som brukes under MS-DOS og Linux?

Oppgave 29.2

Hvordan kan du få Linux-boksen til å automatisk montere dine MS-DOS-partisjoner når du slår på maskinen din?

Oppgave 29.3

Hvordan monterer og avmonter du manuelt MS-DOS-filsystemer?

Oppgave 29.4

Hvilken Linux-kommando vil du bruke for å se på innholdet av en tekstfil på en MS-DOS-diskett?

Oppgave 29.5

Ta en kopi av Linux-systemfilene /etc/passwd og /etc/group til en MS-DOS-diskett.

Oppgave 29.6

Kopier MS-DOS-filene CONFIG.SYS og AUTOEXEC.BAT fra en MS-DOS-diskett til ditt Linux brukerområde.

Oppgave 29.7

Nevn to metoder for å se innholdsfortegnelsen på en MS-DOS-partisjon. Hva er forskjellen mellom de to metodene?

Oppgave 29.8

Prøv å fjerne en fil fra en MS-DOS-partisjon ved å bruke en m-kommando.

Oppgave 30.9

Er det mulig å opprette og fjerne underkataloger på en MS-DOS- partisjon?