PDA

Ver la Versión Completa : Cómo distribuir el disco duro estratégicamente



karlggest
04-abr-2011, 16:28
Hay una pregunta que personalmente encuentro un poco sorprendente es, en realidad, bastante frecuente: "¿cuánto espacio necesito para instalar openSUSE?", que da pie a otras, como "¿cuál es el mejor esquema para particionar el disco?" o "¿cuánta swap necesito?".

Quizás parte de la confusión provenga de varios pequeños factores.

1. La heterogeneidad de GNU/Linux y el deseo de reglas generales tipo "receta". Así, pretende generalizarse un conjunto de reglas para usuarios que abarcan desde usuarios domésticos (que instalan OpenOffice, Firefox y si acaso algún juego y unas cuantas aplicaciones multimedia), usuarios profesionales (que instalan OpenOffice y Firefox, alguna aplicación de uso específico -por ejemplo, de contabilidad- y que tienen el espacio de usuario centralizado en un equipo que funciona de servidor) y toda una gama de usuarios diversos: familias que reviven un viejo Pentium que tenían en el trastero, fans que tratan de montar pequeñas redes con servicios de todo tipo...

Y es que una instalación GNU/Linux puede ocupar desde unos cuantos MiB hasta decenas de GiB en función de las necesidades del usuario. Y eso sin contar el espacio que debe dedicarse a guardar cada usuario sus propios documentos, vídeos, etc.

2. La evolución del espacio de disco y de RAM disponibles. La mayoría de guías y FAQs fueron escritas hace apenas unos años, pero la situación entonces era la inversa: generalmente, se disponía de muy poco espacio de disco y la cantidad total de RAM no era para tirar cohetes. Así, generalmente pueden verse en foros y listas de correos consejos que estaban destinados a usuarios que apenas tenían 16 MiB de RAM o que tenían que meter a presión un Windows XP y un GNU/Linux en un disco duro de menos de 10 GiB(1).

En este documento trataré de mostrar unas cuantas estrategias que pueden aplicarse a una instalación de openSUSE estándar. Aquí "estándar" significa un sistema doméstico normal con aplicaciones generales: LibreOffice, Firefox, Amarok o Banshee, KDE o GNOME...

