Posso redimensionar a partição raiz sem desinstalar e reinstalar o Linux (ou perder dados)?

17

Comecei a usar uma máquina com o Debian e o Windows 7 instalados. No entanto, depois de instalar alguns programas, comecei a receber a mensagem de que não há espaço suficiente. Eu sabia que o sistema tinha mais de 1 TB de espaço no disco rígido no total e fiz algumas pesquisas. Parece que a partição raiz é de apenas 5 GB.

Existe alguma maneira de alocar mais espaço em disco para a partição específica sem reinstalar o Linux?

Abaixo, você encontra os resultados de alguns comandos que eu executei:

fdisk -l

Disk /dev/sda: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4a47e2fd

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      102400    7  HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2              13       53507   429687500    7  HPFS/NTFS
Partition 2 does not end on cylinder boundary.
/dev/sda3           53507       77826   195340289    5  Extended
Partition 3 does not end on cylinder boundary.
/dev/sda5           53507       53537      243712   83  Linux
/dev/sda6           53538       77826   195095552   8e  Linux LVM

Disk /dev/sdb: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4a47e2fe

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               2       62261   500097657+   f  W95 Ext'd (LBA)
/dev/sdb5               2       62261   500097656+   7  HPFS/NTFS

Disk /dev/dm-0: 4999 MB, 4999610368 bytes
255 heads, 63 sectors/track, 607 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 1996 MB, 1996488704 bytes
255 heads, 63 sectors/track, 242 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-1 doesn't contain a valid partition table

Disk /dev/dm-2: 20.0 GB, 19998441472 bytes
255 heads, 63 sectors/track, 2431 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-2 doesn't contain a valid partition table

df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/HU-root   4.6G  4.4G   32M 100% /
tmpfs                 2.0G     0  2.0G   0% /lib/init/rw
udev                  2.0G  220K  2.0G   1% /dev
tmpfs                 2.0G  356K  2.0G   1% /dev/shm
/dev/sda5             231M   22M  198M  10% /boot
/dev/mapper/HU-home    19G  751M   17G   5% /home

Editar (informações extras com base no comentário):

# mount
/dev/mapper/HU-root on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda5 on /boot type ext3 (rw)
/dev/mapper/HU-home on /home type ext3 (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda6
  VG Name               HU
  PV Size               186.06 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              47630
  Free PE               41194
  Allocated PE          6436
  PV UUID               wmEFAc-eSb6-r3qo-jIjy-vuKH-v9JK-eQfJFZ

Como nota de rodapé, eu também gostaria de receber sugestões de bons livros que expliquem esses assuntos em profundidade (sistemas de arquivos, como os vários sistemas operacionais entendem os sistemas de arquivos etc.).

F1234k
fonte
Que tipo de sistema de arquivos é seu /? (Publique a saída mountou o conteúdo de /etc/fstabse você não souber.) Também a saída de pvdisplay(como root) seria interessante, pois você parece estar usando o LVM.
Mat
Os resultados dos comandos que você mencionou foram adicionados! Obrigado :)
F1234k
O que você está tentando fazer é possível, mas apenas usando o LVM. A tela df que você mostrou parece estar usando LVM. Se todo o espaço no grupo de volumes "HU" for usado, você primeiro precisará reduzir o volume lógico "inicial". Encolher é uma operação muito mais perigosa em termos de perda de dados do que aumentar um sistema de arquivos.
Jordanm
Solução muito mais fácil e segura: Crie uma nova partição, por exemplo /usr, e mova seu / usr atual para lá.
hhaamu

Respostas:

17

Aviso : fazer qualquer coisa em seus sistemas de arquivos sem um backup restaurável conhecido é desaconselhável.


Não execute nenhuma das etapas a seguir se não tiver certeza de que /está limpo. Se você não tiver certeza, execute o seguinte (como root):

# touch /forcefsck

e reinicie. Isso fará com que fscktodas as suas partições estejam no lado seguro.


Dito isto, como você está usando o LVM para seu dispositivo raiz e um ext3sistema de arquivos, você pode estendê-lo online. Antes de começar, verifique se você resize2fsinstalou. Caso contrário, geralmente está em um pacote chamado e2fsprogs. (Se você não conseguir instalá-lo porque não possui espaço suficiente, tente fazer uma limpeza, /var/logpor exemplo.)

Primeiro você estende o volume subjacente com (como raiz):

# lvextend -L+2G /dev/mapper/HU-root

(Ajuste a 2Gpeça como desejar - é a quantidade de espaço que você deseja adicionar.)

Então você precisa redimensionar o sistema de arquivos. Isso pode ser feito online com resize2fs:

# resize2fs /dev/mapper/HU-root

Isso pode levar alguns segundos / minutos. Não interrompa. Faça outra reinicialização no final, possivelmente com outra /forcefsck, se desejar. Não é necessário, mas geralmente faço de qualquer maneira.

Esteira
fonte
1
Isso não funciona para mim:Path required for Logical Volume "sda1" Please provide a volume group name
8bitjunkie
Isso funciona apenas no LVM, parece que você está tentando redimensionar uma partição real.
Mat
6

Você tem espaço livre disponível no seu PV para alocar na partição /. Você pode usar o seguinte para aumentar o espaço do / dev / mapper / HU-root.

lvextend -L +10G /dev/mapper/HU-root
e2resize /dev/mapper/HU-root

O comando acima adicionará 10G do seu Grupo de volumes ao volume lógico da raiz do HU. O comando e2resize "aumentará" o sistema de arquivos ext3 para usar o espaço livre restante.

jordanm
fonte
2
Talvez eu não seja o único que não entendeu imediatamente: PV = "Volume Físico"
Étienne Reinstate Monica
Isso não funciona para mim:Path required for Logical Volume "sda1" Please provide a volume group name
8bitjunkie
@ 8bitjunkie sda1é um dispositivo físico, não um volume lógico.
Jordanm # 06/16
-1

Na lvdisplaysaída, escolha o caminho para a partição raiz que você está tentando redimensionar / expandir.

Aquaman
fonte