Miten voin muuttaa ext root -osion kokoa ajonaikana?

Miten voin kasvattaa järjestelmän juuriosion kokoa ajonaikana?

Minulla on osio, jota ei ole varattu juuriosion jälkeen (joka on myös ext4), miten voin lisätä tuon varaamattoman tilan juuriosioon varattuun tilaan ilman, että palvelin sammutetaan?

GUI (Ubuntu 14.04 ja uudempi): GParted v0.17 ja uudemmat versiot tarjoavat mukavan graafisen käyttöliittymän tätä varten. (Vanhemmat versiot kieltäytyvät muuttamasta asennetun osion kokoa).

Komentorivi (mikä tahansa Ubuntu-versio): Tässä on kolme vaihetta.

Vaihe 1. Osion kokoa on ensin muutettava. Jos käytät LVM:ää, se on helppoa, ja oletettavasti tiedät, miten toimia. Jos käytät klassisia osioita, se on hieman monimutkaisempaa ja voi vaatia uudelleenkäynnistyksen (vaikka sinun ei koskaan tarvitse käynnistää toista järjestelmää tai live-CD:tä).

Minä teen sen näin: Käytä fdisk-ohjelmaa ensin osion poistamiseen (ajatuksena on, että levyllä olevat tiedot säilyvät), ja luo se sitten varovasti uudelleen suuremmalla koolla samaan paikkaan.

Esimerkki:

$ sudo fdisk /dev/sda

Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     9437183     4717568   83  Linux

Command (m for help): d
Selected partition 1

Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4, default 1): 1
First sector (2048-10485759, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):
Using default value 10485759

Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    10485759     5241856   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Jälleen kerran on tärkeää, että uusi osio alkaa samasta lohkosta kuin vanha. Myös id:n pitäisi täsmätä (83 Linux-järjestelmissä). Varaudu siihen, että menetät kaikki tietosi pienimmästäkin kirjoitusvirheestä.

Varmuuden vuoksi voit myös palauttaa käynnistyslippulaitteen (jota Wikipedian mukaan tarvitaan edelleen joissakin tietokoneissa) painamalla a.

Katso kommenttiosasta, mitä tehdä, jos swap-osio on tiellä.

Nyt pitäisi olla selvää, miksi ihmiset suosittelevat live-CD:n käyttöä ;-).

Vaihe 2. Kuten fdisk avuliaasti muistuttaa, sinun on ladattava osiotaulukko uudelleen ennen jatkamista. Turvallisin tapa on yksinkertaisesti käynnistää uudelleen, mutta voit myös käyttää partprobe tai kpartx (lisätietoja).

Vaihe 3. Kun osion kokoa on muutettu ja osiotaulukko on ladattu uudelleen, on yksinkertaista suorittaa resize2fs tiedostojärjestelmälle, ja voit tehdä tämän vaikka se olisi asennettu root-osiona.

Esimerkki:

$ sudo resize2fs /dev/sda1
Kommentit (20)

Ext4-tiedostojärjestelmän kokoa on mahdollista muuttaa on-line, vaikka se olisikin root-osio. Käytä komentoa resize2fs.

sudo resize2fs /dev/sda1

EDIT: On-line-koon pienentäminen ei ole sallittua:

root@brunojcm-htpc:/home# resize2fs /dev/sda5 2654693
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/sda5 is mounted on /; on-line resizing required
resize2fs: On-line shrinking not supported
Kommentit (9)

Voit myös käyttää GPartedia - kunhan se osio, jonka kokoa muutat, ei ole se, josta olet käynnistänyt järjestelmän - muuten ehdotan, että live CD -vaihtoehto on hieman helpompi aloittelijoille.

GParted tekee periaatteessa kaikki vaiheet - vain graafisen käyttöliittymän perusteella.

Kommentit (3)