En otros manuales e incluso en la Wikipedia puede conseguirse una referencia o ampliación de diversos aspectos que trataré en el documento. Entre ellos, hay dos temas en este mismo foro: Micro Manual de Linux I: gestión de memoria en Linux (http://www.forosuse.org/forosuse/showthread.php?t=12137&highlight=jerarqu%EDa+ficheros) y Sistema de ficheros. (http://www.forosuse.org/forosuse/showthread.php?t=21375&highlight=jerarqu%EDa+ficheros)

índice
0. El problema del espacio. (http://www.forosuse.org/forosuse/showthread.php?t=25919#2)
1. Estableciendo el uso. (http://www.forosuse.org/forosuse/showthread.php?t=25919#3)
2. La memoria y la swap (http://www.forosuse.org/forosuse/showthread.php?t=25919#4)

2.1 Añadir swap (http://www.forosuse.org/forosuse/showthread.php?t=25919#5)
2.2 ¿y usar varias swap? (http://www.forosuse.org/forosuse/showthread.php?t=25919#6)
3. Dividir el disco (http://www.forosuse.org/forosuse/showthread.php?t=25919#7)
3.1 Particiones: cuestiones generales (http://www.forosuse.org/forosuse/showthread.php?t=25919#8)
3.2 Volúmenes: cuestiones generales (http://www.forosuse.org/forosuse/showthread.php?t=25919#9)
3.3 Convivir con el enemigo: NTFS (http://www.forosuse.org/forosuse/showthread.php?t=25919#10)
3.4 Ejemplo práctico I: basado en particiones (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=2#11)
3.4.1 De cuando el espacio está ocupado (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=2#12)
3.4.2 De cuando el disco está vacio (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=2#13)
3.4.3 ¿Particiones extendidas, primarias o lógicas? (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=2#14)
3 (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=2#15).4.4 Ejemplo de particionado (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=2#18)
3.4.5 Ventajas e inconvenientes (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=2#18) 3.5 Ejemplo práctico II: basado en volúmenes (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=2#19)
3.5.1 Partición Personalizada (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=2#20)
3.5.2 Ventajas e Inconvenientes (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=3#24) 4. Criptografía (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=3#25)
5. Ejemplo práctico III: sistema con raíz cifrada (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=3#26)

5.1 Antecedentes (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=3#27)
5.2 Particionando el disco (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=3#28)
5.3 Creando las particiones (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=3#30)
5.4 Creando el volumen (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=4#31)
5.5 Creando los volúmenes lógicos (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=4#32)
6. La necesidad de crecer (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=4#37)
6.1 Modificar particiones (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=4#38)
6.2 Sistemas de Archivos (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=4#39)
6.3 Sobre el Montaje de Dispositivos (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=4#40)
6.3.1 Nombres de dispositivos (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=5#41)
6.3.2 udev: añadiendo dinamismo (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=5#42)
6.3.3 Y más allá... (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=5#43)
6.4 El problema de añadir espacio (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=5#44)
6.5 fdisk: introducción (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=5#45)
6.6 Ejemplo Práctico IV: añadir espacio con una partición (http://www.forosuse.org/forosuse/showthread.php?t=25919&page=5#47)

6.2 Añadir discos
6.2.1 La tradición obliga
6.2.2 Crecer con volúmenes
Comentarios, críticas o sugerencias (http://www.forosuse.org/forosuse/showthread.php?t=25920)


...en construcción....

(1) Como anécdota, cuando comencé a usar GNU/Linux yo era usuario del Mal. Por aquel entonces tenía un disco duro de 1GiB en el que tenía instalado Windows NT 4.0. El espacio que podía destinar a GNU/Linux era de unos 400 MiB cuando tuve en mis manos una SUSE 6.0 ¡que necesitaba 2GiB para su instalación estándar!!! yo daba apenas mis primeros pasos con GNU/Linux, así que no tenía la menor idea de qué podía quitar de la instalación para poder meterla en el espacio disponible que tenía xdd

karlggest
04-abr-2011, 16:46
Axioma 1: todo espacio de disco tiende a llenarse; toda memoria libre tiende a llenarse.

Quizás lo primero que deberíamos hacer es establecer es un hecho: las preguntas que se hacen en relación al espacio que debe destinarse a qué cosa en una instalación GNU/Linux es incompleta. Debería ser algo como: "para un uso determinado, ¿cuál es el modo de particionado más eficiente?". Con estos matices, podemos enfrentar el problema más directamente. Empezaremos por cuestionarnos los usos y hábitos de los sistemas GNU/Linux, y en otra sección trataremos ampliamente la cuestión de la eficiencia y de qué estrategias podemos valernos.

En el documento usaré varios conceptos que he descrito en algunos temas que se pueden consultar en el foro, o en otros manuales, la wikipedia, etc. Llamaré la atención sobre varios:

* espacio de disco: es la cantidad de espacio que un disco, habitualmente un disco duro, tiene disponible para el sistema. Esta cantidad depende de la organización física del propio disco duro, pero también del tipo sistema de archivos que se utilice. A mayores, la creación de particiones lógicas también consume espacio, ya que en algún lado debe guardarse dicho particionado. Hay otras consideraciones menores que pueden observarse en algún documento técnico. En la wikipedia podéis ver informaciones sobre el funcionamiento de los discos duros.

* sistema de ficheros: organización jerárquica de la información en un sistema operativo. En los sistemas "Unix-like" hay una raíz de la que cuelgan diversas carpetas, entre ellas /home, /usr, etc., que a su vez contienen otras o archivos, y así sucesivamente formando una especie de árbol invertido. Podemos pensar que cada sistema de ficheros se corresponde con las ramas principales del sistema, y muchos de ellos no tienen siquiera por qué estar en el mismo dispositivo. De hecho, lo usual es tener al menos dos sistemas de ficheros en dispositivos separados: / y /home (habitualmente para un usuario doméstico esto significa que están en particiones distintas dentro del mismo disco duro)

* sistema de archivos: organización de los diversos archivos que componen el sistema, incluida su localización, posibles propiedades o permisos, etc. Para evitar ambigüedades, suelo hablar de tipo de sistema de archivos. Los más usuales son ext4, xfs y reiserfs, junto con NTFS que se utiliza en sistemas Windows. En los últimos años, diversos fabricantes nos han devuelto a la pesadilla de convivir con FAT (vfat), que hoy suele utilizarse en pendrives, cámaras digitales, etc.

karlggest
04-abr-2011, 17:50
Axioma 2: Si todo lo que tienes en la mano es un martillo, cualquier cosa que veas parecerá un clavo.

Todos comenzamos nuestra singladura en un sistema nuevo asumiendo que nuestras necesidades son más o menos las mismas que las de todos los demás; si acaso, podemos pretender que, puesto que somos nuevos, quizás tengamos más dificultades para comprender ciertas cosas que usuarios más veteranos den por sentadas, y casi con total seguridad pretendamos consejos claros y concretos.

Generalmente, tales usuarios más veteranos nos dirán que la mejor configuración de nuestro sistema dependerá del uso que le vayamos a dar. Es posible que en algunos foros quien escribe eso tenga una experiencia fructífera con un viejo Pentium en el que usa vim para desarrollar aplicaciones, tiene un gestor de correos, quizás un navegador y poco más. O puede que nos lo diga alguien que dispone de un potente equipo para disfrutar de los últimos juegos ¡no olvides una buena gráfica!!, pareciera gritar aun cuando no lo ponga por escrito.

Y es que necesitamos tener una idea de qué vamos a hacer con nuestro equipo antes de buscar una receta para usar. Un usuario de aplicaciones CAD puede necesitar mucho espacio para ellas; un usuario que simplemente se conecte a internet -si acaso, LibreOffice para los adjuntos que nos mandan por correo- puede arreglárselas con 1 GiB. De forma similar, resolver ecuaciones diferenciales o compilar puede exigir cantidades ingentes de memoria, que puede que sólo podamos alcanzar mediante una buena swap; sin embargo, las aplicaciones precisas para hacer esos cálculos necesitarían muy poco espacio!!

Es buena idea dedicar unos minutos a pensar en qué aplicaciones se quiere usar, o al menos en qué tipos: suites ofimáticas, navegadores, aplicaciones multimedia. Esta reflexión nos puede indicar no sólo una idea del espacio necesario para instalar lo que necesitamos, sinó también cuánta memoria necesitamos y como combinar RAM y swap para cubrir nuestras necesidades.
importante!!! tanto para el espacio de disco como para el de RAM, poco espacio libre puede ralentizar el sistema, y quedarse sin él significa que el sistema caerá.
Aquí algunos ejemplos del espacio de disco ocupado por algunas aplicaciones, teniendo en cuenta que puede variar entre versiones. Hay que tener en cuenta que sólo se hace referencia a los paquetes que componen tal aplicación: muchas librerías compartidas podrían ser necesarias y habría que sumarlas. Por ejemplo, para usar kcalc al menos hay que tener QT y ciertas librerías de KDE, y, naturalmente, algún sistema gráfico.

Núcleo: 100 MiB
Paquetes para compilar C/C++: 100 MiB
Fuentes del núcleo: 400 MiB
Tipografías: entre 10 y 100 MiB
Sistema X: 120 MiB
Sistema Base: 400 MiB
LibreOffice: 500 MiB
Xemacs: 150 MiB
KDE 4.4: 400 MiB
Firefox + flash: hasta 145 MiB
Aplicaciones educativas comunes: 50 MiB
Gimp: 90 MiB
Java: 100 MiB

Téngase también en cuenta que en total una instalación estándar, esto es, después de concluir la instalación, debería ocupar unos 3,5 GiB. Con códecs multimedia y los pequeños ajustes típicos, debería sumar menos de, aproximadamente, 4 GiB.

Otras aplicaciones:

openCASCADE: 530 MiB
QCAD: 65 MiB
texlive: 457 MiB
libqt4-devel-doc-data (datos de la documentación de desarrollo de QT): 250 MiB
samba: 85 MiB
Adobe Acroread: 142,50 MiB
R-base: 56.5
Chromium: 115 MiB
Octave: 48 MiB
Gcompris: 216 MiB
Scilab: 236 MiB
Wine: 210 MiB*

En la sección 3 añadiré un inciso sobre los archivos temporales. El ejemplo más obvio es copiar un CD para grabarlo en otro usando la misma grabadora. En este caso, necesitaremos alberbar la imagen temporal del CD en algún lugar. Más obvia se hará esta necesidad si pensamos que pueda que queramos probar que el CD ha sido grabado correctamente, o si por cualquier motivo queremos hacer más copias del CD. También es preciso disponer espacio para modificar archivos de configuración, naturalmente. Si tienes el 100% de la raíz ocupada, no podrás, por ejemplo, añadir una línea a un archivo de configuración que necesites modificar. La conclusión de esto es que necesitas tener disponible el espacio que ocupan físicamente las aplicaciones y el espacio necesario para que funcionen.

En cuanto al espacio necesario en RAM, puede ser muy variable en función del uso. Por ejemplo, mientras escribo esto Firefox hace uso de unos 100 MiB; sin embargo, si abres unos cuantos vídeos en distintas pestañas, puedes necesitar 500 MiB e incluso más, en función del tamaño de cada vídeo. Calcular la cantidad de memoria adecuada para un sistema dado es algo que cuesta aún cuando se tenga mucha experiencia en dicho sistema.

* En este caso, contémplese el tamaño del software a emular.

karlggest
05-abr-2011, 14:08
Axioma 3: No sirve de nada usar una agenda para acordarse de las cosas, si después no recuerdas que usas una agenda para recordar las cosas.

La memoria es uno de los elementos más importantes de un sistema, ya que afecta directamente al rendimiento del equipo. A modo de ejemplo, puedes pensar que una memoria RAM es 100 veces más rápida que un disco duro. Un vistazo a la wikipedia puede dotarte de contexto(1)

En rigor, un sistema operativo trata con procesos(2). Un proceso no es más que una colección de instrucciones que forma parte de un programa y una información accesoria para que el sistema operativo de turno sepa qué hacer con él. Entre esa información, figura la localización en memoria de los datos con los que deba de trabajar. Otra información puede ser por ejemplo el usuario de dicho proceso, la lista de recursos que necesita, etc.

La Memoria Virtual es un mecanismo que permite extender la memoria principal (RAM) de un computador. En el hilo Micro Manual de Linux I: gestión de memoria en Linux (http://www.forosuse.org/forosuse/showthread.php?t=12137&highlight=jerarqu%EDa+ficheros) se describen brevemente los principales aspectos del uso de memoria principal. A efectos de este documento, lo importante es el concepto de swap como un espacio de disco utilizado para extender la memoria principal del sistema y que el computador debe disponer de una memoria total suficiente para ejecutar los procesos que necesite ejecutar, disponiendo de los datos que necesiten tales procesos en la propia memoria. El funcionamiento se puede describir así:


el sistema operativo carga en memoria el proceso a ejecutar.
cuando le corresponde ejecutarse, el proceso busca los datos en memoria.
si encuentra los datos, se ejecuta el proceso.
si no encuentra los datos en memoria, los busca en la memoria virtual.
si hay espacio en memoria, se cargan los datos y se ejecuta el punto 3.
si no hay espacio en memoria, el sistema operativo debe de descargar algún proceso para hacer sitio.
si consigue espacio suficiente, ejecuta el punto 3.
si no consigue hacer espacio, falla.

En este octavo punto, lo más habitual es que se pare el sistema. Así que tener RAM suficiente para ejecutar todos los procesos que deban ser ejecutados en cada momento dado es importante, como también lo es tener swap suficiente para poder mover los procesos entre RAM y disco cuando sea necesario: el sistema busca en memoria o en swap; si no tiene espacio en ninguno de los dos para cargar un proceso o sus datos, fallará igualmente.

Esta cuestión es, como se ve, tan importante que han corrido ríos de tinta sobre ella. GNU/Linux, sin embargo, proporciona a los usuarios experimentados recursos que pueden facilitar en gran medida la gestión de su sistema. En particular, puedes crear swaps en caliente y añadirlas al sistema cuando se requiera.

Esto no es mucho consuelo para un usuario sin experiencia en GNU/Linux, ya que sólo desplaza la cuestión. Uno podría, legítimamente, pensar "¿y cómo demonios sé yo cuándo necesito más swap?" Esto tiene una respuesta fácil que en principio puede no ser del agrado de tal usuario: experiencia.

¿Cómo se consigue experiencia? En este caso, lo suyo es disponer de memoria swap suficiente y monitorizar su uso de vez en cuando. Cuando ya llevamos unos meses trabajando con el sistema y tenemos una idea bien clara del uso que le damos, podremos hacer una estimación de nuestras necesidades.

Por ejemplo, si renderizamos una escena 3D o resolvemos ecuaciones complejas, o compilamos aplicaciones un poco grandes, con toda probabilidad necesitaremos bastante swap en dichos momentos. Así que, mientras hacemos dichas tareas, podemos observar el consumo de recursos (memoria y swap) e ir estableciendo unos límites. Por supuesto, la swap no sustituye a la RAM: si el uso de la swap es muy continuado y elevado, lo que necesitamos es aumentar la RAM disponible.

Hay muchas sugerencias para tratar de encontrar un buen tamaño para una swap al primer intento. Por ejemplo, la documentación de Red Hat para rhel indica:


hasta 4 GB - al menos 2 GB
4 hasta 16 - al menos 4 GB
16 hasta 64 - al menos 8 GB
64 hasta 256 - al menos 16 GB


Pero no os dejéis llevar por los números, sean estas u otras recomendaciones. Yo tengo en este equipo 1 GB RAM y una swap de 1,5... y la swap raramente llega al 15%... ¡lo que necesito realmente, para que vaya más rápido, es más RAM!!!!!


No puedo menos que recalcar que el término memoria virtual a veces es un pelín engañoso: la swap no actúa como una extensión de la memoria principal, como se dice en muchos lugares; en su lugar, la swap es más bien una suerte de "memoria intermedia". El procesador no puede, en ningún caso, acceder directamente a la swap: lo que necesite utilizarse, ha de ser copiado necesariamente a la memoria principal. En la swap se guardan, eso sí, los procesos y datos ya de la misma forma que estarían almacenados en memoria. Esto significa que usar swap en GNU/Linux significa intercambiar páginas entre la memoria principal y la memoria virtual, donde cada página contiene un proceso o una parte de él.

(1) http://es.wikipedia.org/wiki/Memoria_%28inform%C3%A1tica%29
(2) http://es.wikipedia.org/wiki/Proceso_%28inform%C3%A1tica%29

karlggest
05-abr-2011, 14:19
Si necesitamos incrementar la swap disponible de forma muy puntual, lo sensato es añadir un dispositivo swap en ese momento en lugar de tener una swap de tamaño mucho mayor del necesario. Crear una swap es sencillo. En openSUSE puedes usar el gestor de particiones de YAST, o cualquier otro gestor de particiones al uso. También puedes usar la línea de comandos para esto.

En la web podemos encontrar cómo se hace esto con comandos. Hay dos casos posibles: usar partición o usar un archivo de intercambio.

En esta web (http://web.mit.edu/rhel-doc/3/rhel-sag-es-3/s1-swap-adding.html), por ejemplo se explica cómo se hace. En esta web se explica cómo se crean con ánimo de mantenerlas en el sistema. Naturalmente, si lo que pretendemos es, como dije más arriba, usarla puntualmente, lo que tenemos que hacer es no añadir la línea en /etc/fstab para que se monte en el arranque (punto 5).

¿Y si no necesitamos ya esa swap? para desmontarla, basta con usar el comando swapoff. Siguiendo el ejemplo de dicha web:

swapoff /tmp/swap


La partición swap es siempre preferible al archivo swap, pero tiene el lógico inconveniente de que necesitas tener espacio para crearla; el archivo, sin embargo, puedes crearlo en cualquier punto del sistema de ficheros. GNU/Linux por defecto usa partición, mientras que Windows por defecto usa archivo, si bien ambos sistemas pueden utilizar ambas técnicas.

karlggest
05-abr-2011, 14:25
Hay varios motivos para usar varias swap, además del caso de necesitar añadir una swap de forma puntual:

1. Disponer de varios discos duros: es posible que sea más eficiente tener los distintos sistemas de ficheros repartidos por todos los discos, ya que el tiempo medio para encontrar algo en varios discos es menor que en uno, ya que puedes hacer varias cosas a la vez en lugar de hacerlas de una en una. El rendimiento real de hacer esto es cierto que es discutible.

2. Si tenemos un sistema basado en particiones, es posible que queramos usar dos swaps. Si tengo 3 GiB de RAM, por ejemplo, puedo crear una swap de 1,5 GiB por un lado y otra de 1,5 GiB al final del disco. Si, efectivamente, con el tiempo observo que es suficiente con la primera, será sencillo eliminar la última y extender la partición anterior para aprovechar ese espacio.

karlggest
05-abr-2011, 16:07
Axioma 4: No es buena idea mezclar tocino y velocidad.

La mayoría de los sistemas domésticos dividen el disco destinado a GNU/Linux en tres partes: una raíz (núcleo, aplicaciones y demás), una swap y una parte para los datos de los usuarios. Algunos instaladores de algunas distribuciones incluso pueden no preguntar e instalarse en el primer hueco, mientras que la mayoría de ellos permitirán optar entre hacer un diseño a medida o permitir que el instalador haga una sugerencia, por ejemplo aplicando reglas como el Principio de Pareto (conocida como regla 80/20) u otras reglas similares.

La razón para esta división es bien simple.



no es demasiado complicada: es sencillo indicarle al instalador que trate de garantizar que el espacio para la raíz será suficiente para contener todos los paquetes instalados, y a partir de ahí aplicar la regla 80/20, por ejemplo, para distribuir la raíz y /home, y para la swap es sencillo aplicar reglas tales como "hasta 4GiB, el doble de RAM y nunca más de 2 GiB de swap; para más de 4 GiB de RAM, para cada GiB de más a la swap le sumamos 1".
es bastante útil: mantener /home separado permite utilizar la misma partición para otros sistemas GNU/Linux que tengamos instalados, permite que la reinstalación del sistema no afecte a nuestros datos y configuraciones personales, etc.

No es la mejor configuración del sistema posible, pero es lo bastante simple para ser la más adecuada en la mayoría de casos. Añadir más particiones implica un mayor desperdicio de espacio, además de ser más laborioso estimar cuánto ha de destinarse a cada una; usar menos particiones tiene las desventajas de que si reinstalamos el sistema perderemos nuestros datos (o no podremos compartir /home con otros sistemas), y no usar swap tiene el problema de que nuestra RAM puede no ser suficiente en momentos puntuales.

He dicho que tal configuración no era necesariamente la mejor configuración posible, así que tratemos de profundizar más en la jerarquía de ficheros de GNU/Linux(1).

¡Aviso!!!!: ¡la inmensa mayoría de usuarios domésticos GNU/Linux son bastante felices ignorando esta cuestión!!!

Muchos sistemas de ficheros (/home, /var, /usr, /tmp, /boot,...) pueden estar situados en dispositivos distintos de la raíz, incluso en discos externos o remotos. Otros sistemas de ficheros, de hecho, ya lo están por su naturaleza: /srv o /proc, por poner dos ejemplos muy distintos.


Un sistema de ficheros que puede ser útil que esté separado de los demás es /opt. En dicho sistema de ficheros se deben de alojar las aplicaciones de terceros. Razones históricas hacen que por ejemplo KDE 3 se instalase ahí bajo openSUSE. En una instalación estándar es posible, pero no necesario, que /opt aloje algún software.

Igual que en la sección anterior cuando mencionaba el uso de dos swaps, si tenemos una partición /opt que al final no usamos podremos reintegrarla al sistema con facilidad. Otra razón, mucho más importante, es que mucho de ese software podemos haberlo descargado ya en formato binario en lugar de instalarlo desde algún paquete: en caso de reinstalar el sistema, o de que instalemos otro GNU/Linux, podremos montar (sin formatear) /opt en el sistema conservando las aplicaciones que allí tengamos. Aunque, para esto, hay que cerciorarse de que el sistema no haya instalado nada allí, por ejemplo, alguna aplicación del mentado KDE 3.

En redes de computadores es útil que /usr y /usr/local estén en dispositivos distintos: así, /usr estará disponible para todas las máquinas de la red, mientras que /usr/local solo lo estaría para la propia máquina. También en redes de computadores es posible que no queramos tener un /home separado, ya que el administrador de la red puede proveernos de acceso mediante LDAP o esquemas parecidos. El resultado en la práctica es que /home se monta por nfs en otro disco de otra máquina para tener centralizadas las carpetas de los distintos usuarios en un mismo lugar, permitiendo que cualquier usuario del sistema se conecte desde cualquier máquina.

Un caso especial es /boot. Hoy no existen muchos motivos interesantes para montar una partición específica para /boot, pero lo cierto es que hay varias situaciones donde es imprescindible. La primera de ellas es cuando se quiere cifrar la raíz: grub necesita cargar el kernel en una partición no cifrada; otra razón relacionada es que se quiera disponer de /boot en un dispositivo distinto para evitar que alguien pueda arrancar nuestra máquina en caso de robo o estravío... particularmente en casos donde pueda haber espionaje industrial; otra razón para separar /boot, y quizás más importante que las anteriores, es la limitación impuesta por la BIOS de algunas máquinas de hace algunos años, donde el sistema no puede estar instalado más allá de un límite; para resolver esto, basta con crear una partición /boot en algún lugar del principio del disco, dentro de esos límites.

/var es un sistema de ficheros muy importante en servidores. Allí se almacenan los registros -sobre todo de error-, las bases de datos, la cola de impresora... He visto algunos problemas de espacio sufridos por usuario que de repente se encontraban con que determinada aplicación generaba unos registros enormes que no borraba con la suficiente frecuencia, consumiendo muuucho espacio.


Hace años, en el laboratorio de libre acceso de una Escuela Universitaria de Informática uno de los administradores tuvo la brillante idea de añadir cuotas de disco para los usuarios, lo cual es una buena cosa, en principio... y es que tiene el mismo problema que la estimación de espacio para aplicaciones: ¿cuál es el espacio mínimo? ¿cuál es la probabilidad de que algún usuario legítimamente necesite más, y qué puede hacerse para garantizarse? Desde luego, estimar necesidades exageradas para todos los usuarios no tiene sentido: para eso es más eficiente no poner cuotas.

Bien, nuestro querido administrador escogió la política del "espacio medio". Así, si tenemos unos cuantos documentos de procesador de textos, algo de código fuente y un par de hojas de cálculo, nuestro espacio puede medirse en varios MiB. Así, el administrador puso una cuota de unos cuantos MiB para todos los usuarios para todo el uso del sistema. Quiero decir, la cuota afectaba al espacio que el usuario podía usar en total en el sistema, no sólo era un límite de disco disponible.

Las matemáticas son inflexibles. Quizás por eso algunos las odien, pues desnuda las carencias de nuestro pensamiento. Cuando quieres imprimir un trabajo de un procesador de textos como el MS-Word, necesitas varios MiB para que el sistema pueda generar las páginas que finalmente serán enviadas a impresión. Si tienes 4 MiB de cuota, y 2 están ocupados por archivos, sólo podrás usar 2 para la cola de impresión!!! Esto, para una impresora láser, no es mucho precisamente. En el caso de esa aula, la impresión estaba limitada a unas 4 o 5 páginas cada vez.

GNU/Linux tiene la cola de impresión en /var. Si imprimimos muchos documentos muy grandes debemos asegurarnos de que /var tiene el suficiente espacio libre mientras sea necesaria la cola. Por supuesto, toda vez que la impresión finalice no será necesario dicho espacio.

Hay múltiples ejemplos del uso de cachés por determinados programas. Por ejemplo, Firefox guarda los vídeos que carga en una caché y k3b puede grabar CD/DVD guardar imágenes -por ejemplo, si usamos el mismo dispositivo para leer el DVD que queremos copiar que para grabarlo. Muchos programas permiten configurar donde se van a establecer estas cachés y en algunos casos se tiende a hacerlas en alguna carpeta de /home (el mentado Firefox tiene una carpeta específica para cachés en su carpeta de usuario (.mozilla/firefox/PERFIL/Cache). Es posible que para aprovechar más el espacio deban de revisarse algunas carpetas temporales o carpetas de cachés. /tmp es quizás el ejemplo más habitual.

Hay varias ventajas más en aumentar el grado de división del disco, pero lo cierto es que la mayoría de usuarios no encontarán diferencias apreciables que compensen la laboriosidad de crear un esquema de ese tipo.


(1) http://es.wikipedia.org/wiki/Jerarqu%C3%ADa_Estandar_del_Sistema_de_Ficheros
http://www.forosuse.org/forosuse/showthread.php?t=15569&highlight=sistema+ficheros, sección 3.1
....

karlggest
06-abr-2011, 12:38
Cada cosa en su sitio, y Linux en todo.

Grosso modo, una partición de disco es una división lógica dentro del mismo. Surgen por la necesidad de poder acceder a todo el contenido de un disco duro cuando estos se hacen más grandes que lo que sistemas operativos y computadores anteriores podían manejar. Pronto se aprovechó para adaptar el uso de particiones al sistema de ficheros de Unix, consiguiendo un uso de las particiones coherente: tanto /boot como /, /usr, /usr/local, /tmp, /var, /var/spool y /home se montan en particiones diferentes.

GNU/Linux fue diseñado bajo MS-DOS y por tanto está diseñado para ser compatible con MS-DOS y sus derivados. A la sazón, al tipo de tabla de particiones que usan los discos duros bajo GNU/Linux se le llama "de tipo MS-DOS".

tabla de particiones: en los PC/compatibles, es un espacio reservado al principio del disco donde se indica la situación física de hasta 4 particiones (llamadas primarias).

MBR (Master Boot Record): primer sector del disco que contiene el código del cargador de arranque y la tabla de particiones anterior de 4 entradas.

Para superar las limitaciones de esta tabla de 4 entradas, la "tabla de particiones tipo MS-DOS" permite que una de las entradas establezca los límites de lo que llama una partición extendida. En esta idea, tal partición contiene información de dónde empieza la partición lógica, la cual a su vez contiene la información de la siguiente, etc. Para diferenciar, se hace referenca a éstas como lógicas, frente a las primarias ya mencionadas.

Modernamente puede hacerse uso de un esquema de particionado alternativo: GPT (GUID Partition Table). A diferencia del sistema MS-DOS, GPT no distingue tipos de particiones.

Partición activa: Ser activa es una propiedad de una partición que indica que puede arrancarse un sistema operativo desde ahí. Un cargador de arranque genérico se limita a cargar lo que haya en el primer sector de cualquier partición activa que encuentre. Éste tipo de arranque se denomina también "carga encadenada" (chainload). MS-DOS sólo permite una partición activa.

Referencias:
http://es.wikipedia.org/wiki/Partici%C3%B3n_de_disco#Particiones_extendidas_y_l .C3.B3gicas
http://es.wikipedia.org/wiki/Tabla_de_partici%C3%B3n_GUID

karlggest
06-abr-2011, 12:40
- ¿Dónde guardo esto?
- Por favor, ¡no me interrumpa con vanalidades!

Los volúmenes surgen para superar muchas limitaciones de las particiones de disco. Una de ellas es añadir una capa de abstracción. Esto es muy similar al funcionamiento de la jerarquía del sistema de ficheros de Unix.

Recordemos: en un sistema Unix tenemos una raíz de la que depende todo, de forma organizada: así, tenemos /media, que es el lugar donde se montan los dispositivos "media": pendrives, CD/DVD, etc.; /home puede estar en otra partición, o incluso en otro equipo,... lo que el usuario ve es un todo homogéneo, donde la información está organizada siguiendo unos criterios dados, mientras que en realidad el sistema es bastante heterogéneo como vemos.

En un sistema de volúmenes, uno indica qué dispositivos (particiones de discos) forman parte del volumen físico. A continuación, se divide el volumen en partes (volúmenes lógicos), pero es el gestor de volúmenes el que reparte los volúmenes lógicos por el volumen físico.

Una consecuencia interesante es que es muy sencillo adaptar los volúmenes lógicos: redimensionarlos, eliminarlos, añadirlos, acciones que incluso no necesitan interrumpir el sistema para nada (salvo reducir la partición), ni siquiera desmontarla.

Otro uso, más curioso e ilustrativo, es el de instantáneas. El gestor de volúmenes es capaz de definir un volumen lógico que vaya a ser una instantánea de otro en un instante justo dado. Así, uno puede copiar dicho volumen sin preocuparse de que el sistema en uso esté guardando cambios en dicho volumen: el sistema usará la instantánea para guardar temporalmente estos cambios y los reintegrará al volumen original cuando acabemos. Así, garantizamos la integridad de nuestra copia, sin que los usuarios del volumen se percaten siquiera.

volumen físico: un volumen físico es la correspondencia entre las particiones que forman el volumen y el volumen en sí. Se definen qué particiones de disco o qué discos forman parte del volumen.
grupo de volúmenes: son agrupaciones de uno o más volúmenes físicos.
volumen lógico: cada unidad del volumen que va a ser usada de forma diferenciada.

Los volúmenes hacen uso de su propia nomenclatura para manejar la información. Así en lugar de sectores y demás, trata de Extents. Los Extents físicos son pequeñas porciones de datos almacenados en un volumen físico. Los Extents lógicos son los datos que se mapearán a los extents físicos. Lo habitual es que un extent lógico sea mapeado a uno físico, pero algunas opciones -por ejemplo, mirroring- permiten mapearlos a varios extents físicos -en el caso del mirroring, cada extent lógico es mapeado a dos extents físicos.

Alguien que encuentre molesto aprender algún concepto sobre las particiones de disco -los volúmenes se construyen normalmente sobre particiones de disco- encontrará molesto afrontar volúmenes(1). Es lógico. Tienen muchas ventajas, pero para un usuario doméstico tales ventajas... bueno, no son tantas ;)(2)

(1) El Mal, al menos Windows 7 por lo que he visto, habla de "volúmenes", no de particiones, en su gestor de discos.
(2) La principal es la reducción del tiempo medio de acceso: supuestamente, menor tamaño de partición implica que el área donde debemos posicionarnos para alcanzar un archivo, por ejemplo, será menor; siendo el área menor, podemos pensar que las búsquedas tenderán a ser más rápidas. Es buena idea repasar la geometría física de los discos duros (p. ej., como es habitual: http://es.wikipedia.org/wiki/Disco_duro)

karlggest
06-abr-2011, 14:13
En su virtud, esconde El Mal en su interior

GNU/Linux puede utilizar particiones NTFS, tanto solo-lectura como en lectura/escritura. Lo cierto es que no permite manejar algunas características de NTFS como su sistema de ACL, pero rara vez esto será molesto para un usuario doméstico...

... pero sí lleva a hacer una consideración. No es buena idea tener Windows en una sola partición: los datos a compartir con otros sistemas (además de para protegerse en desastres) deben de estar aparte. Compartir los archivos del sistema, salvo que sea precisamente la idea -hay quien tiene un GNU/Linux para ayudarse en caso de desastre en Windows-.

Desconozco si openSUSE 11.4 monta NTFS-3G en la instalación. Hace algún tiempo se discutía si era buena idea, ya que NTFS es un formato privativo propiedad de Microsoft. Tanto si no lo hace, como si has añadido un dispositivo con tal sistema de archivos posteriormente a la instalación, en la web oficial explican cómo montar una partición NTFS(1).

En caso de haber problemas, deben verificarse varias cosas:

* la propiedad y permisos de la carpeta donde se monta el dispositivo.
* los permisos establecidos en /etc/fstab cuando se monta el dispositivo. Por ejemplo, que entre las opciones no figure ro, o figure rw en su lugar ;)

En el hilo Gestión Simple de Permisos (y II) (http://www.forosuse.org/forosuse/showthread.php?t=15569) puede encontrarse información sobre ambas posibilidades.

Pero hay vida más allá de NTFS. Windows soporta -mediante drivers de terceros- algunos sistemas de archivos nativos de GNU/Linux. En algunas ocasiones puede merecer la pena pensar si es mejor opción (en particular, porque es más fácil montar dispositivos). Por ejemplo, puede proporcionarse soporte solo-lectura para ext4 y lectura-escritura para ext3 o reiserfs(2)

(1) http://en.opensuse.org/SDB:NTFS
(2) http://en.wikipedia.org/wiki/Installable_File_System

karlggest
08-abr-2011, 15:13
Es bastante complicado explicar cómo se hace un buen particionado de disco después de haber aconsejado que cada uno debe de adaptarse a sus propias necesidades, circunstancias e incluso deseos.

Es importante señalar las circunstancias en las que instales. Por ejemplo, en mis equipos no hay ninguna versión de Windows. Cuando instalo alguna distribución, no tengo que preocuparme por ninguna cuestión extraña: busco un hueco en el disco o reciclo el lugar que ocupaba la distribución que reemplace. A lo único que tengo que poner un poco de atención es a la configuración del arranque, cuestión nada trivial cuando instalas varios sistemas operativos(1).

De todas formas, no todo es simple siempre. Si tienes un portátil con el Mal y deseas conservar esa cosa, te encontrarás que tiene ya tres volúmenes con total seguridad: una partición de arranque, otra con el sistema en sí y otra destinada a funcionar como una suerte de mecanismo de recuperación -que puede grabarse en varios DVD(2). El problema viene cuando algunos fabricantes destinan otra partición a los drivers del computador. En tal caso, no queda otra que cargarse alguna de las particiones de Windows.

Sea como fuere, mi consejo es que si tienes el Mal y deseas conservar esa cosa en tu computador, trata de utilizar sus herramientas de gestión de discos para modificar la tabla de particiones. Y no olvides defragmentar y chequear después de redimensionar antes de instalar tu GNU/Linux!!!

Con tales consideraciones sobre el caso concreto del Mal, instalar una distribución GNU/Linux es indiferente a la existencia o no de otras distribuciones o sistemas operativos: las particiones, como es de esperar, permitirán que las cosas no se mezclen y puedan ser usadas de forma independiente.

En las siguientes subsecciones, antes de comenzar con el ejemplo describiremos brevemente las posibilidades que podemos encontrarnos: un disco con otras particiones(3), un disco duro vacío

(1) Por supuesto, en este documento la idea sólo es mostrar cómo particionar el disco, así que no trataré esta cuestión, con o sin El Mal.
(2) Es curioso que a algunas de estas particiones las suelan llamar "ocultas", cuando simplemente no están montadas. De hecho, para acceder a ellas sólo tienes que asignarles una letra al estilo Windows en la herramienta de gestión de discos. Por contra, un gestor de arranque como grub sí puede ocultar particiones a un sistema dado.
(3) Pero no el sistema Windows, de lo que ya hemos hablado.

karlggest
08-abr-2011, 15:28
Lo más habitual es que el disco duro de un computador esté en uso por completo, ya sea con el Mal u otra distribución GNU/Linux(1). Ya he escrito que en el caso del Mal debería tratarse de usar sus herramientas para redimensionar la partición que ocupe el disco y hacer sitio libre.

¿Y si tenemos otra distribución de GNU/Linux?

Lo habitual es que si tenemos un GNU/Linux nuestro disco duro esté particionado en partición raíz, swap y /home. La otra posibilidad, más excepcional, es que nuestro disco sólo conste de partición raíz y de swap.

En el primer caso, podemos redimensionar tanto la partición raíz o la de home (lo normal es que la mayor parte del disco esté asignada a /home). Luego vale con montar la partición home y simplemente asegurarse de que el nombre del usuario es distinto.

En el segundo caso, redimensionaremos la raíz y consideraremos si usar el mismo esquema o utilizar otro distinto: por ejemplo, raíz, swap y home, con lo que tendremos que crear esas dos particiones -la swap es la misma-. Un motivo para que /home no esté separado puede ser que usemos LDAP para autentificar a los usuarios... bien, no es habitual esto en un usuario doméstico ;)

En lo que he dicho, se destaca la posibilidad e idoneidad de "reutilizar" lo que ya hay: /home, simplemente usando nombres de usuario distintos, y swap. Éste es uno de esos momentos para hacer las cosas despacio y con un poco de cuidado.

Un detalle a tener en cuenta es que se puede configurar el sistema para que use un directorio distinto al predefinido para el usuario; sin embargo, son pocos los instaladores que ofrecen ese nivel de detalle al configurar el usuario durante la instalación. Es posible que queramos entonces crear un usuario distinto y luego, con el sistema ya en marcha, crear un usuario con el mismo nombre que en los demás sistemas, pero con una carpeta distinta para cada sistema.

Los objetivos serán:

* Facilitar el compartir archivos entre sistemas.
* Mantener en carpetas separadas para cada sistema la configuración de aplicaciones que pueden tener distinta versión y hacer uso de opciones incompatibles o excluyentes.

Puede pensarse, y con razón, que es interesante mantener la misma configuración entre escritorios de los sistemas GNU/Linux que tengamos... sin embargo, esto puede acarrear problemas de compatibilidad, en particular para los usuarios que actualizan su sistema con cierta frecuencia. Por ello, debe de considerarse como alternativa más segura la copia manual de los archivos de configuración involucrados cuando ya han sido probados, por ejemplo con un usuario auxiliar. Pueden usarse herramientas de sincronización entre carpetas para facilitar esta tarea.

(1) Sí, los usuarios de GNU/Linux tienden a ser muy promiscuos...

karlggest
08-abr-2011, 16:04
Si no tenemos el disco particionado, la única consideración importante es si queremos utilizar todo el disco para nuestra distribución GNU/Linux o si queremos dejar ya sitio para otra distribución o sistema operativo.

Si pensamos instalar el Mal o una versión de Unix, deberíamos cerciorarnos de que dejamos particiones primarias suficientes. Esto lo explicaré en la siguiente sección. En el caso del Mal, puede ser una buena idea instalarlo antes que nuestro GNU/Linux: el Mal puede coexistir con otros Sistemas Operativos, pero su instalación estándar no da facilidades.

Si creemos que no vamos a instalar otros sistemas operativos, podemos aprovechar la propuesta que la mayoría de instaladores de GNU/Linux nos harán. La cuestión de cómo saber cuál es el espacio adecuado ya la hemos tratado en las primeras secciones.

Por otro lado, puede que tengamos el sistema particionado pero que queramos reemplazar. "Reciclar" particiones extendidas puede hacer que dediquemos menos tiempo del requerido a reflexionar sobre la convenciencia de reutilizar esa partición. Lo mismo puede decirse de las particiones primarias.

Con esto, quiero decir que reutilizar el particionado que ya tenemos puede ahorrarnos unos segundos e incluso simplificarnos la tarea de decidir qué esquema usar. Es muy tentador. Y en muchos casos, acertado.

Sin embargo, muchas veces el instalador tratará de hacer suposiciones en función de qué particiones existan. Por ejemplo, verá una partición NTFS y supondrá que ahí hay un sistema Windows (y posiblemente, incluya en el gestor de arranque una entrada para arrancarlo). Es decir, el instalador conoce menos tu sistema que tú mismo, y usará parecidas suposiciones a las que tú hagas.

Con frecuencia, lo más sencillo que se puede hacer es indicar opciones como "usar todo el disco", o crear directamente una nueva tabla de particiones. En todo caso, no dar nada por supuesto.

karlggest
08-abr-2011, 16:16
En la sección 3.1 hemos descrito someramente qué son las particiones extendidas, las lógicas o las primarias. Recordemos: una tabla de particiones "tipo MS-DOS" admite un máximo de 4 particiones primarias o bien 3 particiones primarias y una extendida; dentro de esta extendida, podemos crear varias(1) particiones lógicas.


El Mal estará en una o dos particiones primarias. De hecho, tradicionalmente necesita estar instalado en una partición primaria para arrancar. Esto sólo se aplica a la partición de sistema, no a cualquier partición que añadamos para guardar otros datos.
Unix utiliza también una partición primaria, dentro de la cual crea slides. Esto es similar al uso de particiones extendidas y lógicas, pero Unix sólo puede hacer esto con particiones primarias.
Si por ejemplo El Mal ocupa dos particiones primarias y necesitamos 3 para el esquema básico (raíz, swap y home), no llegarán.

Lo más habitual es instalar GNU/Linux bajo una partición extendida, aún si sólo usamos 3 particiones para nuestro sistema, simplemente porque puede hacerse ;) Aquí tenemos otras dos consideraciones:


Hay quien instala la raíz en una primaria de todas formas, por el hábito de hacer instalaciones con BIOS que imponen restricciones. Así, una propuesta de instalación puede ser algo así, independientemente del espacio asignado a cada partición:

partición primaria para raíz
partición extendida con dos particiones lógicas: swap y home


Es mala idea afrontar modificar una partición extendida. Así que, si es posible que vayas a necesitar cambiar la distribución del espacio en el disco, lo mejor es no particionar totalmente el disco duro.

karlggest
13-abr-2011, 15:31
En este computador tengo una tabla de partición GPT, con lo cual la instalación de un sistema es relativamente simple: mientras haya espacio, basta añadir una partición sin preocuparse de su tipo; si no lo hay, hay que redimensionar una partición y crear las nuevas particiones en el lugar. Naturalmente, pude obtar por crear un nuevo esquema de particionado.

En la tabla de particiones, al comenzar, tengo 4 particiones (recuerda, en GPT no hay primarias o extendidas).

/dev/sda1 y /dev/sda2 forman parte de la instalación de openSUSE 11.4. En la primera tengo /boot y la segunda es un volumen que constituye el sistema en sí.
/dev/sda3 y /dev/sda4 conforman SLED 11, de forma análoga al particionado de openSUSE 11.4

En primer lugar, openSUSE nos ofrece una opción de particionado (nótese que tengo la mayor parte del disco sin particionar)http://s3.subirimagenes.com:81/imagen/previo/thump_6251248yast2000.png (http://www.subirimagenes.com/imagen-yast2000-6251248.html)
Por supuesto, esta es una buena opción en caso de duda. Nótese que en este caso para swap destina 2GB (tengo 4 de RAM) y para el sistema destina 20 GB. De todas formas, ilustraré alguna variante.

Es posible indicarle al particinador del instalador que use un disco duro determinado -en caso de que haya varios- o de efectuar un particionado personalizado. En el primer caso, podremos indicar qué particiones existentes queremos destinar al sistema -incluyendo o no el espacio libre- o bien que se utilice todo el disco.
http://s2.subirimagenes.com/imagen/previo/thump_6251317yast2001.png (http://www.subirimagenes.com/imagen-yast2001-6251317.html)
En este caso, voy a indicar que la instalación se realice en la partición /dev/sda4 (total: 14 GiB).
http://s3.subirimagenes.com:81/imagen/previo/thump_6251323yast2002.png (http://www.subirimagenes.com/imagen-yast2002-6251323.html)
Fijémonos en que hay una opción para que el particionador haga la propuesta separando /home.
http://s3.subirimagenes.com:81/imagen/previo/thump_6251335yast2003.png (http://www.subirimagenes.com/imagen-yast2003-6251335.html)
Vale la pena fijarse en las opciones que se proponen ahora.

Naturalmente, se elimina la partición /dev/sda4, ya que el sistema ha de proporcionar al menos dos particiones, al haberse seleccionado que hubiese /home en partición independiente.
El ajuste de espacio en cada partición afecta también al espacio de intercambio, que pasa de 2GB en la propuesta anterior a los 1,89GB
El espacio total para la raíz es de 5,78 GB.

karlggest
13-abr-2011, 15:47
Vale la pena concluir con una imagen de cómo quedaría un disco añadiendo las particiones de forma manual.
http://s2.subirimagenes.com/imagen/previo/thump_6251359yast2005.png (http://www.subirimagenes.com/imagen-yast2005-6251359.html)
En este caso, simplemente creo tres particiones: 8 GB para la raíz, 2 GB para swap y otros 2 para /home.

karlggest
13-abr-2011, 15:54
Voy a usar una máquina virtual para ilustrar tanto la sección de volúmenes como el caso que sigue: una instalación en disco duro vacío haciendo uso de una partición extendida. En el ejemplo, usaré un disco duro de 8 GB.

El instalador, al encontrarse con un disco vacío, realiza una primera sugerencia. Esta podría ser perfectamente válida.
http://s3.subirimagenes.com:81/imagen/previo/thump_6255939captura2.png (http://www.subirimagenes.com/imagen-captura2-6255939.html)
En este ejemplo, preferimos crear un esquema personalizado desde cero. Para ello, pulsamos en "Crear configuración de particionado" y seleccionamos "particionado personalizado". Cuando YAST lanza el particionador, seleccionamos nuestro disco duro en la sección "Discos Duros" de la izquierda.
http://s2.subirimagenes.com/imagen/previo/thump_6255955captura3.png (http://www.subirimagenes.com/imagen-captura3-6255955.html)
Ahora creamos una partición primaria de 5 GB y otra extendida de 2,8 GB. Esto sólo para enfatizar la necesidad de considerar si se necesitará crear otra partición primaria, que es uno de los motivos que pueden llevarnos precisamente a crear una partición extendida. Recordad: la partición extendida no puede ser modificada, como he dicho antes. La primaria se destina a montar la raíz, mientras que la extendida contendrá dos particiones lógicas: una de 2GB para swap y otra con el espacio restante para /home.
http://s3.subirimagenes.com:81/imagen/previo/thump_6255963captura5.png (http://www.subirimagenes.com/imagen-captura5-6255963.html)

karlggest
13-abr-2011, 16:14
Las ventajas son obvias y ya se señalaron antes. En particular, usando una tabla de particiones GPT el proceso se simplifica bastante: en una partición MS-DOS, la partición extendida no puede modificarse(1), así que debe de planificarse la necesidad de particiones primarias antes de agotar el espacio para ellas.

Los inconvenientes pueden ser notables en caso de querer hacer cambios en la distribución del espacio.

No puede hacerse en caliente, lo que en la práctica supondrá usar un disco de arranque.
No puede cambiarse el principio de la partición

Este segundo punto es más sutil y podemos ilustrarlo:
http://s2.subirimagenes.com/imagen/previo/thump_6251495esqupartic.png (http://www.subirimagenes.com/imagen-esqupartic-6251495.html)
En la imagen (tosca, lo reconozco ;) puede verse una representación de un esquema simple: partición del Mal, raíz, swap y /home. Si queremos añadir espacio a la raíz nos encontramos que sólo podemos cambiar el tamaño por el final. Por ejemplo, si redimensionamos la primera partición, seguiremos sin poder mover el principio de la partición raíz.

Todo esto, por supuesto, puede solventarse moviendo la raíz a una nueva partición, por ejemplo, pero esto es un proceso que implica un disco de arranque y no es nada trivial.




(1) al menos no de forma trivial y segura.

karlggest
15-abr-2011, 13:10
Hay una pequeña trampa en el uso de volúmenes: siempre es necesario tener al menos una partición en la cual crear el volumen. Y además, Grub no arranca desde un volumen lógico, así que deberá haber al menos otra partición en la que esté el arranque.


Podemos crear una partición para la raíz y otra para contener un volumen que será el resto del sistema (en nuestro ejemplo sencillo, /home y swap).
Podemos crear una partición sólo para el arranque (/boot) y otra para el resto del sistema (incluída la raíz). Una vez cargado el núcleo, el sistema puede montar /boot en la raíz sin problemas.
Ya puestos, alguien podría pensar que es buena idea crear una partición para swap ante la contingencia de compartirla con otro sistema. En según qué casos, puede ser buena idea -por ejemplo, con volúmenes cifrados; en otros, no necesariamente (por ejemplo, si únicamente tienes GNU/Linux y alguna de las encarnaciones del Mal).

En este ejemplo, voy a usar una partición primaria para /boot y otra para contener el volumen, donde irá la raíz /, swap (intercambio) y /home (usuarios). Es muy sencillo: en lugar de "propuesta basada en particiones" seleccionamos "propuesta basada en volúmenes"...(1), seleccionar el disco actual y marcar "basada en volúmenes" y "propener /home separado". En el caso de que hubiese particiones en el disco, sería similar al que hemos mostrado para el uso de particiones en la sección 3.4.4.
http://s2.subirimagenes.com/imagen/previo/thump_6260328captura6.png (http://www.subirimagenes.com/imagen-captura6-6260328.html)
A los detalles! Fijémonos en el tamaño de /boot: 157 MB!!! Eso es el tamaño calculado para contener el núcleo, el sistema de arranque y a Grub... pero podría variar si, por ejemplo, queremos tener otro núcleo; o varios...

Un ejemplo de segundo núcleo es Xen; otro ejemplo, es el de "tiempo real" (rt). O alguno que descarguemos nosotros si queremos compilarlo de forma manual... Si puede necesitarse algún núcleo extra como estos, mejor dejar más espacio para /boot. En esta openSUSE tengo una partición /boot de 512 MB, mientras que en la SLES que tengo de escritorio la partición no llegua a los 100 MB.

Como descargar un núcleo "a mayores" es un acto consciente, la preocupación no es tanta como al fijar el espacio para la raíz. Así que lo más probable es que un particionado como el propuesto sea suficiente. Si aún persistiesen las dudas, basta con poner 512 MB, por ejemplo.

(1) En este caso, al estar el disco duro vacío, la propuesta será la misma que si hubiésemos seleccionado la opción de "crear configuración de particionado"

karlggest
15-abr-2011, 15:25
Si hacemos algo como el ejemplo anterior, estaremos ocupando 2 de las 4 particiones primarias que puede contener la tabla de partición tipo MS-DOS. Por ejemplo, en el caso de la encarnación 7 del Mal, habremos ocupado ya las cuatro particiones.

Una buena idea es usar una partición extendida para sortear este límite, en la que creamos una partición lógica que al final será la que contenga el volumen lógico. Puede que argüirse que si voy a crear una partición extendida para el sistema, bien podría crear /boot también como partición lógica, dejando libres 3 particiones primarias. Y sería cierto. El hábito de crear una partición /boot en el principio del disco está ya en desuso, ya que rara es ya la BIOS que no arranque en particiones de casi cualquier tamaño.

En el ejemplo uso un disco de 8 GB. Esto puede hacer que sea menos visible la ventaja de usar una partición extendida. Con discos duros grandes, y más si hay otros sistemas operativos, es cuando de verdad se aprecia la ventaja de este esquema.

El proceso de particionado es sencillo, pero un tanto tedioso.

Creamos las particiones que albergarán el sistema, en este caso una primaria, una extendida y una lógica dentro de esta partición extendida. Marcamos esta partición como "volumen".
Creamos el volumen físico, dándole un nombre e indicando que particiones forma parte de él.
Creamos los volúmenes lógicos que corresponderán a los sistemas de ficheros montados en el volumen. En nuestro caso, / (raíz), swap (intercambio) y /home (usuarios).

http://s2.subirimagenes.com/imagen/previo/thump_6260614captura10.png (http://www.subirimagenes.com/imagen-captura10-6260614.html)Ya que el disco está vacío, seleccionamos el disco duro donde vamos a instalar el sistema y creamos las particiones que hemos dicho: /dev/sda1 para /boot, /dev/sda2 como extendida y /dev/sda5 como lógica. Si hacemos que la partición extendida tenga el tamaño disponible en el disco, no dejaremos sitio para ninguna partición primaria más, con lo que uno de los motivos que hacían interesante el uso de una partición extendida -por ejemplo, una instalación de una encarnación del Mal, o tal vez un Free-BSD- dejará de tener sentido.

Las dos siguientes imágenes corresponden a la creación de la partición /boot:
http://s2.subirimagenes.com/imagen/previo/thump_6260623captura11.png (http://www.subirimagenes.com/imagen-captura11-6260623.html)
http://s3.subirimagenes.com:81/imagen/previo/thump_6260625captura12.png (http://www.subirimagenes.com/imagen-captura12-6260625.html)

karlggest
15-abr-2011, 15:37
Una vez hemos creado la partición para /boot, sólo falta crear la partición que contendrá el volumen. Nótese que creo una partición extendida de 7.6 GB para dejar sin particionar un espacio testimonial (ya que en este caso apenas quedarían 200 MB). Alternativamente, podríamos crear la partición más hacia el final del disco duro, y podemos hacerlo de dos formas: a) creando una partición del espacio que queremos dejar sin particionar, que después podemos eliminar, y b) calculando en qué cilindro debería empezar la partición extendida. En el ejemplo, no hacemos nada de eso, simplemente creamos una partición extendia de 7,6 GB:
http://s2.subirimagenes.com/imagen/previo/thump_6260632captura13.png (http://www.subirimagenes.com/imagen-captura13-6260632.html)
En la siguiente imagen, vemos las particiones creadas, y las últimas dos columnas nos indican la ubicación física -que sería relevante para lo dicho para el caso b del párrafo anterior.
http://s3.subirimagenes.com:81/imagen/previo/thump_6260633captura14.png (http://www.subirimagenes.com/imagen-captura14-6260633.html)
Ahora hay que crear la partición lógica que contendrá el volumen. No podemos olvidarnos de "marcarla" como de "tipo volumen", como se ve en la siguiente imagen:
http://s3.subirimagenes.com:81/imagen/previo/thump_6260635captura14b.png (http://www.subirimagenes.com/imagen-captura14b-6260635.html)
Ahora vemos las particiones que componen nuestro disco duro. Nótese que la partición lógica tiene un tamaño ligeramente menor que la extendida, y que está marcada como "de volumen" (Linux LVM).
http://s2.subirimagenes.com/imagen/previo/thump_6260637captura14c.png (http://www.subirimagenes.com/imagen-captura14c-6260637.html)

karlggest
15-abr-2011, 15:55
Toda vez que ya tenemos las particiones que van a sustentar el sistema, sólo falta crear los volúmenes que lo compondrán en última instancia. Seleccionamos a la izquierda "Gestión de Volúmenes" (Volumen Management).
http://s3.subirimagenes.com:81/imagen/previo/thump_6260675captura15.png (http://www.subirimagenes.com/imagen-captura15-6260675.html)
Basta pulsar en "Añadir" (add) para comenzar la creación del volumen físico.
http://s3.subirimagenes.com:81/imagen/previo/thump_6260680captura16.png (http://www.subirimagenes.com/imagen-captura16-6260680.html)
A la izquierda se presentan las particiones marcadas como de tipo "volumen", siendo en nuestro caso únicamente /dev/sda5. Para crear cada volumen físico -podría haber varios en el mismo sistema- simplemente le das un nombre y añades las particiones que lo conforman.
http://s3.subirimagenes.com:81/imagen/previo/thump_6260688captura17.png (http://www.subirimagenes.com/imagen-captura17-6260688.html)
He usado el poco imaginativo nombre de "Monesvol" para el volumen, que es sólo un poco menos imaginativo que el de "system" que proponía el sistema cuando lo pedíamos automáticamente. El nombre que uso en el volumen de este computador es menos imaginativo aún: openSUSE.

karlggest
15-abr-2011, 16:04
El siguiente y último paso es crear al fin los volúmenes lógicos que corresponderán a los sistemas de ficheros que queremos montar.

Como vemos en la siguiente imagen, donde antes teníamos únicamente la opción de añadir un volumen físico, ahora hay además otra para añadir un volumen lógico.
http://s2.subirimagenes.com/imagen/previo/thump_6260699captura18.png (http://www.subirimagenes.com/imagen-captura18-6260699.html)
El proceso de creación de los volúmenes lógicos no difiere de la creación de la partición /boot, salvo que no hay que elegir el tipo (primaria, extendida o lógica) sinó en su lugar deberemos darle un nombre. Tal nombre es como se referirá el sistema al volumen lógico correspondiete, así que vale la pena que sean un poco descriptivo. Los que creo en este ejemplo son:

raíz, en el que selecciono montar /
intercambio, que será la swap
usuarios, que será donde se monte /home

http://s3.subirimagenes.com:81/imagen/previo/thump_6260719captura19.png (http://www.subirimagenes.com/imagen-captura19-6260719.html)
Una vez finalizado el proceso, podemos comprobar la diferencia entre la nueva "propuesta" y la anterior:
http://s3.subirimagenes.com:81/imagen/previo/thump_6260723captura20.png (http://www.subirimagenes.com/imagen-captura20-6260723.html)
Una vez que se acepte la nueva propuesta, se crearán las particiones y volúmenes necesarios y comenzará la instalación.

En la sección 5 ilustraré un caso un poco más completo.

karlggest
15-abr-2011, 16:15
El inconveniente más notorio es que si necesitamos algo bastande detallado, como se ve, es un poco lioso. Y mientras una partición forme parte de un volumen, a efectos prácticos estará en uso. Esto implica, principalmente, que no se podrá modificar.

Las ventajas son muchas. Supongamos el ejemplo de la sección 3.4.5. En el espacio libre podemos crear otra partición (p.ej. /dev/sda7), la cual podemos añadirla al volumen físico.

O podemos añadir un segundo disco al computador. Creamos una partición en todo el disco de tipo "volumen", la añadimos al volumen físico y ya está.

En los dos ejemplos habremos ampliado el espacio disponible en el volumen, el cual podremos repartir de forma transparente entre los sistemas de ficheros que queramos: podemos hacer crecer raíz, swap o usuarios, incluso los tres, y sin parar siquiera el sistema!

Como nada es perfecto, para reducir el tamaño de un volumen lógico sí que deberemos pararlo. En cuanto a los volúmenes físicos, es fácil sólo en el caso de que se componga de varias particiones. A cambio, pueden añadirse particiones y dispositivos para que sea fácil redistribuirlo.

karlggest
11-may-2011, 15:37
No es mi objeto hacer una descripción exhaustiva aquí, sinó simplemente mencionar la posibilidad y hacer una breve descripción del proceso.

GNU/Linux hace uso de LUKS (Linux Unified Key Setup), que es un formato estándar. En la wikipedia, en la web de openSUSE y otros lugares podéis encontrar mucha información sobre LUKS.

Si os habéis fijado en las imágenes del proceso de particionado mostrado anteriormente, una opción es "partición cifrada". Marcar eso hace que el particionador automáticamente cree la configuración adecuada para cifrar dicha partición.

En lo que sigue, documentaré someramente cómo cifrar una partición de forma manual, para ilustrar el procedimiento. Lo cierto es que YAST, ya en la instalación o posteriormente con la herramienta de particionado, permite hacer esto gráficamente de forma muy simple. Supondremos que queremos cifrar la partición /dev/sda9.

1. Crear la partición a cifrar si no existe. Recuérdese que ha de estar vacía o al menos que no contiene nada que no queramos borrar: la información que contenga se perderá.
2. Darle el formato de cifrado adecuado, en nuestro caso, luks.
crytsetup luksFormat /dev/sda9Aquí pedirá la clave para cifrar el dispositivo.
3. Abrir el dispositivo cifrado, o por decirlo de otra forma, asociar la partición cifrada con el dispositivo (des)cifrado que se va a usar. Para ello se proporcionará la clave con la que se cifró el dispositivo, y en /dev/mapper tendremos el dispositivo que usará el sistema
cryptsetup luksOpen /dev/sda9 seguroAhora tenemos el dispositivo /dev/mapper/seguro, que será el que montemos para usar en nuestro sistema.
4. Darle el formato adecuado. Por ejemplo
mkfs.ext4 /dev/mapper/seguro5. Montar la partición. El dispositivo se usará de forma análoga a cualquier otra partición, teniendo en cuenta que el dispositivo que estamos usando es /dev/mapper/seguro (y no /dev/sda9, que en realidad sigue siendo una partición cifrada y, por ende, inaccesible). De forma similar, puede añadirse la entrada correspondiente en /etc/fstab. Nótese que los dispositivos extraíbles son tratados por el sistema(1)
mount /dev/mapper/seguro /segredos6. Desmontar y cerrar el dispositivo una vez que no se use.
umount /segredos
cryptsetup luksClose seguro
(1) Al parecer, la regla que monta pendrives y similares sólo es correcta para dispositivos con formato vfat. En los demás casos, la carpeta en /media que se crea es propiedad de root, por lo que el usuario carece de permiso de escritura. Esto se arregla cambiando el propietario de dicha carpeta para que sea propiedad del usuario (naturalmente, con el dispositivo montado).

karlggest
19-may-2011, 20:51
El proceso a seguir está descrito en la web oficial de openSUSE.

Seguiremos las siguienes consideraciones:


grub no es capaz de arrancar una partición cifrada (se supone que grub2 sí puede hacerlo), así que debemos tener el arranque en una partición separada. Para mayor seguridad en entornos muy comprometidos /boot podría instalarse en un dispositivo externo (por ejemplo, un pendrive).
El sistema pedirá la clave al arrancar.
Usaremos un esquema simple, con una sola partición encriptada. Tengo que probar a usar un volumen de dos particiones para comprobar si al arranque el sistema puede pedir una sola vez la contraseña, o al menos así lo hace cuando indicas que haga una selección automática con varias particiones existentes. En el peor de los casos, como la raíz está cifrada, podría añadirse un volumen cifrado y simplemente guardar su clave en un archivo (por ejemplo, /root/enc-volumen con permisos de solo lectura para root)

(borrador)

karlggest
19-may-2011, 20:51
En el portátil tengo varios sistemas GNU/Linux instalados, incluyendo una versión de openSUSE. Es mi objetivo reemplazarlos todos por una nueva instalación con la versión 11.4.

Además, como sólo suelo instalar sistemas GNU/Linux, voy a reemplazar el sistema de particionado para solventar el inconveniente de la partición extendida y las 3 primarias. Para ello crearé dos particiones: una de tamaño reducido que albergará el arranque y otra más grande que contendrá al sistema y que será cifrada.

Las capturas las hice cuando llevé a cabo la instalación, y como se ve están en gallego. Creo que con los comentarios se entiende sobradamente.

(borrador)

karlggest
19-may-2011, 20:53
Llegados al momento de particionar el disco, el sistema nos hace una propuesta. En el caso de mi computador, es la que sigue:
http://i52.tinypic.com/2ajozdl.png

En este punto seleccionamos "crear una configuración", ya que la propuesta no se ajusta en nada a lo que deseo. El instalador nos ofrecerá la posibilidad de instalarse en un disco dado (en las particiones existentes que indiquemos o en el espacio libre que haya disponible) o bien que hagamos una selección personalizada.

http://i54.tinypic.com/jql1l3.png

Como he dicho, voy a reemplazar todas las particiones existentes, así que escojo "particionamiento personalizado". Creo que el "para expertos" asusta más que provoca que la gente se fije en lo que hace. Hay que ir con calma y releer lo que se va a hacer. YAST siempre informará de cambios que puedan provocar pérdida de datos antes de que se realicen. Aquí podemos ver todo el tinglado que tenía en mis discos:

http://i53.tinypic.com/20zv6ue.png

La anterior es una visión general del contenido de mis discos (como veis, tengo dos: uno SATA y otro externo USB). Seleccionamos el disco donde vamos a instalar el sistema:

http://i55.tinypic.com/2cem990.png

Ahora sólo se muestra el particionado de los discos. Podríamos modificar o eliminar las particiones existentes, pero como ya he dicho estoy decidido a usar el sistema de particiones GPT.

karlggest
19-may-2011, 21:00
Pulsamos el botón "Experto" y seleccionamos "Crear nueva tabla de particiones", lo que nos mostrará el siguiente cuadro de diálogo:

http://i53.tinypic.com/20ze92u.png
Seleccionamos GPT y aceptamos. Nos avisará de que esto eliminará todo lo que haya en el disco. Es justo lo que quiero. Lo releemos y nos fijamos en que menciona el disco /dev/sda, que es el disco sobre el que quiero trabajar.
http://i52.tinypic.com/k33ok5.png
Lo que nos da un disco /dev/sda completamente vacío. Si quisiésemos utilizar el sistema de particiones "tradicional" y eliminar todas las particiones, podríamos haber creado una nueva tabla de particiones de todas formas, indicándole en ese caso que usase el sistema MS-DOS. Bueno, como dicen por ahí... "pa' lante!"

http://i53.tinypic.com/5y7x2e.png

karlggest
19-may-2011, 21:06
Recordemos que necesito dos particiones para albergar todo el sistema. Una pequeña para el arranque y otra para el sistema en sí (que contendrá un grupo de volumen). Comenzamos por crear la partición /boot, que tendrá unos 500 MB. Podría bastar con unos 100 MB, como he dicho anteriormente, pero así me permito descargar más núcleos si lo desease. Como siempre, tenemos seleccionado el disco /dev/sda; ahora pulsamos "Añadir".

http://i56.tinypic.com/10z0it4.png

El siguiente paso para crear la partición /boot es indicar el sistema de ficheros a usar (en este caso, ext4) y el punto de montaje (/boot, naturalmente).

http://i54.tinypic.com/w2olza.png

El siguiente paso es crear una partición para albergar el grupo de volumen. Le destinaré unos 150 GB. Así que, de nuevo, "Añadir":

http://i53.tinypic.com/bezihj.png

Lo siguiente es lo importante. En lugar de formatearla y montarla en algún lugar, seleccionamos "No formatear la partición", y seleccionamos, justo debajo, que el identificador del sistema de ficheros(1) sea 0x8E, que es el correspondiente al sistema de archivos de la partición que alberga un grupo de volumen de Linux.

Y justo debajo seleccionamos "cifrar la partición". Obsérvese que está seleccionado "No montar la partición".

http://i53.tinypic.com/x5uvb7.png

En este punto nos pedirá la clave que usará para cifrar esta partición y que será la misma que nos pida cuando arranque el sistema.

(1) Naturalmente, asumo que eso es una errata en la traducción: debería ser simplemente "tipo de partición". Cada tipo de partición se marca con un identificador propio: por ejemplo, "linux native" o "Windows NTFS".

karlggest
19-may-2011, 21:10
Ahora que tenemos las dos particiones, comprobamos que /boot se va a montar en /dev/sda1, que es una partición que se formateará como ext4 y de tipo "linux native"; por otra parte, /dev/sda2 es una partición de tipo "Linux LVM" y que va a ser encriptada.

http://i54.tinypic.com/jv25qe.png

Dejamos la sección "discos duros" y vamos a la sección "Gestión de Volúmenes". Pulsamos en "Nuevo" y creamos el volumen en la partición que acabamos de crear: /dev/sda2. Nótese que tengo otra partición en el otro disco que contiene un volumen (mejor dicho, un pendrive enchufado que es donde guardo las imágenes), pero que no nos interesa en este caso. En la imagen he marcado dónde se indica el nombre del grupo de volumen y la partición que hemos añadido para dicho volumen. El nombre "openSUSE" me parece lo suficentemente descriptivo para mi sistema.

(borrador)
http://i53.tinypic.com/dnmuqc.png

Comprobamos y finalizamos. El siguiente paso es crear los volúmenes lógicos que usaremos en nuestro sistema.

karlggest
19-may-2011, 21:17
Voy a crear varios volúmenes lógicos, aunque en rigor sólo necesitaríamos dos o tres. En este caso, aunque no lo necesito, crearé volúmenes lógicos para la raíz, para /usr, /opt, /var, /tmp y /home. Podría crear los que necesitase (por ejemplo, /var/spool/mail o /usr/local). Comienzo creando la raíz.

Crear volúmenes lógicos es siempre igual: le damos el nombre del volumen, el tamaño, el tipo y el punto de montaje. Podemos darle nombres descriptivos, ya que estamos: por ejemplo / va a ser "raíz".

http://i55.tinypic.com/dypx1t.png

Montar /tmp aparte me permite darle un tamaño reducido a esta partición. En este caso, estimo suficiente con 1GB.

http://i55.tinypic.com/14t4yzk.png

Para seleccionar el tipo de sistema de archivos uso un método nada científico: con muchos archivos pequeños, reiserfs; con muchos archivos muy grandes, xfs. Para la raíz, por tanto, escojo reiserfs.

http://i56.tinypic.com/11jwvwg.png

Y por supuesto, no olvidamos indicar el punto de montaje, en este caso la raíz /.

karlggest
19-may-2011, 21:20
"apps" es el nombre que le doy al volumen que corresponde a /usr; en otros sistemas he usado nombres como "aplicaciones". Aunque la instalación completa no excede de los 5 o 6 GiB, tengo pensado meterle un buen montón de cosas. Estimo que al final andaré entre 12 y 15 GiB. ¡qué demonios! tengo bastante sitio, así que le daré 35 GB. Una de las ventajas de usar volúmenes es que es relativamente sencillo modificarlos.

http://i56.tinypic.com/wcmjo0.png

Bien, mi criterio para el tipo de sistema de ficheros se completa con "lo demás, ext4".

http://i56.tinypic.com/28i536o.png

"opt" es el nombre para el volumen lógico correspondiente al sistema de ficheros /opt. Aquí la duda respecto al espacio es similar a la de /usr -además, hay unas cuantas aplicaciones que no sé si se instalan, por defecto, aquí o en /usr. De nuevo, opto por la máxima "más vale que sobre" y le asigno unos 10 GB.

http://i52.tinypic.com/34jek2h.png

Añadimos el tamaño antes dicho:

http://i52.tinypic.com/f1aafp.png

karlggest
19-may-2011, 21:24
/opt es un sistema de ficheros similar a /usr, así que es lógico que tenga el mismo tipo de sistema de archivos.
http://i53.tinypic.com/29m2kwn.png

/var guarda datos muy importantes, desde bases de datos y cachés varias hasta el tampón de impresora o de correo. En un sistema doméstico no se justifica que sea muy grande; habida cuenta de que modernamente muchas de las bases de datos y el contenido de los servidores web suelen ubicarse en otros lugares... Yo tengo intención de al menos probar determinados servicios: web, correo, etc. Así que voy a darle ahora bastante espacio. No descarto incluso en el futuro que necesite reducirlo y crear volúmenes separados para /var/spool/mail, por poner un ejemplo; es posible que deba crear también un volumen para /srv, que es el sistema de ficheros que por defecto usa openSUSE para cosas como servicios web o ftp.

http://i53.tinypic.com/2mzbqt0.png

También, por eliminación, opto por ext4 como sistema de archivos.

http://i54.tinypic.com/19mrsl.png

/tmp tiene menos importancia en las últimas versiones de openSUSE. Por ejemplo, los vídeos de youtube que visualizamos en Firefox se cachean en la propia carpeta de firefox del usuario (.mozilla/firefox/cache, por ejemplo).

http://i51.tinypic.com/ossy6v.png

Un posible motivo para tener /tmp en un volumen separado es que /tmp, por definición, no forma parte del sistema raíz. En consecuencia, por ejemplo, tendría sentido tener una copia de todo el sistema raíz como copia de seguridad, pero no tiene sentido copiar /tmp. En lugar de copiar el contenido de los distintos sistemas de ficheros excluyendo los no deseados, simplemente copiamos el contenido tal cual de la raíz en otro dispositivo.

karlggest
19-may-2011, 21:28
El siguiente volumen es el destinado a los datos de los usuarios, tanto sus archivos como sus configuraciones personales: /home. Lo nombro "usuarios" precisamente por esta razón.

http://i56.tinypic.com/rs6af6.png

En /home no necesito una cantidad de espacio espectacular, ya que usaré otros volúmenes para guardar mis archivos. Por ejemplo, en mi disco duro externo tengo un volumen de unos 100 GB para archivos multimedia (vídeos y música). Estimo que en mi /home, al ser el único usuario, puedo tener un par de imágenes de DVD al mismo tiempo y unos cuantos archivos más. 48 GB es más que suficiente.

http://i51.tinypic.com/259iaso.png

Como he dicho, voy a usar otros dispositivos para almacenar mis archivos, así que puedo saltarme mi regla y usar ext4 para esta partición -que al cabo tendrá un montón de pequeños archivos para las diversas configuraciones personales de cada aplicación.

http://i55.tinypic.com/s0zlle.png
(borrador)
http://i52.tinypic.com/4ql6wj.png

¿Falta algo? Sí, falta el volumen para swap!!!

karlggest
19-may-2011, 21:31
Aunque es muy probable que nunca la use, o apenas lo haga, añadiré una swap. En el computador de escritorio el volumen se llama "intercambio", que es igual de descriptivo que "swap" sólo que está en gallego/castellano.

http://i54.tinypic.com/23vxm3m.png

Igual que en el resto de sistemas de ficheros, crear la swap es igual a hacerlo en una partición: seleccionamos "swap" en el tipo de sistema de archivos.

http://i54.tinypic.com/2qmi6pu.png

Nótese que en esta configuración swap estará cifrado!!!

Ahora tenemos todos los volúmenes necesarios.

http://i55.tinypic.com/2vbu42f.png

Nótese también que tenemos aún un amplio espacio dentro del volumen sin asignar. Esto podremos utilizarlo para crear otros sistemas de ficheros bajo demanda, o bien para hacer "instantáneas" cuando hagamos copias de seguridad, etc.

http://i51.tinypic.com/14xf0d3.png

YAST nos presenta la lista de opciones de particionado; esto será listado en la siguiente pantalla junto con otras propuestas de instalación (selección de software a instalar, cargador de arranque, etc.); sólo entonces tendrán lugar los cambios definitivos.

karlggest
16-jun-2011, 13:32
Del Hombre, dícese que nunca tiene suficiente, que cuanto más tiene, más necesita; por eso es la austeridad virtud, y una virtud exigente.

Sea cual sea la estimación que hagamos de nuestras necesidades, en pocos años quedarán obsoletas. Donde antes nos arreglábamos con un disco de pocos GiB y apenas unos MB de memoria RAM, hoy necesitamos TiB y GB, respectivamente. Y es que las personas tenemos una capacidad de predicción adaptada a épocas donde los cambios se propagaban muy despacio, y nos cuesta seguir el cada vez más brutal ritmo de la evolución informática.

Lo usual es quizá sobreestimar las necesidades. Por ejemplo, si consideramos que con 10 GiB cubriremos nuestra necesidad de espacio para software, pues podemos adjudicarle por ejemplo 30 GiB y quedar así a salvo.

El problema de esta estrategia es que estaremos usando un computador sobredimensionado durante un cierto tiempo, ya sean meses o años. De forma similar, puede que para entonces no sean sólo nuestras necesidades de espacio en disco las más acuciantes: puede que necesitemos incrementar la velocidad del computador, puede que queramos un computador más pequeño o con otras prestaciones: en suma, puede que al final, cuando nuestras necesidades realmente hayan crecido, lo que hagamos realmente sea !incluso cambiar de computador!.

Es muy usual el enfoque de sobredimensionar un equipo pensando en el futuro(1), pero eso no quiere decir que sea buena idea.

En primer lugar, hay que tener en cuenta que nuestra visión del futuro es muy ingenua. No podemos saber con claridad qué demandaremos de nuestro equipo en el futuro, ni tampoco sabemos cuáles serán los cambios reales. Es muy sencillo que nuestra estimación se revele desmesurada, como también lo es que se quede muy corta.

En segundo lugar, hay que tener en cuenta el coste del sobredimensionamiento. Hace 10 o 15 años, la diferencia de un equipo más modesto y uno claramente sobredimensionado era relativamente pequeña. Hoy se adquiere cualquier dispositivo por un puñado de euros, y, naturalmente, todo suma: más memoria, más procesador, más disco... al final duplicamos el precio del computador sin despeinarnos.

Finalmente, es posible implementar estrategias de adaptación.

En esta sección y en las subsecciones siguientes trateré de introducir cómo se puede modificar la distribución de espacio en GNU/Linux para hacer frente a las necesidades que vayan surgiendo. Esto incluye, por supuesto, añadir discos, o simplemente cambiar la distribución del disco en uso...
... en construcción ...
* tabla de particiones
* sistemas de archivos
* tipo de partición volumen linux
* montaje/desmontaje
* añadir y modificar particiones
* añadir y modificar volúmenes
... en construcción ...
(1) Todos lo hemos hecho ;)

karlggest
17-jun-2011, 11:26
Un disco duro puede tener una o varias particiones. En la sección 3.1 definimos brevemente el concepto de partición y mencionamos las tablas de partición MS-DOS y GPT.

La partición MS-DOS(1) es la más conocida en el ámbito de los computadores personales. Se aloja en el MBR y ocupa los últimos 64 bytes, repartidos en cuatro registros de 16 bytes que se corresponden con cada partición primaria (o la partición extendida) posible.

Para soslayar esta limitación, existe lo que se llama Partición Extendida. No es más que una partición especial; en la tabla de particiones simplemente guardas sus límites.

Dentro de las particiones extendidas pueden crearse más subdivisiones, llamadas Particiones lógicas. En estos casos, las propias particiones almacenan información de dónde acaban y donde comienza la siguiente partición lógica.

La partición GPT(2) utiliza EFI(3). Permite direccionar (y por tanto, acceder) a más espacio de disco, y no se limita a las cuatro particiones primarias de la partición MS-DOS.

Una tabla de particiones no es más que una sucesión de bits; cada grupo de bytes representa una entrada de la tabla. Entre otras cosas, puede ser copiada y restaurada en el mismo lugar. Y, por supuesto, puedes modificar sus valores en cualquier momento. Una tabla de particiones puede ser modificada por error, y puede ser restaurada sin ningún problema si el usuario no ha formateado(4) ninguna de las particiones del sistema.

Por ejemplo, supongamos que una partición se extiende desde un punto (para simplificar, imaginemos una tabla con filas numeradas y columnas con letras) a1 hasta b90. Puedes cambiar cualquiera de estos valores, pues sólo son un conjunto de bits al principio del disco. Siguiendo con el ejemplo, si modificas el principio e indicas que comienza en a56, es muy problable que el sistema operativo no pueda montar el sistema de ficheros... pero con simplemente restaurar el valor anterior (a1) y hacer que el sistema operativo relea la tabla de particiones, se verá subsanado el problema. Al fin y al cabo, no has cambiado la información guardada en ese rango, simplemente ha cambiado el lugar donde le indicabas al S.O. que es el principio de la partición, y luego has vuelto a indicarle que la partición comienza en el lugar original. Recuerda que la tabla se guarda en otro lugar!

Por otra parte, es muy probable que el sistema de archivos aloje los datos que permiten acceder a los archivos (la tabla de inodos, la tabla de direcciones, etc.) en el principio de la partición; de forma similar, los sistemas de archivos modernos acostumbran a guardar más información, como puede ser un registro (journaling, en inglés(5)). Esto hace que, por un lado, no puedas desplazar el principio de la partición; por otra parte, la mayoría de sistemas de ficheros necesitarán que se realice algún tipo de operación para reajustar sus datos.

(1) http://es.wikipedia.org/wiki/Tabla_de_particiones
(2) http://es.wikipedia.org/wiki/Tabla_de_partici%C3%B3n_GUID
(3) http://es.wikipedia.org/wiki/EFI
(4) http://es.wikipedia.org/wiki/Formateo
(5) http://es.wikipedia.org/wiki/Journaling

karlggest
17-jun-2011, 14:38
- Aquí, todo guardado en fila y por temas; aquí, columnas por temas; y lo demás, desperdigado por allá...
- ¿Y encuentras algo?
- ¿y por qué iba a querer hacerlo? -responde con los ojos abiertos estupefactos.

Un sistema de archivos no es más que una forma de indicarle a un Sistema Operativo cómo se guardan y organizan los archivos en una partición. De forma adicional, se proporciona más información, atributos tales como el creador, la fecha de modificación, los posibles permisos, etc.

Aunque en teoría las particiones son conceptos independientes de los Sistemas de Archivos, lo cierto es que en la práctica hay un buen montón de consideraciones que hacen que los manejemos juntos casi siempre, tanto para crear la partición en sí como para cambiar su tamaño.

El Sistema de Archivos más usual en GNU/Linux es ext4; por su parte, en los sistemas Windows se utiliza NTFS. La inmensa mayoría de pendrives, tarjetas de cámaras fotográficas o de móviles, etc., usan el sistema de archivos FAT.

... en construcción ...
* reseñas de ext3, ext4, reiserfs, xfs e quizais de zfs e ¿gfs?
* cuestións de que o espacio varia en función do sistema de arquivos empregado
* ferramentas para crear sistemas de ficheiros e para modificalos: extendelos e reducilos
... en construcción ...

karlggest
20-jun-2011, 12:27
- ¿Por dónde ha dicho?
- Por aquí, por favor. Esa otra puerta que ve, es la Puerta a la Desesperación; la del fondo, allí a la derecha, va a la Encrucijada de la Vida, donde se encuentran las puertas de La Muerte, del Nacimiento y otras aquí innombrables, no aptas para humanos; por favor, no se despiste y sígame en su camino.

Montar un dispositivo no es más que hacer que el sistema operativo lo integre en su sistema de ficheros, y permita así acceder a él.

Los usuarios del Mal suelen desconocer este término: El Mal monta los dispositivos sin preguntar, ocultando este hecho al usuario: incluso en su terminología, ya que se habla de "asignar unidades" en lugar de "montar un dispositivo".

A cada dispositivo se le asocia una letra. En El Mal no hay una jerarquía completa, de forma que todos los dispositivos se montan al mismo nivel: a:, c:, d:, e:, etc. Hay una abstracción para dar la ilusión de que la jerarquía es completa, que es lo que llama "Mi PC".

En los sistemas "Unix-like" se usa la jerarquía de Unix, tal y como se recoge en la FHS que ya mencionamos en otras secciones. En este sistema existe una raíz (/) de la que cuelga todo. Por ejemplo, típicamente la raíz y /home están en particiones distintas, /media/etiqueta_del_cdrom es donde se accede al CD/DVD, /proc es el contenido de la memoria, y así. Puedes montar, por ejemplo, el CD/DVD en otro lugar, digamos por ejemplo en /home/mis_CD/etiqueta_del_cdrom.

El sistema "tradicional" para que el sistema monte un dispositivo dado es utilizar un archivo (/etc/fstab el nombre es acrónimo de table of filesystems, tabla de sistemas de archivos) en el que se establece qué dispositivo se quiere montar, en qué lugar del sistema de ficheros, qué sistema de archivos usa y una serie de opciones. Por ejemplo, la entrada para /home podría ser algo como (asumiendo que la raíz es la primera partición primaria de un único disco duro):
/dev/sda1 / ext4 user_attrib 0 0Si un dispositivo ha de ser montado en otro dispositivo (por ejemplo, /home/compartidos) ha de ir después del montaje de éste (en este ejemplo, /home).

El sistema al arrancar leerá el archivo fstab y:

1. Montará / como solo lectura
2. Remontará / como lectura escritura
3. Montará secuencialmente todo lo que encuentre en /etc/fstab

El comando mount permite montar un dispositivo (de forma manual, mediante comandos o como mejor quieras expresarlo), esté especificado o no en /etc/fstab. El paso 3 se corresponde con la ejecución de
mount -aLa sintaxis de mount es
mount dispositivo tipo punto_de_montaje opcionesSi el dispositivo tiene una entrada en /etc/fstab, basta con usar el punto de montaje. Así, una CD/DVD podría montarse con
mount /mntSi el dispositivo a montar no tiene una entrada en fstab, o la que tiene no se corresponde con lo que necesitamos -por ejemplo, un punto de montaje distinto o bien opciones distintas- podemos montarlo de forma manual. mount tratará de montar el dispositivo con las opciones por defecto que no le indiquemos. Así, nuestro CD/DVD anterior podría montarse con, por ejemplo:
mount /dev/sr0 /tmpHay muchas opciones para mount en función del sistema de archivos implicado, que pueden consultarse en su manual(1)

Modernamente es posible usar las llamadas "reglas udev" para asignar dispositivos "en caliente". Uno de los usos más habituales es para montar y desmontar CD/DVD y pendrives.

Para acceder a dispositivos que estén en otros computadores se hace uso de NFS (esto puede también utilizarse para dispositivos externos, tales como discos duros externos). En este caso, para montarlo en nuestro sistema podemos utilizar el sistema tradicional, o bien hacer uso de autofs.


... en construcción ...
orde de montaxem... ¿mapeo de dispositivos? <- útil para grub
... en construcción ...

(1) man mount

karlggest
24-jun-2011, 10:18
El Nombre es un atributo de poder, por cuanto todo cuanto tiene nombre, existe, entonces, lo que no es nombrable, no existe como tal. Por eso, conocer el Nombre de las cosas es tener poder sobre ellas...

Cuando Linux arranca, va escaneando el sistema en busca de dispositivos. A medida que encuentra discos y particiones, les asigna nombres. Tales nombres pueden encontrarse en /dev/ como nombres de archivos de dispositivo especiales. Así, un disco duro puede nombrarse sda, y las particiones que contenga serán sda1, sda2, sda3, etc., donde el número se corresponde con el número de partición.

¿Qué son esos archivos de dispositivo especiales? pues un tipo especial de archivo que está asociado con el hardware. La Entrada/Salida (E/S, en inglés I/O) al hardware se hace leyendo y escribiendo a este archivo. Ésta es la matáfora del archivo en Unix/Linux. Hay dos tipos de archivos especiales de dispositivo: archivos especiales de dispositivo de caracteres y archivos especiales de dispositivo de bloques. Para los discos usamos E/S en bloques. Por supuesto, esto es bastante largo para pronunciarlo, así que la gente habla de archivos de dispositivo. Normalmente, son creados en el directorio /dev/ (hoy en día dinámicamente con udev, del que trataremos luego).

Aquí está cómo aparecen cuando los listas:

boven:/dev # ls -l sda*
brw-r----- 1 root disk 8, 0 Apr 27 09:45 sda
brw-r----- 1 root disk 8, 1 Apr 27 09:45 sda1
brw-r----- 1 root disk 8, 2 Apr 27 09:45 sda2
brw-r----- 1 root disk 8, 3 Apr 27 09:45 sda3
boven:/dev #La mayoría de cosas serán familiares para ti. La b indica un archivo especial de dispositivo de bloques; usuarios normales no pueden leer o escribir directamente ni desde ni al disco, pues de otra forma cualquier seguridad sería futil. El número 8 (llamado número mayor) es el número que usa el núcleo internamente para el driver que trabaja con estos dispositivos (así no envía comandos para cinta a discos) y el 0..3 (número menor) le indica qué parte de cada uno dentro de ese driver. Hasta hace poco estos /dev/sdb2, etc. se usaban para montar las particiones y cuando usabas el comando mount (sin parámetros) podías verlas en uso:

boven:~ # mount
/dev/sda2 on / type ext3 (rw,acl,user_xattr)
/dev/sda3 on /home type ext3 (rw)
...
boven:~ #Esto se basa en el hecho de que en cada inicio el sistema encuentra el sistema en la misma secuencia. Si esto no ocurriese, sda y sdb podrían ser intercambiados y las particiones erróneas montadas (y confundir mucho al usuario!). Esto puede suceder no sólo al inicio, sinó cuando un disco sea conectado a un sistema en ejecución, se le dará el "siguiente" nombre (p.ej. sdc). Así, por ejemplo, al añadir una unidad USB externa a un sistema no se le garantiza que vaya a tener siempre el mismo punto de montaje, lo cual no es conveniente.

Para evitar esta confusión, necesitamos que exista un único identificador para el dispositivo. Y lo hay; de hecho, hay incluso varios tipos de identificadores. Ojeemos /dev/disk. Hay varios directorios ahí:

boven:~ # ls -l /dev/disk
total 0
drwxr-xr-x 2 root root 360 Jul 5 2008 by-id
drwxr-xr-x 2 root root 100 Jul 5 2008 by-label
drwxr-xr-x 2 root root 220 Jul 5 2008 by-path
drwxr-xr-x 2 root root 80 Jul 5 2008 by-uuid
boven:~ #Echa un vistazo al contenido de estos directorios; cada uno de ellos tendrá algunas o todas las particiones, identificadas de forma distinta. Cada uno de estos archivos no es un archivo especial, sinó un enlace a los archivos especiales de dispositivo que vimos antes. Cuando miras en /etc/fstab:

boven:~ # cat /etc/fstab
/dev/disk/by-id/scsi-SATA_Hitachi_HDT7250_VFJ201R23XUEXW-part2 / ext3 acl,user_xattr 1 1
/dev/disk/by-id/scsi-SATA_Hitachi_HDT7250_VFJ201R23XUEXW-part3 /home ext3 defaults 1 2
/dev/disk/by-id/scsi-SATA_Hitachi_HDT7250_VFJ201R23XUEXW-part1 swap swap defaults 0 0
...
boven:~ # Verás que openSUSE utiliza los nombres de /dev/disk/by-id. Para ver que las particiones están montadas correctamente:

boven:~ # ls -l /dev/disk/by-id
lrwxrwxrwx 1 root root 9 Jul 5 2008 scsi-SATA_Hitachi_HDT7250_VFJ201R23XUEXW -> ../../sda
lrwxrwxrwx 1 root root 10 Jul 5 2008 scsi-SATA_Hitachi_HDT7250_VFJ201R23XUEXW-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jul 5 2008 scsi-SATA_Hitachi_HDT7250_VFJ201R23XUEXW-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Jul 5 2008 scsi-SATA_Hitachi_HDT7250_VFJ201R23XUEXW-part3 -> ../../sda3
...
boven:~ # Existe una utilidad que nos indica los nombres de un dispositivo dado. Por ejemplo, si creamos la partición /dev/sdb1, con sistema de archivos ext4, dentro de un disco externo que acabamos de añadir:

boven:~ # blkid /dev/sdb1
/dev/sdb1: UUID="527bc37a-eee2-4359-92e7-364be1924fa5" TYPE="ext4"
Podemos usar ese identificador para montar nuestra partición. Por ejemplo, nuestro /etc/fstab podría contener una línea algo así:

UUID="527bc37a-eee2-4359-92e7-364be1924fa5" /hddExterno ext4 user_attrib 0 0* Mientras se lea esta nota, el 99% de esta sección será un plagio del artículo inglés -traducción casera ;) - de la web de opensuse, que podéis leer aquí: http://en.opensuse.org/SDB:Basics_of_partitions,_filesystems,_mount_point s

karlggest
24-jun-2011, 10:19
Quieras o no, el mundo cambia.

El sistema de montaje de dispositivos estaba muy bien en entornos de red donde una máquina daba servicio a un buen montón de usuarios, compartiendo espacio de disco, el lector de CD, etc. Sin embargo, en los sistemas actuales este esquema puede resultar un poco limitado.

Por una parte, los usuarios domésticos y en oficinas pueden querer enchufar un número indefinido de pendrives, tal vez cámaras digitales u otros dispositivos. Tales usuarios encontrarían engorroso el tener que conectar sus dispositivos en un orden concreto para que el sistema montase cada uno de ellos en el punto de montaje adecuado.

udev utiliza una serie de "reglas" para nombrar dispositivos. Así, por ejemplo, puedes indicarle que un disco externo se llame "disco". En openSUSE 11.4 udev controla todo el proceso para gestionar dispositivos, mientras que en versiones anteriores simplemente delegaba en HAL la parte del montaje/desmontaje.

Consulta la wikipedia y los enlaces recomendados para saber más sobre su funcionamiento: http://es.wikipedia.org/wiki/Udev

karlggest
24-jun-2011, 12:44
autofs permite montar sistemas de ficheros en demanda. Puede ser usado para montar sistemas de ficheros NFS, como también unidades externas, lo que incluye dispositivos USB, CD/DVD, etc.

autofs utiliza un archivo /etc/auto.master para definir los mapas que va a usar. Estos mapas son de alguna forma equivalentes a /etc/fstab, pero con muchas peculiaridades.

En primer lugar, en /etc/auto.master se define el punto de montaje de cada mapa. Los puntos de montaje especificados en cada uno de ellos serán siempre relativos al especificado en auto.master. Así, si este archivo define /usb como el lugar donde se montarán nuestros USB, cada USB será montado en el punto que se especifique, pero siempre dentro de /usb.

... en construcción ...
* autofs
... en construcción ...

karlggest
24-jun-2011, 13:41
- Le dije que necesitaba más espacio, y me trajo una garrafa de gasolina.

En realidad, la informática trata temas que encuentran símiles abundantes en la vida real. La administración del espacio es un buen ejemplo.

Aquellos que os habéis aventurado a comprar o alquilar una vivienda para vosotros solos conoceréis bien esta cuestión. Al principio la vivienda se ve nueva e impoluta, con un montón de espacio que nunca usaremos...

... hasta que años después echamos la vista atrás y comprendemos cuán ingenuos éramos! Ese trastero (¿y yo para qué quiero un trastero?) que corre el riesgo de inundarnos cada vez que abrimos, los cajones llenos, las estanterías que fuimos añadiendo, algún armario nuevo...

Un documento, en formato digital, no es algo que podamos coger. Para nosotros, no hay diferencia fundamental entre un documento o mil, y estos a su vez no son distintos a tener diez mil, o cualquier otro número... Siempre encontraremos increíble que ocupen tanto espacio, pero lo cierto es que lo hacen.

Fijemos entonces una premisa: toda previsión tenderá a ser insuficiente, por exagerada que pueda parecer al principio. Con esto en mente, lo que debemos es tratar de ajustar el tamaño del sistema a medida que va creciendo. Afortunadamente, los sistemas operativos modernos nos ofrecen herramientas suficientes para enfrentar ese reto. Es una suerte. Pero hay que conocerlas y saber usarlas, vaya, no es tanta suerte.

En realidad usar estas herramientas y aplicarlas de forma fructífera es relativamente sencillo. Lo difícil es, igual que en el diseño que hizo el constructor de nuestra casa, que hayamos hecho un sistema suficientemente flexible para crecer con naturalidad.

En las anteriores secciones hemos tratado una serie de conceptos básicos para enfrentarnos a esta tarea. Hemos visto consecutivamente distintas estrategias de particionado y los conceptos subyacentes, igual que en esta sección (la 6) hemos añadido más información para tener una mejor comprensión de su funcionamiento.

En las secciones que siguen veremos distintas aproximaciones: veremos como redimensionar particiones, cómo añadir volúmenes, como podemos intercambiar el espacio disponible entre dispositivos...

En primer lugar mencionaremos un caso sencillo de uso de particiones. Redimensionaremos una partición existente y crearemos una en el nuevo espacio disponible. Luego veremos cómo integrarla en nuestro sistema.

En segundo lugar veremos por qué he hablado tan bien de los volúmenes. Veremos cómo añadir un nuevo volumen, que puede estar en un disco en uso o en uno nuevo. Trateremos de usar las características de los volúmenes para adaptarlos a nuestras necesidades.

Si todo va bien, concluiremos con una breve discusión de cómo diseñar un sistema para que se adapte con facilidad a los distintos cambios, cuando lo instalamos por primera vez.

La idea original es hacerlo tanto con YAST como en consola. Aunque YAST puede por ahora ejecutarse con ncurses, en el futuro puede que no sea así, o puede que nos encontremos en alguna circunstancia -nuestra otra distribución, por ejemplo- donde no podamos usarlo. Así que comenzaremos con la consola. De todas formas, una vez que sabemos lo qué hacemos, usar YAST es casi trivial.

Puestos a comenzar, podemos empezar por donde yo quiera. Así que comenzaremos repasando el uso de fdisk.

karlggest
24-jun-2011, 13:47
<< ¡ALERTA TOCHO! Lo que sigue es un tocho, una herramienta modo comando que no hace casi nada que no pueda hacerse modernamente con gparted y otras utilidades. De hecho, al estar ceñida al uso de particiones MS-DOS, ni siquiera es usable en todos los casos. Eso sí, como toda herramienta de sistema que se precie, se encuentra en casi cualquier distribución y en varios sistemas. Es la clásica herramienta que se echa en falta en situaciones de emergencia >>

En esta sección examinaremos con brevedad el uso de fdisk.

Lo primero que debemos saber de esta herramienta es que sólo trabaja con tablas de particiones "de tipo MS-DOS", aquéllas que tienen particiones primarias y en su caso extendidas. fdisk no puede usar tablas de particiones GPT.

fdisk sólo efectuará los cambios cuando se guarde la nueva tabla, así que si creamos o eliminamos particiones, estos cambios serán reversibles ¡hasta que guardemos dicha tabla!!

Sintaxis:

fdisk [opciones] <disco>que permite editar la tabla de particiones del disco especificado. Las opciones son, bueno, opcionales.

fdisk opciones] -l <disco> que solamente visualiza (lista) la tabla de particiones. En este caso, si no especificamos el disco concreto, nos visualizará la tabla de particiones de cualquier disco conectado al sistema.

Por ejemplo, si queremos listar el contenido de nuestro disco duro principal:
fdisk -l /dev/sdaY si queremos editarlo:
fdisk /dev/sdafdisk es una herramienta un poco engorrosa cuando no la conoces. Funciona de forma interactiva, muy parecida a un intérprete de comandos: te pide la opción correspondiente a lo que quieres hacer, la ejecuta, vuelve a pedir otra opción... y así hasta que acabas y sales. En cualquier momento, puedes consultar las opciones disponibles pulsando la letra m (de Menú).
linux:~ # fdisk /dev/sda

Command (m for help): Pulsamos m para ver las opciones disponibles:

Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)


a toggle a bootable flag: permite marcar la partición como arrancable.
b edit bsd disklabel: para sistemas de archivos propios de BSD
c toggle the dos compatibility flag: marca de compatibilidad con DOS.
d delete a partition: eliminar una partición.
l list known partition types: listar qué tipo de particiones están disponibles: las más relevantes son swap, linux, LVM, FAT32 y NTFS
m print this menu: para visualizar este menú.
n add a new partition: añadir una partición nueva.
o create a new empty DOS partition table: crear una nueva tabla de particiones de tipo MS-DOS.
p print the partition table: visualizar la tabla de particiones.
q quit without saving changes: quitar SIN guardar los cambios. No se altera la tabla de particiones.
s create a new empty Sun disklabel: para máquinas y sistemas SUN.
t change a partition's system id: cambiar el identificador del tipo de partición por uno de los mostrados en l.
u change display/entry units: permite visualizar la información en bloques, sectores o cilindros.
v verify the partition table: verifica el estado de la tabla de particiones.
w write table to disk and exit: escribir la tabla que hemos creado o modificado en el disco.
x extra functionality (experts only): funcionalidad extra: añade una serie de opciones que no deberían ser necesarias en la mayor parte de los casos.


... en construcción ...

karlggest
08-jul-2011, 15:43
A modo de ejemplo vamos a utilizar un pendrive de 2GB, aunque podría hacerse lo mismo para cualquier disco(1). En mi sistema, al insertar este pendrive me lo crea en /dev/sdg.

En este ejemplo, crearemos tres particiones, una de ellas para usar como ext4, otra FAT y otra NTFS. Omitiré los detalles sobre el uso de este tipo de particiones.

Ejecutamos fdisk para el dispositivo a particionar, en este caso sdg. Primero listamos (p) las particiones existentes, luego visualizamos el menú para comprobar las opciones disponibles; o es la opción para crear una nueva tabla.



dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # fdisk /dev/sdg

Command (m for help): p

Disk /dev/sdg: 2004 MB, 2004877312 bytes
42 heads, 42 sectors/track, 2219 cylinders, total 3915776 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x979ad0a9

Device Boot Start End Blocks Id System
/dev/sdg1 62 3915775 1957857 83 Linux

Command (m for help): m
Acción da ore
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m Imprime este menú
n add a new partition
o create a new empty DOS partition table
p print the partition table
q Sae sen gardar os cambios
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): o
Building a new DOS disklabel with disk identifier 0xb084a1a1.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Una de las características del uso de fdisk es que el núcleo seguirá usando la tabla de particiones que ha leído en el arranque. Existen herramientas como partprobe que hacen que el núcleo vuelva a leer la tabla de particiones, asumiendo así los cambios. Sin embargo, por ejemplo Red Hat en rhel 6.0 no da soporte hacer esto, asumiendo el usuario la responsabilidad si hay algún problema. En cualquier caso, si el núcleo no ha releído la tabla de particiones, lo más probable es que se acaben produciendo errores, así que en caso de no usar partprobe o herramientas similares, ha de reiniciarse el sistema a la mayor brevedad. Naturalmente, esto se aplica al disco duro principal! En otros dispositivos, el daño puede restringirse a errores en la gestión de archivos, mientras que dispositivos externos puede que no necesiten de ninguna operación adicional. En nuestro caso, bastará con escribir los cambios en disco.


Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Este mensaje se presenta en algunas situaciones, como al particionar un pendrive, y no debería verse cuando particionamos discos duros!


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

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

Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
Primeiro sector (1052672-3915775, default 1052672):
Using default value 1052672
Last sector, +sectors or +size{K,M,G} (1052672-3915775, default 3915775): +256M

Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
Primeiro sector (1579008-3915775, default 1579008):
Using default value 1579008
Last sector, +sectors or +size{K,M,G} (1579008-3915775, default 3915775):
Using default value 3915775

Command (m for help): p

Disk /dev/sdg: 2004 MB, 2004877312 bytes
42 heads, 42 sectors/track, 2219 cylinders, total 3915776 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb084a1a1

Device Boot Start End Blocks Id System
/dev/sdg1 2048 1050623 524288 83 Linux
/dev/sdg2 1050624 3915775 1432576 5 Extended
/dev/sdg5 1052672 1576959 262144 83 Linux
/dev/sdg6 1579008 3915775 1168384 83 Linux

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

Calling ioctl() to re-read partition table.
Syncing disks.

Por ninguna razón en concreto, he elegido mostrar como crear tanto particiones lógicas como extendidas. A continuación, les asignaremos sus respectivos sistemas de ficheros.


dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # mkfs.ext4 /dev/sdg1
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
32768 inodes, 131072 blocks
6553 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=134217728
4 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # mkfs.vfat /dev/sdg
sdg sdg1 sdg2 sdg5 sdg6
dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # mkfs.vfat /dev/sdg5
mkfs.vfat 3.0.10 (12 Sep 2010)

Para NTFS debemos cambiar el tipo de partición!


dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # fdisk /dev/sdg

Command (m for help): p

Disk /dev/sdg: 2004 MB, 2004877312 bytes
62 heads, 62 sectors/track, 1018 cylinders, total 3915776 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb084a1a1

Device Boot Start End Blocks Id System
/dev/sdg1 2048 1050623 524288 83 Linux
/dev/sdg2 1050624 3915775 1432576 5 Extended
/dev/sdg5 1052672 1576959 262144 83 Linux
/dev/sdg6 1579008 3915775 1168384 83 Linux

Command (m for help): t
Partition number (1-6): 6
Hex code (type L to list codes): l

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list codes): 7
Changed system type of partition 6 to 7 (HPFS/NTFS/exFAT)

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

Calling ioctl() to re-read partition table.
Syncing disks.

dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # mkfs.ntfs /dev/sdg6
Cluster size has been automatically set to 2048 bytes.
Initializing device with zeroes: 100% - Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.

Montamos las particiones con el plasmoide "Notificador de Dispositivos". Tal y como está, para montar NTFS tengo que hacerlo manualmente.


dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # mount |grep sdg
/dev/sdg5 on /media/1B8D-C21A type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=100,fmask=0 022,dmask=0077,codepage=cp437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,errors=remount-ro,uhelper=udisks)
/dev/sdg1 on /media/228bc0ae-4bcc-4f36-b587-15b8dd971ad4 type ext4 (rw,nosuid,nodev,relatime,barrier=1,data=ordered,u helper=udisks)
dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # mount /dev/sdg6 /mnt
dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # mount |grep sdg
/dev/sdg5 on /media/1B8D-C21A type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=100,fmask=0 022,dmask=0077,codepage=cp437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,errors=remount-ro,uhelper=udisks)
/dev/sdg1 on /media/228bc0ae-4bcc-4f36-b587-15b8dd971ad4 type ext4 (rw,nosuid,nodev,relatime,barrier=1,data=ordered,u helper=udisks)
/dev/sdg6 on /mnt type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blks ize=2048)
dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # umount /mnt

A continuación, simplemente sustituiré la nueva tabla (podría eliminar las particiones de una en una) para añadir una única partición FAT.


dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # fdisk /dev/sdg
fdisk: unable to open /dev/sdg: Non se atopou o medio

Al menos en mi sistema, después de desmontarlo he de retirarlo y enchufarlo de nuevo.


dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # fdisk /dev/sdg

Command (m for help): o
Building a new DOS disklabel with disk identifier 0x36faace4.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

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

Calling ioctl() to re-read partition table.
Syncing disks.
dosrios:/home/karl/Documentos/Desenvolvimento/practicas/particionados # fdisk /dev/sdg

Command (m for help): p

Disk /dev/sdg: 2004 MB, 2004877312 bytes
62 heads, 62 sectors/track, 1018 cylinders, total 3915776 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x36faace4

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):
Using default value 1
Primeiro sector (2048-3915775, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-3915775, default 3915775):
Using default value 3915775

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

Calling ioctl() to re-read partition table.
Syncing disks.

Otras herramientas que pueden dar mejores resultados en ciertas situaciones son sfdisk y cfdisk. La última de hecho tiene una interfaz más sencilla de usar. Para otras situaciones, parted puede ser más adecuado.

(1) De hecho, pueden crearse tablas de particiones en cualquier fichero, y si hay fuerza y ánimo veremos alguna opción interesante...

karlggest
15-jul-2011, 00:42
Una forma de extender el sistema es añadir una partición donde alojar determinada información a partir de entonces. Por ejemplo, podemos crear una partición para alojar los vídeos que descarguemos. En este ejemplo, usaré un disco externo en donde crearé una partición nueva que añadiré a mi sistema.

dosrios:/ # fdisk -l /dev/sdb

Disk /dev/sdb: 200.0 GB, 200049647616 bytes
55 heads, 6 sectors/track, 1184005 cylinders, total 390721968 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006e784

Device Boot Start End Blocks Id System
/dev/sdb1 2048 356517887 178257920 83 Linux
/dev/sdb2 356517888 377489408 10485760+ 83 Linux
dosrios:/ #
Desde luego, fdisk no es muy expresivo si lo que se trata es de determinar el espacio libre del que disponemos. Si nos fijamos, hemos asignado particiones entre los sectores 2048 hasta los 377.489.408. Si el total es 390.721.968, basta con restar para obtener el número de sectores libres: 390721968-377489408 = 13.232.560. Como cada sector tiene 512 bytes, con 13232560/2 obtenemos el espacio libre: 6.616.280 KiB, esto es, casi 6,5 GiB. Añadamos estos 6 GiB a nuestro sistema:

1. Creamos una nueva partición. Con fdisk añadimos una partición primaria; los valores por defecto crean una partición en todo el espacio disponible.
fdisk /dev/sdb

Command (m for help): p

Disk /dev/sdb: 200.0 GB, 200049647616 bytes
55 heads, 6 sectors/track, 1184005 cylinders, total 390721968 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006e784

Device Boot Start End Blocks Id System
/dev/sdb1 2048 356517887 178257920 83 Linux
/dev/sdb2 356517888 377489408 10485760+ 83 Linux

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

Command (m for help): p

Disk /dev/sdb: 200.0 GB, 200049647616 bytes
55 heads, 6 sectors/track, 1184005 cylinders, total 390721968 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006e784

Device Boot Start End Blocks Id System
/dev/sdb1 2048 356517887 178257920 83 Linux
/dev/sdb2 356517888 377489408 10485760+ 83 Linux
/dev/sdb3 377489409 390721967 6616279+ 83 Linux

Command (m for help): m
Acción da ore
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m Imprime este menú
n add a new partition
o create a new empty DOS partition table
p print the partition table
q Sae sen gardar os cambios
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

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: Dispositivo ou recurso ocupado.
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.
Como es un disco duro (ya estaba enchufado en el inicio), nos informa de que el núcleo usará la tabla de partición anterior. Con partprobe podemos solucionar esto:

dosrios:~ # partprobe /dev/sdb
dosrios:~ #
Lo siguiente es crear un nuevo sistema de archivos en la nueva partición. Para nuestro propósito, podemos utilizar ext4
dosrios:~ # mkfs.ext4 /dev/sdb3
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
413712 inodes, 1654069 blocks
82703 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1694498816
51 block groups
32768 blocks per group, 32768 fragments per group
8112 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
dosrios:~ #2. Montar el nuevo sistema de ficheros. Aquí dependerá de para qué queremos la nueva partición.

Puede que queramos sustituir algún sistema de ficheros de nuestro sistema, p.ej. si nuestras estimaciones iniciales resultaron insuficientes. Para ello, podemos proceder como en este ejemplo para /home (http://www.forosuse.org/forosuse/showthread.php?t=16954). Básicamente, montamos la nueva partición en algún lugar, p. ej. /mnt, copiamos allí los archivos existentes en el sistema de ficheros a sustituir, si la copia fue bien, eliminamos los originales, y por fin montamos la nueva partición en su lugar.

O también puede que simplemente queramos disponer de más espacio para nuestras cosas, o usarlo como una suerte de "memoria intermedia" para compartir con otros sistemas. En ese caso, basta con montar la nueva partición en algún sitio adecuado. Hay varias posibilidades, y voy a comentar dos: /mnt y /media.

Tanto /mnt como /media son usadas para montar dispositivos concretos. En el caso de /mnt, se utiliza para montar dispositivos temporalmente. Un ejemplo se ve en el ejemplo de separar /home ya mencionado (ver enlace anterior). /media se utiliza para los dispositivos que monta el sistema automáticamente: CD/DVD, pendrives, etc.

En algunas documentaciones podemos ver la partición de Windows montada en /mnt/Windows, por ejemplo. No lo considero un buen punto de montaje(1).

La opción habitual consiste en montarlo en la raíz. Por ejemplo, /misDatos. Sin embargo, hay algo visceral, ancestral en mí que no ve con buenos ojos hacer eso. El motivo no es quizás muy importante, pero me resisto a crear una carpeta en la raíz con propiedad y permisos del usuario (o del grupo). Recuérdese que para poder crear archivos en la nueva partición debemos de disponer de permiso de escritura para nuestro usuario -o al menos, para el grupo. Una ubicación alternativa puede ser, por ejemplo, /home/tuUsuario/misDatos, o bien /home/misDatos si hay varios usuarios del sistema que pueden querer compartir esta carpeta. Incluso /home/miFamilia/misDatos. Préstese atención a que en /home no tenemos permisos de escritura, y que la nueva carpeta heredará los permisos de /home: es decir, también tenemos que cambiar el propietario o el grupo de la nueva carpeta para que funcione como queremos.
karl@dosrios:/home> mkdir misDatos
mkdir: non se pode crea-lo directorio "misDatos": Permiso denegado
karl@dosrios:/home> sudo mkdir misDatos
Contrasinal:
karl@dosrios:/home> ls -ld misDatos/
drwxr-xr-x 2 root root 6 Xul 15 00:15 misDatos/
karl@dosrios:/home> sudo chown -Rf karl:users misDatos/
karl@dosrios:/home> ls -ld misDatos/
drwxr-xr-x 2 karl users 6 Xul 15 00:15 misDatos/
karl@dosrios:/home>
Comprobamos que funciona:
karl@dosrios:/home> sudo mount /dev/sdb3 misDatos/
karl@dosrios:/home> mkdir misDatos/carpeta
karl@dosrios:/home>

recuerda: Si creamos la carpeta donde montar nuestra nueva partición en una carpeta, la nueva carpeta -y su contenido- heredará los permisos y propiedades de dicha carpeta.

Para hacer permanente esta partición y que el sistema la monte en el arranque, añadiremos una línea en /etc/fstab. Lo primero que tenemos que hacer es identificar la partición recién creada:
dosrios:/home # blkid /dev/sdb3 >> /etc/fstab
dosrios:/home # vim /etc/fstab Con el primer comando introducimos el identificador Único de la partición en el archivo /etc/fstab, ahorrando tener que copiarlo. Editamos con vim o el editor que usemos la última línea hasta que quede así:
UUID="6fdd2f47-a348-4a3b-bg67-6dda942dd39a" /home/misDatos ext4 defaults 1 2Naturalmente, el UUID será el que corresponda a tu partición. Comprobamos:
dosrios:/home # mount -a
dosrios:/home # mount |grep Datos
/dev/sdb3 on /home/misDatos type ext4 (rw,relatime,barrier=1,data=ordered)
dosrios:/home #
Y a funcionar.

Alguno puede que esté pensando "¿cómo hacer eso para compartir con Windows? De hecho, es una cuestión usual en los foros y se ha abordado antes en este mismo documento(2).
dosrios:/home # umount misDatos/
dosrios:/home # mkfs.ntfs /dev/sdb3
Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 100% - Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.
dosrios:/home # . Por supuesto, ahora el identificador único ha cambiado, así que volvemos a identificarla con blkid como hicimos antes y editamos la línea de fstab (en este caso, eliminaremos la anterior).
dosrios:/home # mount -a
dosrios:/home # exit
exit
karl@dosrios:/home> df -HT |grep Datos
df: "/var/lib/nfs/rpc_pipefs": Permiso denegado
/dev/sdb3 fuseblk 6,8G 35M 6,8G 1% /home/misDatos
karl@dosrios:/home> mount |grep Datos
/dev/sdb3 on /home/misDatos type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blks ize=4096)
karl@dosrios:/home> Fácil, ¿no? Fijáos que en fstab he puesto ntfs-3g en el campo correspondiente al tipo de sistema de archivos:
karl@dosrios:/home> cat /etc/fstab |grep ntfs
UUID="23A0B07005CB2830" /home/misDatos ntfs-3g defaults 1 2
karl@dosrios:/home>Nota: En la sección anterior hemos visto que una partición NTFS tiene su propio tipo. Es posible que para que lo que acabo de hacer funcione en Windows (sí lo hace en GNU/Linux) debamos de cambiar ese identificador de tipo con fdisk (ver sección anterior). Y es que no dispongo de un sistema Windows para comprobarlo, aunque debería funcionar así.

(1) Cuando montas un dispositivo en una carpeta, el contenido de la misma sigue ahí, pero se vuelve inaccesible, ya que el sistema no es capaz de fusionar el contenido de dos carpetas. Plan 9, por ejemplo, sí puede hacerlo.
(2) Sección 3.3 (http://www.forosuse.org/forosuse/showthread.php?t=25919#10)

karlggest
15-jul-2011, 15:27
Añadir una partición nueva (incluso un disco entero) a nuestro sistema es una buena forma para expandir el espacio disponible. Veamos ahora cómo hacerlo con volúmenes lógicos.

La ventaja de los volúmenes para hacer crecer nuestro espacio es que el sistema encargado de la gestión de los volúmenes se encarga de (casi) todo. Es una pena que decrecer volúmenes no sea tan trivial(1)

En este ejemplo, tomaremos la partición creada antes (/dev/sdb3) y la añadiremos a nuestro sistema. Después modificaremos el volumen a recrecer. Los pasos son:

1. Preparar la partición que vamos a añadir al sistema. Para ello debemos marcarla como de tipo "LVM" y luego debemos crear un volumen físico en esa partición. Por supuesto, esto eliminará los datos que tenga esa partición!!
2. Extender el volumen físico para que incluya esa nueva partición.
3. Extender el volumen lógico en la medida que necesitemos. No debemos olvidarnos reajustar el sistema de archivos!!.

El volumen actual es el que sigue:
dosrios:/home/karl # vgdisplay system
--- Volume group ---
VG Name system
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 10
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 7
Open LV 7
Max PV 0
Cur PV 1
Act PV 1
VG Size 47,15 GiB
PE Size 4,00 MiB
Total PE 12071
Alloc PE / Size 8157 / 31,86 GiB
Free PE / Size 3914 / 15,29 GiB
VG UUID ixNnpX-nref-gZNl-DMai-8TQQ-JSGv-tAk2lZ
vgdisplay permite visualizar los volúmenes del sistema; si añades el volumen, visualiza sólo ese volumen. Entre otra información, podemos ver que el sistema dispone de 15 GiB libres.
dosrios:/home/karl # df -HTP |grep '^/'
((Filesystem Type Size Used Avail Use% Montado en))
/dev/mapper/system-root reiserfs 1,1G 365M 710M 34% /
/dev/sda7 reiserfs 171M 59M 112M 35% /boot
/dev/mapper/system-home xfs 11G 11G 598M 95% /home
/dev/mapper/system-appsopcionais ext4 2,2G 939M 1,1G 47% /opt
/dev/mapper/system-temporal ext4 1,8G 244M 1,5G 15% /tmp
/dev/mapper/system-aplicacions ext4 11G 8,4G 1,8G 83% /usr
/dev/mapper/system-var ext4 5,3G 833M 4,2G 17% /var
(Mantengo el encabezado a efectos de mayor claridad) Aquí podemos ver la distribución actual del sistema, con un /usr al 83% y un /home al 95. Nótese que salvo en /var, en ningún otro lugar hay más de un par de GiB libres.
1. Preparar la partición
Comenzamos por usar fdisk para asignarle el tipo 8e (Linux LVM) a la partición /dev/sdb3:
dosrios:/home/karl # fdisk /dev/sdb

Command (m for help): p

Disk /dev/sdb: 200.0 GB, 200049647616 bytes
255 heads, 63 sectors/track, 24321 cylinders, total 390721968 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006e784

Device Boot Start End Blocks Id System
/dev/sdb1 2048 356517887 178257920 83 Linux
/dev/sdb2 356517888 377489408 10485760+ 83 Linux
/dev/sdb3 377489409 390721967 6616279+ 83 Linux

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): L

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)

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: Dispositivo ou recurso ocupado.
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.
dosrios:/home/karl # partprobe /dev/sdb
dosrios:/home/karl # pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created
dosrios:/home/karl #
2. Extender el volumen físico
El siguiente paso es extender el volumen físico añadiéndole nuestra nueva partición.
dosrios:/home/karl # vgextend system /dev/sdb3
Volume group "system" successfully extended
dosrios:/home/karl # Si probamos a visualizar el volumen ahora, veremos que hay 6 GiB más libres que antes, como era de esperar:
dosrios:/home/karl # vgdisplay system
--- Volume group ---
VG Name system
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 11
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 7
Open LV 7
Max PV 0
Cur PV 2
Act PV 2
VG Size 53,46 GiB
PE Size 4,00 MiB
Total PE 13686
Alloc PE / Size 8157 / 31,86 GiB
Free PE / Size 5529 / 21,60 GiB
VG UUID ixNnpX-nref-gZNl-DMai-8TQQ-JSGv-tAk2lZ

dosrios:/home/karl #
A modo de ejemplo, vamos a añadir algo de espacio a los sistemas de ficheros /usr y /home.

Hay dos formas de añadir espacio en un volumen lógico: indicando el tamaño en megabytes (o Gigabytes, Terabytes, Petabytes o exabytes), o indicándolo en extents lógicos(2).

Añadimos 2 GiB en el sistema de ficheros /usr:
dosrios:/home/karl # lvextend -L +2G /dev/system/aplicacions
Extending logical volume aplicacions to 12,16 GiB
Logical volume aplicacions successfully resized
dosrios:/home/karl #
Esto simplemente añade 2 GiB al volumen lógico:
dosrios:/home/karl # df -HTP |grep /usr
/dev/mapper/system-aplicacions ext4 11G 8,4G 1,8G 83% /usrComo se ve, el sistema de ficheros sigue igual: ahora hay que extender el sistema de archivos para que lo abarque:
dosrios:/home/karl # resize2fs -p /dev/system/aplicacions
resize2fs 1.41.14 (22-Dec-2010)
Filesystem at /dev/system/aplicacions is mounted on /usr; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/system/aplicacions to 3187712 (4k) blocks.
The filesystem on /dev/system/aplicacions is now 3187712 blocks long.

dosrios:/home/karl # df -HTP |grep /usr
/dev/mapper/system-aplicacions ext4 13G 8,4G 3,9G 69% /usr
dosrios:/home/karl #
Ahora sí disponemos de 2 GiB más para el sistema de ficheros /usr.

Para extender /home usaremos los extents. En la salida de vgdisplay system vemos que para PE indica 4 MiB: PE de Physical Extents. Un poco más abajo nos dice el espacio disponible y libre en el volumen físico, así como los extents disponibles y libres. En este caso, nos indica que disponemos de 5017 extents libres (19,6 GiB). Añadamos 2017 extents al volumen /home:
dosrios:/home/karl # lvextend -l +2017 /dev/system/home
Extending logical volume home to 17,88 GiB
Logical volume home successfully resized
dosrios:/home/karl # Como antes, debemos extender el sistema de ficheros por todo el volumen. Hay que tener en cuenta que en este sistema, /home tiene xfs como sistema de archivos! para redimensionar una partición xfs se utiliza el comando xfs_growfs
dosrios:/home/karl # xfs_growfs /dev/system/home
meta-data=/dev/mapper/system-home isize=256 agcount=4, agsize=655360 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2621440 to 4686848
dosrios:/home/karl # df -HTP |grep '^/'
/dev/mapper/system-root reiserfs 1,1G 365M 710M 34% /
/dev/sda7 reiserfs 171M 59M 112M 35% /boot
/dev/mapper/system-home xfs 20G 11G 9,1G 53% /home
/dev/mapper/system-appsopcionais ext4 2,2G 939M 1,1G 47% /opt
/dev/mapper/system-temporal ext4 1,8G 244M 1,5G 15% /tmp
/dev/mapper/system-aplicacions ext4 13G 8,4G 3,9G 69% /usr
/dev/mapper/system-var ext4 5,3G 838M 4,2G 17% /var
dosrios:/home/karl #




... en construcción ...

(1) Se pueden redimensionar sistemas en caliente siempre que sea para añadir espacio; para decrecer, la partición no debe de estar en uso.
(2) Ver sección 3.2 (http://www.forosuse.org/forosuse/showthread.php?t=25919#9)
http://www.ibm.com/developerworks/ssa/library/l-resizing-partitions-2/index.html