Samenvatting van de stappen
Maak een grote partitie aan voor de CD Image bestanden.
Kopieer de CD naar een image file met behulp van de opdracht dd.
Mount de CD image binnen de directorystructuur.
Deel de directory op het netwerk met behulp van Samba, NFS, enz.
Zorg ook dat je paragraaf Introductie en paragraaf Wat je nodig hebt hebt gelezen.
Kies (of maak) een bestandssysteem aan met de grootst mogelijke diskruimte erop vrij. Houd in gedachten dat CD-ROM's zo'n 640MB gegevens kunnen bevattten, dus als je 8 volle CD's via het netwerk wilt delen, dan heb je ongeveer 5.1 GB ruimte nodig.
Login als root of "su" naar root.
bash# df -h Filesystem Size Used Avail Use% Mounted on /dev/hda5 1.4G 82M 1.3G 6% / /dev/hda1 15M 827k 14M 6% /boot /dev/hda7 2.4G 1008M 1.3G 43% /usr /dev/hda8 23.6G 11.7G 11.7G 50% /home |
Hier heeft het /home bestandssysteem de meest beschikbare ruimte, dus is het 't meest geschikte bestandssysteem voor het gebruik van het dumpen van de CD-images.
bash# cd /home bash# mkdir image bash# cd image |
Kopieer de CD nu naar een ISO image. De devicenaam van je CD-ROM station moet je bekend zijn (gewoonlijk /dev/cdrom, voor SCSI CD-ROM's zou dit /dev/scd0 kunnen zijn. Als voorbeeld maak ik gebruik van de Mandrake distributie CD-ROM:
bash# dd if=/dev/cdrom of=mndrk81.iso |
De "if=" staat voor input file, de "of=" voor output file. Als het goed is krijg je een melding te zien waarin het aantal records 'in' en aantal records 'out' wordt aangegeven.
Wanneer je i/o foutmeldingen te zien krijgt, dan zullen deze hoogstwaarschijnlijk zijn te wijten aan de lead-in en lead-out runoutblocks op de CD. Als het aantal records 'in' en aantal records 'out' niet overeenkomt dan heb je wellicht een probleem, anders zal de image naar alle waarschijnlijkheid in orde zijn, maar je kunt nooit weten of de fouten ontstonden tijdens het lezen van het ISO deel van de CD of niet (vanwege stof of krassen op de CD).
Er bestaan nog andere utility's om CD's in te lezen, zoals readcd of sdd.
Meer informatie over het maken van 1:1 kopieën van CD's is te vinden in de [CD-Writing-HOWTO], zie paragraaf Aanbevolen leesstof en referenties.
Mijn dank aan Giblhauser Carl Michael voor de runoutblock informatie.
De volgende stap bestaat uit het mounten van het ISO image bestand. Laten we een directory onder /mnt aanmaken om het gemounte bestand onder te plaatsen.
bash# cd /mnt bash# mkdir iso bash# cd iso bash# mkdir mndrk81 |
Mount nu het ISO image bestand op deze nieuw aangemaakte directory
bash# mount -o loop,unhide -t iso9660 -r /home/image/mndrk81.iso /mnt/iso/mndrk81 |
De "-o loop" betekent: gebruik de optie welke een bestand als een blokdevice mount. De optie unhide toont verborgen bestanden. De "-t iso9660" betekent dat het bestand in het iso9660 CD-ROM formaat staat. De "-r" betekent voor alleen lezen mounten.
Met dank aan Amar Chaouch voor het wijzen op de unhide optie van de mount opdracht.
Nu kun je:
bash# cd mndrk81 bash# ls -al |
Als het goed is zie je een weergave (ls) van de bestanden en directory's die zich op de feitelijke CD bevinden (ze bevinden zich nu alleen in het ISO image bestand, en dat is waar je thans naar kijkt!).
Nu we het image handmatig hebben gemount, en er zeker van zijn dat het werkt, moet een regel worden toegevoegd aan het /etc/fstab bestand zodat het image wordt gemount bij de volgende systeemstart. Het is van belang de regel te plaatsen na die voor het parent bestandssysteem, b.v. /home (Ik gebruik vim, maar emacs, joe, pico of jed zullen evengoed werken):
bash# vim /etc/fstab |
Na de regel die lijkt op de volgende (of op welk bestandssysteem je je images plaatste):
/dev/hda8 /home ext2 defaults 1 2 |
voeg je met een teksteditor de volgende regel toe:
/home/image/mndrk81.iso /mnt/iso/mndrk81 iso9660 ro,loop,auto,unhide 0 0 |
Samba moet geïnstalleerd en werkend zijn om de volgende stappen uit te kunnen voeren (dat valt buiten het kader van deze instructie, zie paragraaf Aanbevolen leesstof en referenties). Als het nog niet is geïnstalleerd, raadpleeg je de instructies van je Linux distributies voor het installeren van het Samba package. Of je kunt een bezoek brengen aan de Samba website op http://us1.samba.org/samba/samba.html voor installatie-instructies, binary's, en/of de broncode.
Om je gemounte CD's op een windows netwerk te delen, maak je eenvoudigweg een record aan in het /etc/smb.conf bestand vergelijkbaar met het volgende:
[cdimages] comment = Alle gedeelde CD-Images path = /mnt/iso public = yes writable = no |
Hiermee zullen alle subdirectory's onder de directory /mnt/iso op het netwerk worden gedeeld. Om de share te mounten op een lokale drive (in dit geval de I: drive), haal je een MS-DOS prompt tevoorschijn op de Windows machine en typt het volgende:
C:\> net use I: \\yourlinuxmachine\cdimages |
Elke CD-image zal nu als een subdirectory op station I: van je Windows machine verschijnen.
Om ALLEEN de Mandrake CD-image aan een stationsletter te koppelen (we zullen M: gebruiken, waarvan de rootdrive exact zal corresponderen met de CD alsof het net in het CD-ROM station werd gedaan), maak je het volgende record aan in het /etc/smb.conf bestand.
[mndrk81] comment = Mandrake Linux 8.1 path = /mnt/iso/mndrk81 public = yes writable = no |
Mount het vervolgens achter je MS-DOS prompt met de volgende opdracht:
C:\> net use m: \\yourlinuxmachine\mndrk81 |
De Samba smb.conf bestandsrecords die hier worden gepresenteerd zijn vereenvoudigd en niet veilig. Er bestaan heel wat meer opties voor een Samba share welke beperken wie de shares kan mounten, besturen hoe de gebruikersauthenticatie wordt uitgevoerd, en of de share via Network Neighborhood op de Windows machines browseable is.
Zorg dat NFS draait en juist is geconfigureerd op je Linux machine en voeg dan het volgende toe aan het bestand /etc/exports met je eigen voorkeursopties:
# voorbeeldbestand van /etc/exports /mnt/iso (ro,insecure,nohide,all_squash) |
De optie nohide maakt het je mogelijk een parentdirectory te mounten, zonder expliciet alle ge¨xporteerde subdirectory's eronder te mounten.
Probeer nu uit te voeren:
bash# exportfs -r |
Hiermee zou alles in het bestand /etc/exports opnieuw moeten worden geëxporteerd.
Wanneer je nu typt "showmount -e jelinuxmachine" dan zou je te zien moeten krijgen dat de /mnt/iso directory is opgenomen in de exports lijst.