¿Cómo puedo cambiar el tamaño de mi partición / (raíz)?


171

Aunque mi tarjeta SD tiene 16 GB, la imagen que mostré fue de solo 2 GB y ahora solo puedo ver 2 GB de espacio de almacenamiento en el disco.

¿Cómo puedo cambiar el tamaño de la imagen para tener más espacio en mi partición raíz?


Thanks..worked grande para mí y no tienen tanque de mi system..still IRC y servidor web Apache y mi plena capacidad de 8 GB

1
¿Por qué cambiar el tamaño de una partición raíz cuando puede crear una nueva partición en el espacio libre restante de la tarjeta SD y luego montarla dentro de la partición raíz en, /mnt/storagepor ejemplo? Esto aísla eficazmente el sistema y los datos y facilita el mantenimiento y la copia de seguridad.
mbaitoff

2
@mbaitoff: porque la imagen predeterminada del sistema solo tiene 68MiB de espacio libre, lo que no deja mucho espacio para agregar software adicional.
Jules

@Jules: no estaba preguntando por qué uno querría cambiar el tamaño de una partición. A preguntaba por qué cambiaría el tamaño de la partición del sistema en lugar de montar almacenamiento adicional en el punto de montaje de la partición del sistema, aislando así efectivamente el sistema y el software / datos. Si desea almacenamiento, monte las spcae SD restantes en /mnt/storage, si desea programas, monte en /opt/software/.
mbaitoff

@mbaitoff la mayoría de los programas se instalan en / usr, no / opt / software. Las imágenes precompiladas tienen el contenido de / usr en la partición raíz. Por lo tanto, parece esencial aumentar el tamaño de la partición raíz si desea instalar cualquier software no predeterminado.
Jules

Respuestas:


158

Asumiendo que está utilizando Debian.

La versión corta:

  1. Copia de seguridad de su sistema
  2. Elimine las particiones principales e intercambiables (dejando solo la partición de arranque)
  3. Recree la partición principal para utilizar el espacio de disco restante (excluyendo la partición de arranque). Asegúrese de reutilizar el mismo sector de inicio que la partición raíz original.
  4. reiniciar el sistema
  5. cambie el tamaño de la nueva partición raíz de arranque para utilizar el tamaño completo de la partición.

Instrucciones paso a paso

Primero haga una copia de seguridad de su tarjeta SD usando las instrucciones que se encuentran aquí en caso de que algo salga mal.

Desde la línea de comando o una ventana de terminal ingrese lo siguiente

sudo fdisk /dev/mmcblk0

luego escriba ppara listar la tabla de particiones

Deberías ver tres particiones. si mira en la última columna llamada Sistema , debería tener

  1. W95 FAT32
  2. Linux
  3. Intercambio de Linux

tome nota del número de inicio de la partición 2, lo necesitará más adelante. aunque probablemente todavía estará en la pantalla (por si acaso).

siguiente tipo dpara eliminar una partición.

Luego se le pedirá el número de la partición que desea eliminar. En el caso anterior, desea eliminar las particiones de intercambio de Linux y Linux.

Entonces escribe 2

luego escriba dnuevamente y luego escriba 3para eliminar la partición de intercambio.

Ahora puede cambiar el tamaño de la partición principal.

escriba npara crear una nueva partición.

Esta nueva partición debe ser una partición primaria, así que escriba p.

Luego ingrese 2cuando se le solicite un número de partición.

Ahora se le solicitará el primer sector para la nueva partición. Ingrese el número de inicio del paso anterior (la partición de Linux)

A continuación, se le solicitará el último sector que puede presionar enter para aceptar el valor predeterminado que utilizará el espacio restante en el disco.

Escriba wpara guardar los cambios que ha realizado.

Luego reinicie el sistema con el siguiente comando:

sudo reboot

una vez que el sistema se haya reiniciado y haya regresado a la línea de comando, ingrese el siguiente comando:

sudo resize2fs /dev/mmcblk0p2

Nota: esto puede llevar mucho tiempo (dependiendo del tamaño y la velocidad de la tarjeta) tenga paciencia y deje que termine para que no estropee el sistema de archivos y tenga que comenzar desde cero.

Una vez hecho esto, reinicie el sistema con el siguiente comando:

sudo reboot

Ahora puede verificar que el sistema está utilizando toda la capacidad de la tarjeta SD ingresando el siguiente comando:

df -h

Por qué esto funciona:

La verdadera magia aquí es que elimine las particiones raíz e intercambiables, luego vuelva a crear solo la partición raíz (utilizando el sector de inicio original) antes de escribir los datos en el disco . Como resultado, no borra los datos existentes de la partición raíz.

Al eliminar la partición de intercambio, permite que la sala de partición raíz crezca más allá de su tamaño actual y llene la parte no utilizada del disco (debido a la ubicación de las particiones, la partición raíz se intercala entre las particiones de inicio y de intercambio, no puede simplemente cambie el tamaño dejando solo la partición de intercambio).

Luego, cambia el tamaño (que es seguro ejecutar en un disco montado) al sistema de archivos para usar todo el espacio en la nueva partición raíz.

árbitro:


