[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: mounting



Hallo,

Op 15 mei 2013 14:43 heeft Peter van Summeren
<petervansummeren@gmail.com> het volgende geschreven:

> Gaat dat met detzelfde cijfervolgorde  als voor mijn hoofdschijf?
Niet vanzelf. Lezenswaardig artikel:
http://en.wikipedia.org/wiki/Disk_partitioning
Ik weet nog niet hoe het met UEFI/GPT-partities zit, maar traditioneel
(MBR) gepartitioneerde disks krijgen de volgende nummering:
- primary partitions worden genummerd 1,2,3,4.
- een van deze primary partitions mag extended worden gemaakt.
- logische partitions in een extended worden opvolgend genummerd vanaf 5.
(Het verwijderen van een logische partition houdt dus in dat de hoger
genummerde partities hernummerd worden.)

> 2. Ik maar een dir genaamd dskb aan in /:   mkdir   /dskb
> 3. vervolgens: mount -t ext4   /dev/sdb   /dskb
>     Daarmee is de dir / van /dskb gemount.
> 4.  Ik wil eenzelfde structuur hebben als op mijn hoofdschijf: /,
> /home,/tmp,/usr,/var,/sw

Nee. Het werkt onder Linux iets anders als onder DOS.
Je kunt een partitie waar een filesysteem op staat, mounten onder een
lege directory. De namen van alle files en directory's van dat
filesysteem worden daarmee aan de voorkant uitgebreid met de naam van
die (lege) directory.
Dus in jouw voorbeeldgeval:
- maak partities aan op je nieuwe schijf
- maak een filesysteem op een partitie
# mke2fs -t ext4 /dev/sdb1
- mount dat fs onder een lege dir:
# mkdir -p /dskb/{home,tmp,usr,var,sw}
# mount /dev/sdb1 /dskb/home
Alle files op je nieuwe filesysteem zullen dus namen hebben die
beginnen met /dskb/home, bijvoorbeeld /dskb/home/README.
Je *kunt* (let wel, het kan, het moet niet) dit filesysteem onder een
andere directory hangen:
# umount /dev/sdb1
# mount /dev/sdb1 /dskb/var
waarna diezelfde file nu benaderbaar is als /dskb/var/README.

> 4.  Ik wil eenzelfde structuur hebben als op mijn hoofdschijf: /,
> /home,/tmp,/usr,/var,/sw
Dat kan, maar bedenk wel, dat de files altijd hun mountpoint als
prefix, als voorvoegsel, zullen hebben. De nieuwe /dskb/usr bestaat
dus onafhankelijk van de bestaande /usr. Het is dus ook niet zo dat
Linux op een of andere magische manier /dskb/usr zal gaan gebruiken
als /usr vol loopt.

Terug naar jouw probleem: Tijdens installatie van texlive loopt de
/var partitie vol. Dat komt doordat de deb-packages in de directory
/var/apt/cache worden opgeslagen voordat ze geïnstalleerd worden en
kennelijk is jouw /var-partitie te klein.

Er zijn een aantal manieren om dat op te lossen. Van makkelijk naar moeilijk:
1. we vervangen de directory /var/apt/cache door een symbolische link
naar een andere directory op een partitie waar wel voldoende ruimte
is;
2. we verplaatsen /var/apt/cache naar een eigen, nieuwe partitie die
wel groot genoeg is;
3. we verplaatsen de hele /var-partitie naar een nieuwe partitie die
wel groot genoeg is;
4. we gaan lvm gebruiken zodat de /var-partitie over meerdere disks
verspreid kan worden indien nodig.

Ik zal alleen 1 en 2 kort behandelen.

1. Symbolische link
- Zoek uit op welke partitie voldoende ruimte vrij is om alle
deb-files die je gaat installeren te kunnen bevatten. Laten we
aannemen dat dit /home is.
- Maak als root een directory op die partitie aan, bijvoorbeeld
/home/varaptcache, maar ook /home/peter/varaptcache zal werken.
# mkdir /home/varaptcache
- Verplaats alle files uit /var/apt/cache naar die nieuwe directory:
# mv /var/apt/cache/* /home/varaptcache/
- Verwijder de nu lege directory /var/apt/cache
# rmdir /var/apt/cache
- Maak een symlink die naar de nieuwe directory wijst
# ln -s /home/varaptcache /var/apt/cache

Als nu apt-get tijdens het downloaden de packages in /var/apt/cache
probeert te plaatsen, zullen deze door de symlink in /home/varaptcache
terecht komen.
Deze methode heeft een mogelijk nadeel: verwijzingen naar
/var/apt/cache/.. (dus de parent van /var/apt/cache) zullen niet bij
/var/apt aankomen, maar bij /home.

2. Eigen partitie voor /var/apt/cache
- Zoek uit op welke partitie van je nieuwe schijf groot genoeg is om
alle deb-files die je gaat downloaden te kunnen bevatten. Laten we
aannemen dat dit /dev/sdb1 is.
- mount deze partitie onder een tijdelijk mountpoint, bijvoorbeeld:
# mkdir /mnt/varaptcache
# mount /dev/sdb1 /mnt/varaptcache
- Verplaats alle files uit /var/apt/cache naar die nieuwe directory:
# mv /var/apt/cache/* /mnt/varaptcache/
- /var/apt/cache is nu leeg
- Verplaats de tijdelijke mount naar /var/apt/cache
# umount /mnt/varaptcache
# mount /dev/sdb1 /var/apt/cache
- tijdelijk mountpoint kan weg:
# rmdir /mnt/varaptcache
- Voeg een regel toe in /etc/fstab om /var/apt/cache tijdens boot te
mounten. Deze regel moet onder de mount van /var komen en luidt
ongeveer:
/dev/sdb1 /var/apt/cache ext4 default,noexec 0 0
(weet ik niet uit mijn hoofd, kijk even naar het voorbeeld van /var).

3. Verplaatsen hele /var.
Dit gaat in principe net als 2, alleen worden ALLE files onder /var
naar de nieuwe partitie verplaatst. Dit moet in single-user mode.

4. Is wat lastiger en weet ik niet uit mijn hoofd.

Disclaimer: ik ben een feilbaar mens en vergis me ook weleens.

Vriendelijke groeten,
Arjen Bax


Op 15 mei 2013 14:43 heeft Peter van Summeren
<petervansummeren@gmail.com> het volgende geschreven:
> Hallo,
> ik heb twee extra harde schijven, via fdisk -l: /dev/sdb en /dev/sdc (ieder
> met een boot *)
> Allebei 250Gb.
> Voorlopig wil ik alleen /dev/sdb gebruiken en geven aan root.
> 1. Ik login als root
> 2. Ik maar een dir genaamd dskb aan in /:   mkdir   /dskb
> 3. vervolgens: mount -t ext4   /dev/sdb   /dskb
>     Daarmee is de dir / van /dskb gemount.
> 4.  Ik wil eenzelfde structuur hebben als op mijn hoofdschijf: /,
> /home,/tmp,/usr,/var,/sw
>     Gaat dat met detzelfde cijfervolgorde  als voor mijn hoofdschijf?:
>
>     mount -t ext4   /dev/sdb9   /dskb/home
>     mount -t ext4   /dev/sdb8   /dskb/tmp
>     mount -t ext4   /dev/sdb5   /dskb/usr
>     mount -t ext4   /dev/sdb6   /dskb/var
>     mount -t ext4   /dev/sdb7   /dskb/sw
>     Ik heb er geen idee van waarom deze cijfervolgorde bij het installeren
> van Wheezy is gebruikt.
> 5.  moet dit in mijn /root/.profile? Of in een andere .<file>?
>
> Mijn bedoeling is om hierna texlive-full te installeren.
> Gaarne reactie.
> met vriendelijke groeten,
> Peter van Summeren


Reply to: