On Saturday 29 November 2014 18:33, Carpe Diem conveyed the following to
be.comp.os.linux...
Post by Carpe Diem...en dan kan je de inhoud van /home
overhevelen naar die nieuwe partitie, en die dan mounten op /home, en
dan daar een regel voor opnemen in /etc/fstab.
Plaats om een nieuwe partitie te maken heb ik nog. Maar de rest
hierboven is voor mij Latijn.
Okee, effe een snelcursus UNIX bestandssystemen dan... :p
In Microsoft Windows wordt doorgaans het hele systeem geïnstalleerd in
één enkele partitie, die dan gewoonlijk de uit CP/M, DOS en OS/2
overgenomen drive letter "C:" mee krijgt. Het concept van drive letters
dateert terug tot de tijd dat personal computers geen harde schjven
hadden (en die ook niet ondersteunden). De enige opslagmogelijkheid
bestond uit floppy disks, en om het kopiëren van bestanden van de ene
floppy naar de andere mogelijk te maken werden drive letters ingevoerd.
De methodiek om schijfopslag als aparte volumes (elk met hun eigen
hoofddirectory) te benaderen is echter ouder dan het bestaan van de
drive letters zelf.
GNU/Linux is echter een UNIX/POSIX systeem en werkt anders. Om te
beginnen zijn er al geen drive letters, en wordt gegevensopslag in UNIX
georganizeerd in de vorm van een uniforme directory-hiërarchie met
slechts één hoofddirectory. Op het lagere, fysieke niveau heeft
natuurlijk ieder volume zijn eigen hoofddirectory, maar naar de
gebruiker toe wordt de abstractie gemaakt om alles in één uniforme
directory-structuur te organizeren, en worden aparte volumes in die
structuur /gemount/ op bepaalde directories.
De simpelste installatie gebruikt slechts één enkele schijfpartitie
("root filesystem"), met daarin de root directory, maar in wezen is het
zo dat enkel dat wat strict nodig is tijdens het opstarten van het
systeem in de root partitie hoeft te staan. Kernels horen daar zelfs
niet bij omdat de image van de kernel enkel (en rechtstreeks) door de
boot loader wordt aangesproken en niet meer bereikbaar hoeft te zijn
eenmaal het systeem al draait.
Al hetgene wat onder /home staat is bij het opstarten van het systeem
niet benodigd, en dus mag dat gerust op een andere partitie worden
gezet. Dit heeft tot voordeel dat je bij een herinstallatie van het
systeem niet aan het persoonlijke bestanden hoeft te raken, en het heeft
ook nog andere voordelen, zoals bijvoorbeeld dat het risico op
bestandssysteemcorruptie ─ bijvoorbeeld door een stroompanne ─ verkleint
en uitgespreid wordt over meerdere bestandssystemen.
Hoe weet UNIX nu dat jij ervoor gekozen hebt om /home op een aparte
partitie te zetten? Wel, hiertoe dient het bestand /etc/fstab. Dat is
een database in platte tekst, waarbij iedere regel een record vormt, en
ieder door spaties gescheiden stukje tekst een veld in die record. En
dat ziet er dan bijvoorbeeld zo uit...
# DEVICE MOUNTPOINT TYPE MOUNT_OPTIONS DUMP FSCK
/dev/sda1 / ext4 defaults 1 1
Over de precieze uitleg omtrent de betekenis van al die waarden ga ik je
doorverwijzen naar...
$ man fstab
... en...
$ man mount
Hoe dan ook, voor ext4 houdt de "defaults" entry voor de mount options
in dat als het zich op een harde schijf bevindt, die partitie dan ook
automatisch gemount wordt. Heb je dan ook nog een aparte partitie voor
je /home, dan wordt daar door de installer een record voor toegevoegd in
/etc/fstab.
Ik heb in mijn voorbeeld nu de eerste primaire partitie op de eerste
harde schijf (/dev/sda1) als root partitie aangeduid, maar aangezien jij
een dual-boot systeem hebt zal dat waarschijnlijk bij jou /dev/sda5
zijn, i.e. de eerste logische partitie in de extended partition
container, want Windows claimt om historische redenen de eerste primaire
partitie op de eerste harde schijf op. Voor de Linux kernel maakt het
overigens niet uit of GNU/Linux nu in primaire of logische partities
staat. Een voorbeeld van een /etc/fstab die dus op jouw toekomstige
systeem zou kunnen staan is dan zoiets:
(Opmerking: elke regel die met een "#" begint is commentaar.)
# DEVICE MOUNTPOINT TYPE MOUNT_OPTIONS DUMP FSCK
/dev/sda1 /mnt/win7 ntfs-3g defaults 0 0
/dev/sda5 / ext4 defaults 1 1
/dev/sda6 /home ext4 defaults,nodev 0 0
/dev/sda7 swap swap swap 0 0
/dev/sr0 /media/cdrom auto user,noexec,noauto 0 0
In het voorbeeld hierboven heb ik nu wel de device names (/dev/*)
gebruikt, maar in praktijk zal een installer daar een hele lange string
van karakters voor in de plaats zetten. Die string is de UUID, en die
is normaal gezien uniek, wat er voor zorgt dat het bestandssysteem het
juiste bestandssysteem op de juiste plaats mount. Als je device names
gebruikt dan is dat niet altijd gegarandeerd.
Een ander alternatief voor de UUID is een LABEL, maar LABELs zijn niet
gegarandeerd uniek. Je kan bijvoorbeeld zelf een LABEL toekennen aan
een partitie, en als je niet oplet kan het best zijn dat je twee keer
hetzelfde LABEL toekent. Met UUIDs bestaat dat probleem dus normaal
gezien niet, omdat de UUID bij het formatteren van de partitie
automatisch wordt toegekend. (Nu ja, het kan natuurlijk wel gebeuren
dat een UUID twee keer voorkomt op de zelfde machine, maar dat is dan de
schuld van de operator, die een partitie letterlijk heeft gekloond, e.g.
met "dd" of met iets als Norton Ghost.)
Anyway, bij het opstarten van het systeem wordt op een bepaald moment
een "mount -a" uitgevoerd, waarbij alle benodigde partities en
bestandssystemen in /etc/fstab worden gemount.
Als je nadien met de partitionering gaat spelen, dan moet je uiteraard
zelf /etc/fstab editeren ─ uiteraard als superuser ─ en dat kan met een
simpele editor als nano of mcedit. Een gouden regel is wel dat je dit
*nooit* doet vanuit een grafische omgeving (en dus een volledig
doorgestart systeem). Je doet dit best vanuit single user maintenance
mode, i.e. runlevel 1. Maar dat is nu nog te complex om je uit te
leggen, en dan zeker nu met heel dat systemd gedoe.
Post by Carpe DiemPost by Carpe Diemals ik een clean install van versie 17.1 zou doen : hoe zorg ik er
dan voor dat /home daar WEL op een aparte partitie terechtkomt? Moet
ik eerst daarvoor een aparte partitie creëren en zo ja : welk soort
partitie?
In dat geval raad ik aan om gewoon je normale GNU/Linux root partitie
kleiner te maken en een aparte /home te creëren in de vrijgekomen
schijfruimte.
Voor mij een raadsel hoe ik Linux dan wijs maak dat die /home op die
aparte partitie staat...
Dat gaat dus via /etc/fstab, zoals ik hogerop al heb uitgelegd. ;-)
Post by Carpe DiemEn als dat nu eens een lelijke en bijna pensioengerechtigde tante met
een rotkarakter zou blijken te zijn? :p
Misschien kan ze wel lekkere koffie zetten? Met een stukje lekkere
zelfgebakken cake of taart... Ach, ik ben met weinig tevreden.
Blijkbaar wel. :p
--
= Aragorn =
http://www.linuxcounter.net - registrant #223157