1
@Jivings si se hace correctamente, no pierde nada, pero es la razón por la que hice el primer paso de respaldo.
Steve Robillard

2
Según los comentarios, parece que también debe documentar por qué esto funciona, no solo cómo.
Jivings

1
@Jivings espero que esto aborde sus preocupaciones.
Steve Robillard

99
Parece muy incorrecto que tenga que eliminar una partición para cambiar su tamaño.
Alex Chamberlain

55
@ AwesomeUser No lo haces en la Mac, lo haces en la pi misma. Además, si está ejecutando raspbian, puede arrancar el pi y, desde la línea de comando, ejecutar el siguiente comando sudo raspi-config y elegir la opción de redimensionar la partición raíz.
Steve Robillard

103

Usando la imagen Debian-Wheezy Beta, hay una utilidad de configuración incorporada que facilita esto:

Hay una utilidad llamada raspi-config. Esto se ejecuta en el primer arranque si está conectado directamente al RPi. Si está por encima de SSH, puede ejecutarlo manualmente usando $ sudo raspi-config. (Creo que puede volver a ejecutar la herramienta manualmente en cualquier momento).

La segunda opción en el cuadro de diálogo azul que sigue se titula expand_rootfs, con la descripción "Expandir la partición raíz para llenar la tarjeta SD".

Al seleccionar esto, su partición raíz se redimensionará para llenar la tarjeta la próxima vez que inicie su RPi.

Actualización para 2015!

Regreso a esta respuesta con una nota de precaución: he estado usando un montón de tarjetas SD de 16 GB, y me sorprendió al maximizar mi partición para llenar la tarjeta que estaba usando. Hacerlo causó muchos problemas al cambiar a una nueva tarjeta que (a pesar de que se declaró como 16 GB) era aproximadamente 200 MB más pequeña que la tarjeta anterior.

Esto llegó a un punto crítico cuando cambié un par de RPis de v1 al nuevo modelo v2, que usa tarjetas Micro SD.

Ahora dejo aproximadamente 1GB libre para asegurarme absolutamente de que mis imágenes se pueden cambiar entre tarjetas SD sin problemas.


Este proceso tardó unos 10 minutos con una tarjeta de 16 GB en mi Pi.
Der Hochstapler

55
Esto es mucho más simple que la respuesta principal. Esta es la solución para usar.
James Skimming

@JamesSkimming: esta es la solución a utilizar para la imagen Beta de Debian-Wheezy. No para otros.
SF.

Esto no funciona para Raspbian cuando se instala desde NOOBS en las tarjetas SD que se envían con kits RPi. cuando intentas ejecutar la opción expandir, dice que no es compatible con esta configuración, pero dado que noobs en ejecución probablemente esté usando todo el espacio de todos modos ... el problema es que estoy tratando de actualizar la imagen de 8GB en una tarjeta de 32GB
Eoin Campbell

Raspi-config no sabe cómo cambiar el tamaño de la raíz de Raspbian Wheezy. expand_rootfs como sugirió causó problemas. La respuesta anterior a la suya funciona como un encanto en un sistema en vivo y no es necesario "dejar aproximadamente 1 GB".
GTodorov

28

Si no se siente muy cómodo trabajando en la línea de comandos, como en la excelente respuesta de Steve Robillards, hay algunas aplicaciones GUI disponibles. En particular, gparted funciona muy bien.

Creo que está instalado por defecto en un Ubuntu LiveCD pero no en un sistema instalado. Hay por supuesto una solución fácil para esto: apt-get install gparted. No puede hacer esto en el Pi real, porque para cambiar el tamaño de las particiones deben desmontarse.

La imagen de abajo está en holandés, pero no dejes que eso estropee la diversión. Es muy fácil de usar. Este es el diseño de la imagen debian predeterminada en una tarjeta sd de 8 gb.

GParted

Haga clic derecho en las particiones para desmontarlas y luego haga clic derecho para cambiar el tamaño o mover la partición. También puede crear nuevas particiones y formatear las existentes. En la imagen a continuación, eliminé la partición de intercambio y ahora puedo cambiar el tamaño de la partición raíz a todo el espacio a la derecha. No lo llenes por completo, porque todavía tienes que agregar una partición de intercambio.

Redimensionar

Puede jugar con el diseño de la partición, los cambios solo se escriben si aplica los cambios (la tecla 'volver' en gris en la primera imagen).

Es muy fácil mover particiones, pero como en la respuesta de Steve, le recomiendo que elimine la partición de intercambio por completo, luego cambie el tamaño de la raíz y luego vuelva a crear un intercambio. Mover una partición puede llevar mucho tiempo y el intercambio no contiene datos que necesita conservar.


1
He usado este método; Funciona de maravilla.
Alex Chamberlain

Estoy de acuerdo. He usado gparted para hacer exactamente esto y es muy fácil
JayDev

Si se está conectando a través de VNC, ejecutesudo -E gparted
forzagreen el

También puede necesitar ejecutar el siguiente comando antes gpartedsi está ejecutando en Wayland (no estoy seguro de que estos problemas se hayan resuelto):xhost +SI:localuser:root
John Manko