0% encontró este documento útil (0 votos)
63 vistas37 páginas

EJERC Linux Repaso Comandos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1/ 37

LINUX REPASO COMANDOS:

Fuser y lsof
Fuser: identifica qué procesos están utilizando un fichero o carpeta determinada
o un socket.
- Identifica los procesos, mostrando su PID, que están utilizando un fichero,
una carpeta o un socket.
- De hecho también nos brinda la posibilidad de matar dichos procesos.
- Su modo más básico es sin parámetros:
o fuser .
- En el resultado veremos los diferentes PID o número de procesos que
utilizan el fichero.

ROOT: fuser /dev/tty1

- amosará tódolos PID da consola /dev/tty1

USER: $HOME o comando fuser.

- amosará tódolos PID dependentes do cartafol /home/user:

USER: $HOME o comando fuser –v:

- amosará tódolos PID dependentes do cartafol /home/user en forma detallada


(verbose), podendo saber o comando correspondente a cada proceso

ROOT: fuser --mount /media/cdrom0

- permite saber tódolos procesos que están a usar o punto de montaxe /media/cdrom0:

ROOT: fuser -v -n tcp 22

- permite saber tódolos procesos que están a usar o porto TCP 22

ROOT: fuser -km /media/cdrom0

- permite matar tódolos procesos que están a usar o punto de montaxe /media/cdrom0,
- pero o punto de montaxe seguirá montado:

EJERCICIOS:

- Mostrar todos los PID de la consola /dev/tty1 (indicar si administrador o usuario)


- Mostrar todos los PID de nuestra ruta $HOME (indicar si administrador o usuario)
- Procesos que están a usar el punto de montaje /media/cdrom0
- Procesos que usar el puerto TCP 22.
- Matar todos los procesos que están en el punto de montaje /media/cdrom0

Lsof: lista (de) archivos abiertos.


- Es una conocida herramienta de monitorización de sistemas operativos tipo Unix que
se utiliza para:
o mostrar todos los archivos de disco que mantienen abiertos los procesos,
incluyendo los sockets de red abiertos, tuberías, entre otros tipos.
o Estos archivos pueden ser archivos normales, directorios, archivos de bloque,
sockets de red, canalizaciones con nombre, etc.
o Muestra entre otras cosas: nombre e id del proceso,

ROOT: lsof -i

- permite ver tódolos procesos que teñen abertas conexións de rede

ROOT: lsof +D /var/log

- permite ver tódolos procesos que teñen abertos ficheiros baixo o cartafol /var/log

ROOT: lsof -c systemd

- permite saber tódolos ficheiros abertos polo comando systemd

ROOT: lsof /media/cdrom0

- permite saber tódolos procesos que están a usar o punto de montaxe /media/cdrom0

ROOT: lsof -u user

- permite saber tódolos procesos que está a usar o usuario user, así como tamén os
ficheiros abertos dese usuario.

ROOT: lsof -u user -c iceweasel

- permite saber tódolos ficheiros abertos polo comando iceweasel cando é executado co
usuario user

ACTIVIDADES:

- Mostrar todos los procesos que teñen abertas conexións de rede

- Mostrar todos los procesos que teñen abertos ficheiros baixo o cartafol /var/log
- Mostrar todos los ficheiros abertos polo comando systemd

- Mostrar todos los procesos que están a usar o punto de montaxe /media/cdrom0

- Mostrar todos los procesos que está a usar o usuario user, así como tamén os ficheiros
abertos dese usuario.
- Mostrar todos los ficheiros abertos polo comando iceweasel cando é executado co
usuario user

ACTIVIDADES DE RED:

- Mostrar todas las interfaces de red, activas y no activa


Ifconfig (solo muestra las activas)
/sbin/ifconfig –a (activas y no activas)

Ip addr
Ip address
Ip address show

- Mostrar información de la interface de red eth0

Ip addr show eth0

Ifconfig eth0

- configurar a interface eth1 coa IP 192.168.100.1O


ip addr add 192.168.100.1º dev eth1
ifconfig eth1 IP

- interface eth1 coa IP 192.168.100.1O e Máscara de Subrede 255.255.255.0

ip addr add 192.168.100.1º/24 dev eth1

ifconfig eth1 IP netmask 255.255.255.0

- Eliminar a configuración de rede da interface eth1 sempre e cando sexa executado


cun usuario con permisos de root

Ip addr flush eth1

- Desactivar y activar la interfaz de red eth1


Ifconfig eth1 down
Ifconfig eth1 up

Ip link set eth1 down


Ip link set eth1 up
- Nunha interface eth1 a seguinte configuración de rede:

IP: 192.168.100.10

Máscara de Subrede: 255.255.255.0

Gateway: 192.168.100.1

DNS Primario: 8.8.8.8

DNS Secundario: 8.8.4.4

Como se establecería esta configuración:

Esta configuración funciona aunque la interfaz esté deshabilitada.


Ifconfig eth1 up
Ip link set eth1 up

Ifconfig eht1 IP netmask mask


Ip addr add IP/mask dev eth1

Route add default gw 192.168.100.1


Ip route add default via 192.168.100.1

Echo “nameserver 8.8.8.8\n nameserver 8.8.8.4” > /etc/resolv.conf

/etc/init.d/networking restart

- se se quere modificar a gateway a 192.168.100.254 (borrar y volver a establecer)


ip route del default via 192.168.100.254
ip route add default via 192.168.100.254

- Para poder visualizar a táboa de enrutamento


ROOT: route -n
USER: /sbin/route –n
Ip route

- Crear un alias para el interfaz eth1.

Ifconfig eth1:0 192.168.100.254/24

Ip addr add 192.168.100.254/24 dev eth1 label eth1:0


- Diferentes alcances o scopes de las IP que se configuran con el comando ip:
Host, link y global

ALCANCE GLOBAL
ifconfig eth1 192.168.100.11/24
ip addr add 192.168.100.11/24 dev eth1
ip addr add 192.168.100.11/24 dev eth1 label eth1:0
ALCANCE LOCAL
ip addr add 192.168.100.11/24 dev eth1 scope host
ip addr show eth1

Dhclient:
- Configuración dinámica de la red eth0 en modo verbose o detallada

Dhclient –v eth0

- Configuración dinámica de la red eth0 en modo verbose o detallada, buscando la


configuración del servidor DHP 192.168.200.254

Dhclient –s 192.168.200.254 –v eth0

ACTIVIDADES SSH:

- Dende o host A sendo root quérese copiar o cartafol $HOME/cousas no host B no


destino $HOME do usuario root.

scp -r ~/cousas root@192.168.100.20


scp -r ~/cousas root@192.168.100.20:/root/
scp -r ~/cousas 192.168.100.20

- Tendo en conta que o servizo ssh no host B espera a escoita no porto 9876, dende o
host A sendo root quérese copiar o ficheiro $HOME/cousas.txt no host B no destino
$HOME do usuario root.
scp –P 9876 -r ~/cousas root@192.168.100.20

ATRIBUTOS – lsattr – chattr:


Lsattr: ver atributos extendidos
(todos los permisos menos escritura)
Chattr: SOLO con ROOT

Lsattr
OPCIONES:

-R Lista reiterativamente los atributos de los directorios y su contenido.

-a Lista todos los archivos en directorios, incluyendo archivos que empiecen por `.'.

-d Lista directorios y archivos de la carpeta, pero no las subcarpetas.

Chattr
OPCIONES:

+i Hace el archivo de sólo lectura (inmutable incluso para root)

-i Elimina el inmutable.

+a Append Only: sólo se pueden añadir contenido. Incluso para root.

-a Abre el archivo para escritura.

+S Los cambios en el archivo se escriben a la vez en el disco (síncrona)

+d No se permite backups del archivo o carpeta con dump.

+c  El archivo se comprimirá automáticamente.

+A Que la fecha del último acceso no sea modificada.

Al eliminar un archivo, su contenido quedara guardado por si lo quieres recuperar


+u
después con alguna herramienta especializada.
Cuando un archivo se borre, Los bloques que usa el archivo serán re-escritos con ceros
+s (0), el fichero será irrecuperable, es como si ese espacio hubiese sido formateado a
bajo nivel (de fabrica).

 e: extents.
 “e” que es propio del sistema de ficheros de linux para el mapeo de los
bloques en el disco y no se puede modificar
 Indica que el archivo está utilizando extents para mapear los bloques en
disco.
o Los extents son rangos de bloques continuos, lo cual:
o reduce la cantidad de metadatos necesarios para mantener el
archivo;
o mejora el rendimiento para archivos grandes;
o reduce la fragmentación del sistema de archivos.

-Executamos os seguintes comandos:


$ whoami
ana
$ id ana
uid=1001(ana) gid=1002(primaria) grupos=1002(primaria)
$ ls -ld /etc
drwxr-xr-x 82 root root 4096 feb 28 18:40 /etc
$ ls -l /etc/resolv.conf
-rw-r--r-- 1 root root 76 feb 20 15:59 /etc/resolv.conf

Entón ana poderá executar sen erro o comando


lsattr /etc/resolv.conf

Leer atributos: permiten todos menos el permiso de escritura.

Ana entraría por permisos de otros. Con permiso de lectura, puede leer los
atributos. Por lo tanto podría ejecutar el comando.

Se a saída do comando lsattr /etc/resolv.conf amosa:


-------------e-- /etc/resolv.conf
Entón, isto quere dicir que o arquivo /etc/resolv.conf posúe o
atributo inmutable:

Indica que tiene el formato extend, para mapear los bloques en el disco.

Se a saída do comando lsattr file1.txt amosa:


-----a-------e-- file1.txt
Entón, isto quere dicir que o comando rm -f file1.txt eliminaría ese
ficheiro:
Non, posto que soamente se pode abrir o ficheiro para engadir escritura

Se a saída do comando lsattr file1.txt amosa:


-----a-------e-- file1.txt
Entón, isto quere dicir que o comando echo '1 2 3 4 5' > file1.txt
sobrescribiría o ficheiro:
Non, poderíase engadir pero non sobrescribir

Executamos os seguintes comandos:


$ whoami
ana
$ id ana
uid=1001(ana) gid=1002(primaria) grupos=1002(primaria)
$ ls -l $HOME/file1.txt
-rw-r--r-- 1 ana primaria 20 feb 12 22:11 /home/ana/file1.txt
$ lsattr $HOME/file1.txt
-----a-------e-- $HOME/file1.txt
$ chmod 655 $HOME/file1.txt

Entón, o último comando executado por ana podería cambiar os


permisos do ficheiro

NO, no se podría por el tener el atributo append only.


OJO CON chattr - SOLO ROOT
Executamos os seguintes comandos:
$ whoami
ana
$ id ana
uid=1001(ana) gid=1002(primaria) grupos=1002(primaria)
$ ls -l $HOME/file1.txt
-rw-r--r-- 1 ana primaria 20 feb 12 22:11 /home/ana/file1.txt
$ lsattr $HOME/file1.txt
-----a-------e-- $HOME/file1.txt
$ chown ana. $HOME/file1.txt
Entón, o último comando executado por ana podería cambiar o
usuario e grupo propietarios do ficheiro

NO se podría, por el atributo append only. Además, chown solo se puede usar con root
o el usuario propietario.
Chown puede cambiar usuario y grupo de enlaces simbólicos:
- chown user enlace_simbolico (cambiaria el usuario del archivo original)
- chown –h user enlace_simbolico (cambiar el usuario del enlace simbolico)
- chown –R user.group directorio
Executamos os seguintes comandos:
$ whoami
ana
$ id ana
uid=1001(ana) gid=1002(primaria) grupos=1002(primaria)
$ ls -l $HOME/file1.txt
-rw-r--r-- 1 ana primaria 20 feb 12 22:11 /home/ana/file1.txt
$ lsattr $HOME/file1.txt
----ia-------e-- $HOME/file1.txt
$ echo '1 2 3 4 5' >> $HOME/file1.txt
Entón, o último comando executado por ana podería engadir contido
ao ficheiro:

NO, prevalece el atributo inmutable sobre el append only.

Executamos os seguintes comandos:


# whoami
root
# ls -l $HOME/file1.txt
-rw-r--r-- 1 root root 20 feb 12 22:11 /root/file1.txt
# lsattr $HOME/file1.txt
----ia-------e-- $HOME/file1.txt
# echo '1 2 3 4 5' >> $HOME/file1.txt
Entón, o último comando executado por root podería engadir
contido ao ficheiro:

NO, el atributo i y a afectan incluso a root.


Executamos os seguintes comandos:
# whoami
root
# ls -l $HOME/file1.txt
-rw-r--r-- 1 root root 20 feb 12 22:11 /root/file1.txt
# lsattr $HOME/file1.txt
----ia-------e-- $HOME/file1.txt
# chattr -ia $HOME/file1.txt
Entón, o último comando executado por root podería eliminar
os atributos i e a
Si, solo lo puede hacer root.

ACL – Listas de Control de Acceso - permisos extendidos


Para ello se debe especificar cuando se montan, bien de manera provisional o
de manera permanente en el fichero /etc/fstab

Getfacl – muestra los permisos extendidos

Copia de seguridad y restauración


Getfacl -R /home/pepe > /home/pepe/fich_backup.bak
Setfacl - -restore=fich_backup.back

Anular las listas de acceso y las default que pudiera tener una carpeta
Setfacl –b –k –R carpeta

 -b : Eliminamos la posible ACL que ya pudiese tener el directorio


(elimina las default también)
-k : Eliminamos la posible ACL default que pudiese tener el directorio
(solo las default)
-R : Aplicamos los cambios de forma recursiva 

Setfacl –s u:lol:r carpeta : borra las ACL existentes, y crea una nueva.

Establecer permisos o ACE nombradas


Setfacl –m u::rw carpeta (= chmod u+rw carpeta )
Setfacl –m u:user:rw carpeta (ACE nombradas)
Setfacl –m m::rw carpeta (máscara: máximos permisos efectivos
sobre las ACE nombradas)

Permisos por herencia o default – SOLO AFECTAN A


DIRECTORIOS
Setfacl –d u:pepe:rw carpeta (se muestran con default, y serán
heredados, cuando se creen subcarpetas o ficheros dentro de la
carpeta)

Setfacl –b
Borrado de una entrada ACL:

Setfacl –x g:primario carpeta


OJO!! Setfacl –x u:: carpeta : no se pueden eliminar los permisos ugo

Listado muestra +:
Ls –l : si tiene ACL, muestra un + al final.

MASK
Esta entrada sólo afecta a los ACE nombrados, aquellos que tiene un
usuarios/grupo en su entrada (user:juan:rw), y que suelen cruzarse con los
permisos que tengan los usuarios y grupos para generar permisos
efectivos.
   Setfacl –m m::r--
Conflictos ugo y ACL
Ante confictos con uo y ACL, prevalecen ugo.
Ante conflicto g de ugo y ACL, prevalece la máscara.

$ whoami

ana

$ id ana

uid=1001(ana) gid=1001(primaria) grupos=1001(primaria)

$ id carmiña

uid=1003(carmiña) gid=1001(primaria) grupos=1001(primaria)

$ setfacl -m g:primaria:--- /tmp/COMUN

$ getfacl /tmp/COMUN

getfacl: Eliminando '/' inicial en nombres de ruta absolutos

# file: tmp/COMUN/

# owner: ana

# group: primaria

user::rwx

group::r-x

group::primaria:---

mask::r-x

other::r-x
$ su - carmiña

$ whoami

carmiña

$ cd /tmp/COMUN/

Entón carmiña poderá acceder ao cartafol /tmp/COMUN

Si, xa que en caso de conflicto os permisos da máscara prevalecen sobre


calquera grupo, co cal prevale o permixo r-x da máscara

$ whoami

ana

$ id ana

uid=1001(ana) gid=1001(primaria) grupos=1001(primaria)

$ id carmiña

uid=1003(carmiña) gid=1001(primaria) grupos=1001(primaria)

$ setfacl -m g:primaria:rwx /tmp/COMUN

$ setfacl -m m::rx /tmp/COMUN

$ getfacl /tmp/COMUN

getfacl: Eliminando '/' inicial en nombres de ruta absolutos

# file: tmp/COMUN/

# owner: ana

# group: primaria

user::rwx

group::r-x

group::primaria:rwx #effective:r-x

mask::r-x

other::r-x

$ su - carmiña

$ whoami

carmiña

$ touch /tmp/COMUN/vaibailar.txt

Entón carmiña poderá crear o ficheiro /tmp/COMUN/vaibailar.txt

Non, xa que a máscara efectiva de permisos é r-x


EXPRESIONES REGULARES

Existen rangos y tipos de caracteres predefinidos que podemos


utilizar como:

POSIX ASCII Significado


Caracteres alfanuméricos
[:alnum:] [A-Za-z0-9]
(letras y números)
[:word:] [A-Za-z0-9_] Caracteres alfanuméricos y “_”
[:alpha:] [A-Za-z] Caracteres alfabéticos
[:blank:] [ \t] Espacio y tabulador
[:space:] [ \t\r\n\v\f] Espacios
[:digit:] [0-9] Dígitos
[:lower:] [a-z] Letras minúsculas
[:upper:] [A-Z] Letras mayúsculas
[:punct:] [][!”#$%&’()*+,./:;<=>?@\^_`{\|}~-] Caracteres de puntuación

Por ejemplo, podemos eliminar la primera columna del fichero


con el comando:
~$ sed -r 's/^[[:alnum:]]*\t//' origenes.txt
apellido_paciente Biobanco Tipo_Usher
Castells Barcelona Usher2A
...

Las expresiones regulares además de ser útiles para buscar


patrones sirven para sustituirlos. Por ejemplo, podemos sustituir
madrid por Madrid con el siguiente comando (ojo con esto solo
sustituye la primera aparición):
~$ sed -r 's/madrid/Madrid/' origenes.txt
...
Albacete Blanca Madrid usher2
Madrid Cardosa madrid usher1a
...
Ya vimos que si queríamos que la expresión se utilizase
más de una vez en cada línea debíamos utilizar el
modificador “g”:
~$ sed -r 's/madrid/Madrid/g' origenes.txt
...
Albacete Blanca Madrid usher2
Madrid Cardosa Madrid usher1a
...

Si lo que queremos es guardar el patrón encontrado para


utilizarlo en la sustitución debemos utilizar paréntesis. Los
paréntesis indican que lo que hay dentro de ellos debe ser
recordado para poder utilizado en la substitución. Por
ejemplo, podríamos permutar las columnas 1 y 2 del
fichero con el comando:
~$ sed -r 's/^([[:alnum:]]*)\t([[:alnum:]_]*)/\
2\t\1/' origenes.txt

- Busqueda en la configuración de la interfaz, y muestra de


las IP que aparezcan
Ifconfig | grep –Eo ‘([[:xdigit:]]{3}\.){3}[[:xdigit:]]{3}’
- Busqueda de las entradas Valencia o Castellon, en el
fichero fich.txt.
Grep –E ‘Valencia|Castellon” fich.txt

La barra vertical (|) separa las expresiones alternativas. En este


caso significa que la palabra encontrada puede ser Valencia o
Castellón.

.  =  cualquier carácter
* =  0 o más ocurrencias del patrón anterior
+ = 1 o más ocurrencias del patrón anterior
? = 0 o 1 coincidencia de la expresión regular anterior
- Busqueda en fich.txt, cualquier palabra que comience por
a, en el lmedio cualquier carácter y finalice por c.
Grep –E “^a.*c$” fich.txt
- Busqueda del patrón “rfc” dentro de una palabra,
dejando el cursor a la espera de una entrada.
Grep –o [rfc]
- Sobre la url ww.google.es, reemplazar ww por 2www
Echo “ww.google.es” | sed –r ‘s|(ww)|\1s\2www’
- Sobre la url http://www.google.es, reemplazar http por
https, www por 2www y .es por .com y añadir .org al
final.
Echo http://www.google.es | sed –r ‘s|(http)(://)(www)
(.google)(.es)|\1s\https\3s\2www\5s\(.com)\5s.org’

Para hacer una búsqueda con grep, a tener en cuenta:

- Grep –Eo ‘[[:digit:]]’ fich.txt

Muestra sólo la coincidencia con el patrón


- Grep –E ‘[[:digit:]]’ fich.txt

Muestra toda la línea con la coincidencia del patrón

1. Buscar las líneas en las que aparece la palabra bash en el archivo


/etc/passwd.
~$ grep 'bash' /etc/passwd

2. Buscar en el archivo /etc/group todas las líneas que empiezan por m.


~$ grep '^m' /etc/group

3. En el fichero anterior imprimir todas las líneas que no empiezan por m.


~$ grep -v '^m' /etc/group

4. ¿Cuántos ficheros README hay en los subdirectorios de


/usr/share/doc?
~$ ls -R /usr/share/doc | grep '^README$' | wc -l
5. ¿Qué ficheros o directorios en /etc continen un número en el nombre?
~$ ls /etc/ | grep '[0-9]'

6. Seleccionar los pacientes enviados por el hospital de Castellón.


~$ grep --color -E '^[cC]astell[oó]n' origenes.txt
~$ grep --color -iE '^castell[oó]n' origenes.txt

7. Seleccionar los que vienen del Biobanco de Barcelona.


~$ grep --color -iE '.Barcelona' origenes.txt

8. Buscar los pacientes que no tienen Usher3.


~$ grep --color -iE 'usher[^3]' origenes.txt

9. En el fichero de pacientes de Usher hay algunas líneas separadas por


espacios y otras por tabuladores, cambiar todos los separadores a
comas.
~$ sed -r 's/[[:blank:]]+/,/g' origenes.txt

10. Recuperar aquellas plantas numeradas con 1 o con 3 dígitos.

11.   ~$ grep --color -E 't[0-9]{1} |t[0-9]{3} '


caracterizacion_plantas.txt

12. Añadir ceros al identificador de las plantas para que tengan todos 3
dígitos.

13.   ~$ sed -r 's/t([0-9]{1}) /t00\1 /g'


caracterizacion_plantas.txt | sed -r 's/t([0-9]{2})
/t0\1 /g'

14. Construir un nuevo fichero que incluya solo las filas sin datos faltantes.

15.   ~$ grep -iE 'plant[0-9]* [0-9]+\.?[0-9]* [0-9]+\.?


[0-9]* [0-9]+\.?[0-9]*' numbers.txt

O con una versión más sencilla:

  ~$ grep --color -iE '^plant[0-9]*( [0-9]\.[0-9]){3}'


numbers.txt
EJEMPLO 3
En el comando:
$ ls *a

la expresión regular *a representa a cualquier archivo terminado en a.


Después de expandirse la expresión regular, el comando que realmente se
ejecuta podría ser:
$ ls a

carta música rosa

con lo que visualizaríamos los nombres de los ficheros “a”, “carta” y


“rosa” y el listado del directorio “música”.

>> Si no deseamos ver el contenido de los directorios, podemos usar:


$ ls -d *a
$ echo *a
$ find -name "*a" -maxdepth 1

EJEMPLO 4
Visualizar todos los archivos a partir de /etc que tienen extensión .conf:
$ find /etc -name "*.conf"

EJEMPLO 5
Listado de archivos que tengan la letra a minúscula en su nombre:
$ ls -d *a*

EJEMPLO 6
Mover todos los archivos de extensión txt, que comiencen por prov y
entre medias tengan exactamente 2 caracteres cualquiera. Por
ejemplo: prov01.txt, provAA.txt, prov5F.txt, …, al directorio provincias:
$ mv prov??.txt provincias
Chmod
#Engadir todos os permisos(rwx) ao directorio tmp/permisos
e a tódolos ficheiros e subdirectorios pertencentes a
tmp/permisos.
Chmod –R 777 /tmp/permisos
Chmod –R a+rwx /tmp/permisos

#Engadir o permiso SUID(4000) e todos os permisos(rwx) ao


usuario propietario do directorio /tmp/permisos e a tódolos
ficheiros e subdirectorios pertencentes a /tmp/permisos,
- os permisos de lectura e execución(5=4+0+1=r-x) ao
grupo propietario de /tmp/permisos e de tódolos
ficheiros e subdirectorios pertencentes a /tmp/permisos,
- e ningún permiso(0=---) a terna de permisos outros
(resto do mundo) de /tmp/permisos e de tódolos
ficheiros e subdirectorios pertencentes a /tmp/permisos.
Chmod –R 4750 /tmp/permisos

Práctica: chmod e ligazóns simbólicas


#Crear a ligazón simbólica /tmp/permisos/lsimb1.txt, é dicir,
crear un acceso directo /tmp/permisos/lsimb1.txt que apunte
a /tmp/permisos/1.txt
Ln –s /tmp/permisos/1.txt /tmp/permisos/lsimb1.txt
#Listar de forma extendida cos inodos o ficheiro
/tmp/permisos/1.txt e a ligazón simbólica
/tmp/permisos/lsimb1.txt
Ls –li /tmp/permisos/1.txt /tmp/permisos/lsimb1.txt
En los enlaces simbólicos, los inodos son diferentes. No es como en el
caso de los enlaces duros.
#Non cambiar os permisos da ligazón simbólica lsimb1.txt
senón os permisos do ficheiro a que apunta 1.txt, é dicir,
elimina o permiso de lectura ao usuario propietario do ficheiro
1.txt
Chmod u+wx /tmp/permisos/lsimb1.txt: esto no cambia los
permisos sobre el enlace simbólico, sino que lo cambia sobre el
original al que apunta.
Si queremos cambiarlo en el enlace simbólico:

Chmod –h u+wx /tmp/permisos/lsimb1.txt

Chown, Chgrp - root


- Cambiar el propietario de un fichero- OJO CON ROOT

Sudo su –

Chown user. Fich.txt


Chown user: Fich.txt

De modo recursivo, sobre carpetas:


Chown –R .group carpeta
Chown –R :group carpeta

- Listar solamente los permisos de la carpeta permisos,


pero no las de sus contenidos:

Ls –ld permisos

- Cambiar el grupo propietario de permisos y subcarpetas

Chgrp –R grupoProp permisos


Chown –R .grupoProp permisos
Chown, chrgr

Además, chown solo se puede usar con root o el usuario propietario.


Chown puede cambiar usuario y grupo de enlaces simbólicos:
- chown user enlace_simbolico (cambiaria el usuario del archivo original)
- chown –h user enlace_simbolico (cambiar el usuario del enlace simbolico)
- chown –R user.group directorio

Diferencia entre df y du

Los comandos df y du pueden parecerse pero son completamente diferentes. Vamos a ver


ejemplos:

 Df: Uso de los sistemas de ficheros.

Mediante df vemos el uso de los sistemas de ficheros, sin opciones obtendríamos:

# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 10160436 1407160 8241208 15% /
tmpfs 1009108 0 1009108 0% /dev/shm
/dev/mapper/local-home
28899452 15885616 11546164 58% /home
/dev/mapper/local-www
25803068 4970604 19521744 21% /var/www
/dev/mapper/local-log
5160576 209984 4688448 5% /var/log
/dev/mapper/local-usrlocal
10321208 2859660 6937260 30% /usr/local

Personalmente suelo usar dos opciones para modificar su salida:


 -h: Salida human-readable para mostrar los tamaños con su unidad más próxima
 -P: Formato portable, para evitar que haga saltos de línea en caso que sea larga.
Resulta muy útil si tenemos que usar df en un script, pero personalmente prefiero evitar
los saltos de línea así que me he acostumbrado a dicho formato
Su salida sería:

# df -hP
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.7G 1.4G 7.9G 15% /
tmpfs 986M 0 986M 0% /dev/shm
/dev/mapper/local-home 28G 16G 12G 58% /home
/dev/mapper/local-www 25G 4.8G 19G 21% /var/www
/dev/mapper/local-log 5.0G 206M 4.5G 5% /var/log
/dev/mapper/local-usrlocal 9.9G 2.8G 6.7G 30% /usr/local

 Du: ocupación del disco

En el caso de du, lo que mide es la ocupación de disco. Por ejemplo, si tenemos un


determinado directorio y queremos saber cuánto ocupa deberemos usar du:

# du /var/log/
640 /var/log/audit
48 /var/log/cups
4 /var/log/mail
4 /var/log/httpd
(...)
5252 /var/log/

Algunas opciones útiles son:


 -s: Para obtener únicamente la suma total, en lugar del tamaño de cada directorio que
encuentre
 -h: human-readable, para obtener el tamaño con su unidad más próxima
 -x: No cruzar sistemas de ficheros, para calcular el tamaño que ocupa sin sumar los
puntos de montaje

# du -sh /var/log/

el -sh significa que queremos el gran total ( s: sumarizar) y que utilice letras para
definir los tamaños, MB, GB, etc.

 OJO CON LAS DIFERENCIAS: du marca espacio que ocupa en disco, y ls el


tamaño aparente

Debemos tener en cuenta que du (disk usage) calcula el espacio en disco, por lo que en
caso que creemos un fichero que ocupe únicamente el espacio que use  veremos
tamaños diferentes con un ls que con du. Por ejemplo, creamos dicho fichero:
dd if=/dev/zero of=/var/storage/vm/vm01.dsk.root \
bs=1 count=1 seek=1073741824

Mediante ls veremos el tamaño aparente:

$ ls -l vm01.dsk.root
-rw-rw-r-- 1 jprats jprats 1073741825 Jul 18 06:04 vm01.dsk.root

Mientras que con du veremos la ocupación en disco:

$ du -h vm01.dsk.root
4.0K vm01.dsk.root

Para usar du con los tamaños aparentes en lugar de los tamaños reales en disco
deberemos usar la opción –apparent-size:

$ du --apparent-size -h vm01.dsk.root
1.1G vm01.dsk.root

RAID – mdadm – RAID por software


Una nueva herramienta para la gestión de RAID mediante software en Linux

 --create: Creación de RAID

#Crear un volumen RAID0 en /dev/md0 usando a partición /dev/loop0p1 e o


dispositivo /dev/loop1.

# yes |
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/loop0p1 /dev/loop1

#Crear un volumen RAID1 en /dev/md1 usando a partición /dev/loop0p2 e o


dispositivo /dev/loop2.
# yes |
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/loop0p2 /dev/loop2

#Crea un RAID 2, con métodos cortos e indicando el tamaño del pedazo o chunk
size:

# mdadm -Cv /dev/md0 -l0 -n2 -c128 /dev/sdb1 /dev/sdc1

-C selecciona el modo --create, he incluido la opción -v para activar la salida verbosa. -l y -n especifican el nivel

RAID y el número de discos. Se puede cambiar el tamaño del pedazo (chunk size) por defecto (64KB) utilizando

la opción --chunk o -c. En el ejemplo anterior he fijado el chunk size a 128KB. 

En este ejemplo crearé un RAID-5 con cinco discos y un tamaño de chunk de 128KB:

# mdadm -Cv /dev/md0 -l5 -n5 -c128 /dev/sd{a,b,c,d,e}1


mdadm: layout defaults to left-symmetric
mdadm: array /dev/md0 started.

 --query, --detail, /proc/mdstat: Escanear e amosar información RAID

Amosa información reducida sobre o volume RAID /dev/md0


# mdadm --query /dev/md0
Amosa información extendida sobre o volume RAID /dev/md0
# mdadm --detail /dev/md0
Amosa información sobre o estado actual do volume RAID /dev/md0
# cat /proc/mdstat

 (--fail, --remove)Quitar/Engadir(--add) discos ao RAID


#Quitar o dispositivo/dev/loop2 do RAID: Para quitar o dispositivo /dev/loop2 do
RAID, éste debe estar en estado fallido (fail), co cal provocamos este estado para poder
quitalo.

# mdadm --fail /dev/md1 /dev/loop2

# cat /proc/mdstat

# mdadm --remove /dev/md1 /dev/loop2


#Quitamos o dispositivo fallido /dev/loop2 do RAID

# cat /proc/mdstat

# mdadm --add /dev/md1 /dev/loop2


#Engadir dispositivo /dev/loop2 do RAID
 Formatear o RAID

# mkfs.ext4 -L 'RAID0' /dev/md0


#Formatear en ext4 o volume RAID0 etiquetado como RAID0.

# mkfs.ext4 -L 'RAID1' /dev/md1


#Formatear en ext4 o volume RAID1 etiquetado como RAID1.

- Montar RAID

# mkdir -p /media/raid0 && mkdir -p /media/raid1


#Crear os cartafoles /media/raid0 e /media/raid1

# mount /dev/md0 /media/raid0


#Montar o volume RAID0 en /media/raid0

# mount /dev/md1 /media/raid1


#Montar o volume RAID1 en /media/raid1

# mount | grep raid


#Amosar dispositivos montados que concordan co patrón raid

# cp -pv /etc/passwd /media/raid0


#Copiar o ficheiro /etc/passwd en /media/raid0

# df -h | grep raid0
#Ver a utilización do espazo en disco do volume RAID0

# umount /media/raid0 /media/raid1


#Desmontar /media/raid0 e /media/raid1

- --stop (-S), --remove, --zero-superblock: Eliminación de volumes RAID

# mdadm --stop /dev/md0


#Asegurarse de parar o volume RAID0 antes de eliminalo

# mdadm --remove /dev/md0


#Eliminar volume RAID0

# mdadm --zero-superblock /dev/loop0p1 /dev/loop1


#Liberar a asociación de dispositivos ao volume RAID0

# mdadm --stop /dev/md1


#Asegurarse de parar o volume RAID1 antes de eliminalo

# mdadm --remove /dev/md1


#Eliminar volume RAID1
# mdadm --zero-superblock /dev/loop0p2 /dev/loop2
#Liberar a asociación de dispositivos ao volume RAID1

 /etc/mdadm.conf

/etc/mdadm.conf es el principal fichero de configuración de mdadm.

- mdadm no depende de /etc/mdadm.conf para crear o gestionar arrays.

- En su lugar, mdadm.conf es simplemente una manera adicional de seguir la pista a los dispositivos

RAID software. Utilizar un fichero de configuración con mdadm es útil pero no necesario.

- Tener uno significa que usted puede gestionar los arrays de forma ágil sin invertir tiempo en descubrir

qué propiedades tienen y dónde están los discos.

- Por ejemplo, si un array no está en marcha y no existe el fichero mdadm.conf describiéndolo, entonces

el administrador del sistema debe invertir tiempo en examinar cada disco para determinar sus

propiedades y miembros.

Las líneas que comienzan con DEVICE especifican una lista de dispositivos que son candidatos a formar parte

del array. La líneas que comienzan con ARRAY especifican dispositivos array además de información de

identificación. Un fichero de configuración mdadm.conf sencillo puede parecerse a:

DEVICE /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1


ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1
ARRAY /dev/md1 devices=/dev/sdc1,/dev/sdd1

También se puede consultar la información de un RAID mediante:


Amosa información reducida sobre o volume RAID /dev/md0
# mdadm --query /dev/md0
Amosa información extendida sobre o volume RAID /dev/md0
# mdadm --detail /dev/md0

Consultar todos los RAID, sin fichero conf


# mdadm --detail --scan
ARRAY /dev/md0 level=raid0 num-devices=2 \
UUID=410a299e:4cdd535e:169d3df4:48b7144a

Si hubiera múltipes arrays ejecutándose en el sistema, entonces mdadm generaría una linea array para cada

uno. Así que, una vez que haya construido sus arrays, puede redirigir la salida de mdadm --detail --scan a /
etc/mdadm.conf. Sólo tiene que asegurarse de crear manualmente una entrada DEVICE. Utilizando el ejemplo

anterior podemos tener un /etc/mdadm.conf con el siguiente aspecto:

DEVICE /dev/sdb1 /dev/sdc1


ARRAY /dev/md0 level=raid0 num-devices=2 \
UUID=410a299e:4cdd535e:169d3df4:48b7144a

 Iniciar un RAID
Si se ha creado el fichero /etc/mdadm.conf, iniciar el dispositivo /dev/md0 que contiene el RAID:

# mdadm -As /dev/md0


mdadm: /dev/md0 has been started with 2 drives.

- La opción -A se refiere al modo Assemble, también puede utilizar --assemble.


- La opción -s o --scan indican a mdadm que mire en /etc/mdadm.conf,  para  informarse sobre los
arrays y los dispositivos.
- Iniciar todos los arrays listados en /etc/mdadm.conf: (no se le especifica un dispositivo en la línea de
comandos)

# mdadm -As
Si NO se ha creado el fichero /etc/mdadm.conf, iniciar:

# mdadm -A /dev/md0 /dev/sdb1 /dev/sdc1

- Para examinar antes, y saber cómo están organizados, ya que no tenemos el fichero de configuración
(-E o --examine):

- # mdadm -E /dev/sdc1
/dev/sdc1:
Magic : a92b4efc
Version : 00.90.00
UUID : 84788b68:1bb79088:9a73ebcc:2ab430da
Creation Time : Mon Sep 23 16:02:33 2002
Raid Level : raid0
Device Size : 17920384 (17.09 GiB 18.40 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0

Por ejemplo, para añadir un disco a un array activo:

# mdadm /dev/md0 --add /dev/sdc1

O para eliminar /dev/sdc1 de /dev/md0 intente:

# mdadm /dev/md0 --fail /dev/sdc1 --remove /dev/sdc1

Observe que primero he marcado /dev/sdc1 como averiado y después lo hemos elimi-


nado.
Monitorizando arrays
El siguiente comando monitorizará /dev/md0 (consultando su estado cada 300
segundos) en busca de eventos críticos. Cuando ocurre un error faltal, mdadm
enviará un correo al sysadmin. Puede ajustar el intérvalo de consulta y la
dirección de correo de acuerdo a sus necesidades.

# mdadm --monitor --mail=sysadmin --delay=300 /dev/md0

Cuando se utiliza el modo monitor, mdadm no termina, así que tal vez quiera
envolverlo con un nohup (siga ejecutándose aunque se cierre la sesión) y un &.

# nohup mdadm --monitor --mail=sysadmin --delay=300 /dev/md0 &

Loop device – dispositivos de bloques – losetup -ROOT


dev/loop* son dispositivos de bucle que hacen que los archivos simples sean accesibles como dispositivos de
bloque. 

En sistemas operativos Unix-like, un loop device, vnd (vnode disk) o lofi (loop file


interface)
- es un dispositivo virtual que hace que se pueda acceder a un fichero como
un dispositivo de bloques.

- losetup -d : Desconectar dispositivos loop

# for i in 0 1 2; do losetup -d /dev/loop${i};done


#Desmontar e desenlazar os dispositivos /dev/loop0, /dev/loop1 e /dev/loop2

# losetup -a
#Amosar tódolos dispositivos loop enlazados.

parámetros:

 -d dispositivo extraíble.
 -e <cifrado> Iniciar cifrado codificación.
 -o <número de traducción> Establecer el número de conversión
de datos.

ROOT:
# losetup -f --show file1.img: o ficheiro file1.img poderá ser tratado
como un dispositivo por bloques, no primeiro dispositivo /dev/loop que
se atope libre
#losetup /dev/loop0 file1.img: convierte el fichero file1.img como un
dispositivo de bloque, dentro del dispositivo devloop0

Ejemplos
(1) Crear un archivo de imagen de disco vacío, creado aquí un disquete
1.44M

$ dd if=/dev/zero of=floppy.img bs=512 count=2880

(2) utilizar losetup archivo de imagen de disco virtual en un dispositivo


rápido

$ losetup /dev/loop1 floppy.img

(3) se monta todos los dispositivos de bloque

$ mount /dev/loop0 /tmp

Después de los tres pasos anteriores, podemos a través del directorio /


tmp, tales como el acceso rápido a dispositivos reales para acceder a la
misma floppy.img archivo de imagen de disco.
(4) equipos de bucle de desinstalación

$ umount /tmp
$ losetup -d /dev/loop1

MOUNT
Fstab es la tabla del sistema de archivos de su sistema operativo.

/etc/fstab: es parte de la configuración del sistema y lista la lista de:


 discos
 y particiones disponibles
 cat /etc/fstab

 Este fichero monta las particiones listadas al iniciar el equipo con las


configuraciones que tenemos realizadas mediante mount.
$ mount
listado de todos los dispositivos montados.

$ mount –a

monta todos los dispositivos, del fichero fstab, que no están montados

 y aparecen en el fichero /etc/fstab con la opción auto activada.

$ mount –r –t iso9660 /dev/cdrom

monta como sólo de lectura el dispositivo /dev/cdrom,

- como un sistema de ficheros iso9660,

tomando como punto de montaje el directorio especificado en el fichero


/etc/fstab. (Si el dispositivo /dev/cdrom no apareciera en el fichero /etc/fstab se
produciría un error).

$ mount –t ext2 /dev/hdb2 /temp/aux

monta la segunda partición del segundo disco duro (/dev/hdb2), que contiene un fs ext2,
en el directorio /temp/aux.

Particiones disco duro:


- /dev/hda primera (particiones /dev/hda1, /dev/hda2, .. )
$mount /dir
Monta

then mount looks for a corresponding mountpoint (and then, if not found, for a


corresponding device) entry in the /etc/fstab file, and attempts to mount it.

Con la opción –o se pueden incluir más opciones, por ejemplo, las que se especifican
en el fichero /etc/fstab: user, dev, auto, defaults, etc. Algunas de ellas interesantes son:

 -remount Intenta montar un sistema de ficheros ya montado


 -loop Permite montar un fichero como si se tratara de un dispositivo

$ mount -t iso9660 -o ro,loop ~/imagen.iso /media/cdrom

$umount /dev/fd1

desmonta la unidad de disquete B.

$umount /dev/sda1
Desmontar un dispositivo usb montado en nuestro ordenador
Nota: sda1 en el caso de que este montado asi, es posible que este montado en en
sda2 por ejemplo. Siendo root usando el comando fdisk -l podemos ver si esta en
/dev/sda1 o en /dev/sda2 o en cualquier otro.
$umount /mnt/win

desmonta el dispositivo que hubiese sido montado en el directorio /mnt/win.


$umount -a

permite desmontar todas las unidades


$umount –t vfat

desmontar todas los sistemas montados del tipo vfat.

PRACTICA:
# mount -o loop file.iso /media/cdrom0 #Montar dispositivo iso en /media/cdrom0.

# cd && umount /media/cdrom0 #Desmontar /media/cdrom0.

# dd if=/dev/zero of=file1.raw bs=1MiB count=100 #Crear un ficheiro file1.raw que


contén todos ceros no directorio actual cun tamaño de 100MiB.

# dd if=/dev/zero of=file2.raw bs=100MiB count=2 #Crear un ficheiro file2.raw que


contén todos ceros no directorio actual cun tamaño de 200MiB.

# losetup -f --show file1.raw #Enlazar a file1.raw o primeiro dispositivo loop libre (-f),
e amosando cal é (--show).

# losetup -a #Amosar tódolos dispositivos loop enlazados.

# mount -o loop file.iso /media/cdrom0 #Montar dispositivo iso en /media/cdrom0.

# losetup -a #Amosar tódolos dispositivos loop enlazados.

# cd && umount /media/cdrom0 #Desmontar /media/cdrom0.

# parted --script /dev/loop0 mklabel msdos #Crear a etiqueta de disco ao dispositivo


/dev/loop0 sen ter que acceder ao prompt de parted

# parted --script /dev/loop0 mkpart primary 0 50% #Crear unha partición primaria co
primeiro 50% do dispositivo /dev/loop0 sen ter que acceder ao prompt de parted

# parted --script /dev/loop0 mkpart primary 50% 100% #Crear unha partición primaria
co último 50% do dispositivo /dev/loop0 sen ter que acceder ao prompt de parted

# ls -lah /dev/loop0* #Listar o dispositivo /dev/loop0 e as súas particións (xeradas


anteriormente): /dev/loop0p1, /dev/loop0p2

# mkfs.ext4 -L 'parte1loop0' /dev/loop0p1 #Formatear en ext4 a partición /dev/loop0p1


etiquetada como parte1loop0.

# mkfs.ext4 -L 'parte2loop0' /dev/loop0p2 #Formatear en ext4 a partición /dev/loop0p2


etiquetada como parte2loop0.
# mkdir -p /media/loop0/loop0p1 /media/loop0/loop0p2 #Crear cartafoles
/media/loop0/loop0p1 e /media/loop0/loop0p2

# mount /dev/loop0p1 /media/loop0/loop0p1 #Montar /dev/loop0p1 en


/media/loop0/loop0p1

# mount /dev/loop0p2 /media/loop0/loop0p2 #Montar /dev/loop0p2 en


/media/loop0/loop0p2

# mount | grep loop #Amosar dispositivos montados que concordan co patrón loop

# cp -pv /etc/passwd /media/loop0/loop0p1 #Copiar o ficheiro /etc/passwd en


/media/loop0/loop0p1

# umount /media/loop0/loop0p1 /media/loop0/loop0p2 #Desmontar


/media/loop0/loop0p1 e /media/loop0/loop0p2

# losetup -d /dev/loop0 #Desmontar e desenlazar o dispositivo /dev/loop0

ACTIVIDADES (cuestiones losetup y mdadm)


Os dispositivos virtuais loop permiten empregar ficheiros como
dispositivos por bloques?
SI

Se executamos os seguintes comandos:


# whoami
root
# dd if=/dev/zero of=file1.img bs=100MiB count=1
# losetup -f --show file1.img
Entón, o ficheiro file1.img poderá ser tratado como un dispositivo por
bloques no primeiro dispositivo /dev/loop que se atope libre
SI

Se executamos os seguintes comandos:


# whoami
root
# dd if=/dev/zero of=file1.img bs=100MiB count=1
# losetup -a
# losetup /dev/loop0 file1.img
Entón, o ficheiro file1.img poderá ser tratado como un dispositivo por
bloques no primeiro dispositivo /dev/loop
Si
losetup –a: muestra los dispositivos de bloque o dispositivos loop
enlazados
# losetup /dev/loop0 file1.img: convierte el fichero dentro del
dispositivo /dev/loop0, como un dispositivo de bloque
# /sbin/losetup /dev/loop0 file1.img:

Se executamos os seguintes comandos:


$ whoami
ana
$ id ana
uid=1001(ana) gid=1002(primaria) grupos=1002(primaria)
$ dd if=/dev/zero of=file1.img bs=100MiB count=1
$ losetup -f --show file1.img
Entón, o ficheiro file1.img poderá ser tratado como un dispositivo por
bloques no primeiro dispositivo /dev/loop que se atope libre

Podría ser tratado como un dispositivo de bloque en el primer dispositivo


/dev/loop que encuentre, siempre y cuando se ejecute como ROOT.

Se executamos os seguintes comandos:


# mkfs.ext4 -L 'particion1' /dev/loop2p1
# mount /dev/loop2p1 /mnt Entón, na ruta /mnt poderiamos traballar cun
sistema de ficheiros ext4
Si

#mkfs.ext4 -L 'particion1' /dev/loop2p1


# echo '/dev/loop2p1 /mnt ext4 defaults,ro 0 2' >> /etc/fstab
# mount -a
# cp -pv /etc/passwd /mnt
Entón, o ficheiro /etc/passwd será copiado na ruta /mnt
En la primera linea, hace un formateo del la partición al sistema de archivos
ext4.
Segunda: añade una linea a la tabla de discos y particiones, en la que indica
que tanto la partición como la unidad mnt, en sistema de archivos ext4, está
montada como sólo lectura
Tercera: monta todos las particiones en fstab, con auto conf. automática.
Cuarta: intenta copiar un fichero en la unidad mnt (que al ser de solo lectura,
no se puede). El directorio /mnt ha sido montado, pero de solo lectura.

# mkfs.ext4 -L 'particion1' /dev/loop2p1


# fsck -y /dev/loop2p1
Entón, o último comando chequeará o sistema de ficheiros de
/dev/loop2p1 e intentará se é o caso arranxar o sistema de ficheiros de
forma automática
Si

Se executamos os seguintes comandos:


# whoami
root
# dpkg -l mdadm parted
Deseado=desconocido(U)/Instalar/eliminaR/Purgar/retener(H)
| Estado=No/Inst/ficheros-Conf/desempaqUetado/medio-conF/medio-inst(H)/espera-disparo(W)/
pendienTe-disparo
|/ Err?=(ninguno)/requiere-Reinst (Estado,Err: mayúsc.=malo)
||/ Nombre Versión Arquitectura Descripción
+++-======-==============-=============-===========
ii mdadm 3.3.2-5+deb8u2 amd64 tool to administer Linux MD arrays (software RAID)
ii parted 3.2-7 amd64 disk partition manipulator
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 loop2p1[1] loop1p1[0]
102272 blocks super 1.2 [2/2] [UU]
unused devices:
# mdadm --stop /dev/md0
# mdadm --remove /dev/md0
# mdadm --zero-superblock /dev/loop2p1 /dev/loop1p1
Entón, eliminarase un volume RAID 1 con 2 particións, correspondentes respectivamente aos dis-
positivos virtuais /dev/loop1 e /dev/loop2
Si

# losetup -a
# for i in 1 2 ;
do
dd if=/dev/zero of=file${i}.img bs=1MiB count=100
losetup /dev/loop${i} file${i}.img
parted --script /dev/loop${i} mklabel msdos
parted --script /dev/loop${i} mkpart primary 0% 100%
mkfs.ext4 -L "particion${i}" /dev/loop${i}p1
fdisk -l /dev/loop${i}
done
# yes | mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/loop1p1 /dev/loop2p1

Entón, crearase un volume RAID 1 con 2 particións, correspondentes respectivamente aos dispositi-
vos virtuais /dev/loop1 e /dev/loop2
Si
# yes | mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/loop1p1 missing
# mkfs.ext4 -L 'RAID1' /dev/md0

Entón, crearase un volume RAID 1 con 1 partición correspondente a un dispositivo virtual /dev/lo-
op1 e á espera de engadir outro dispositivo
Si

# whoami
root
# umount /mnt/md5
# mdadm --stop /dev/md5
# sed -i '$d' /etc/mdadm/mdadm.conf
# mdadm --zero-superblock /dev/md5 /dev/sdb /dev/sdc /dev/sdd
# sed -i '$d' /etc/fstab
# touch /forcefsck

Entón, se agora reiniciamos o equipo, este arrancará:


Sen problemas e farase un chequeo fsck

Fdisk

Fdisk (válido para fixed disk o format disk),


- es uno de los comandos más importantes, puesto que en caso de
no contar con interfaz gráfica de por medio
- (cosa muy habitual en las distribuciones destinadas a
servidores por el mejor aprovechamiento de los recursos),
- nos ayudará enormemente en la gestión y administración de
nuestro espacio en disco .
- Con esta herramienta podremos crear, eliminar, redimensionar,
cambiar o copiar y mover particiones usando el sencillo menú
que ofrece.
- El límite que existe en esta herramienta está en 4 particiones
primarias como máximo por disco , y un número de particiones
extendidas o lógicas que será variable en función del tamaño de
nuestro disco duro.

- Listar todas las particiones


Para listar todas las particiones existentes en nuestro sistema
pasaremos el argumento “-l”, que hará que se listen ordenadas por el
nombre del dispositivo.
Sudo su -
#fdisk –l
- Copia de seguridad y restauración de la tabla de
particiones
Antes de realizar cambios en un disco duro, es posible que se quiera realizar una copia de
seguridad de la tabla de particiones y el esquema de partición de la unidad. También
puede utilizar una copia de seguridad para copiar el mismo diseño de partición en múltiples
unidades.
Tanto para GPT como para MBR puede utilizar sfdisk para guardar el diseño de partición
de su dispositivo en un archivo con la opción -d/--dump. Para el dispositivo /dev/sda:

# sfdisk -d /dev/sda > sda.dump

Para restaurar posteriormente este diseño:

# sfdisk /dev/sda < sda.dump

- Ver un disco específico


Para ver todas las particiones de un único disco, al comando anterior
añadiremos el nombre de dicho disco, expresado de la forma en la que
se mostraba en la captura anterior, es decir, algo así:
#fdisk –l /dev/sdb
- Borrar una partición
Para borrar una partición en concreto, por ejemplo, /dev/sdb2,

- Seleccionar el disco en el que podemos encontrarla: /dev/sdb.


#fdisk /dev/sdb
- En el menú -> d y w.
- En el menú de fdisk pulsamos ‘d’,
- letra correspondiente a la opción de ‘delete’ o borrar de esta
herramienta,
- tras lo cual se nos pedirá que introduzcamos el número que se le ha
dado a la partición que nos interesa.
- Pulsar ‘w’ (write) para escribir los cambios o confirmar la acción. Los
cambios se aplicarán en el siguiente inicio del sistema.

IMPORTANTE: Eliminar una partición conlleva la pérdida de todos los datos


contenidos en ella, por lo que recuperarlos será “casi” imposible.

- Crear una nueva partición


Si contamos con espacio sin usar en nuestro disco duro,
- podemos asignar ese espacio a una nueva partición.
Primero, seleccionamos el disco duro sobre el que queremos trabajar.

#fdisk /dev/sdb

- En el menú de fdisk, (‘n’, primaria o extendida, 1º y ult cilindro, ‘w’)


- pulsaremos ‘n’ (new o nueva) para crear la nueva partición.
- Seleccionar tipo de partición: ‘e’ - extendida (también llamada lógica)
o ‘p’ - primaria.
- El primer y último cilindro.
- Pulsar ‘w’ (write) para escribir los cambios o confirmar la acción. Los
cambios se aplicarán en el siguiente inicio del sistema.

- Tras crear una nueva partición -> Formatear la partición


Después de haber creado una nueva partición, no debemos olvidar darle formato,
puesto que por defecto no se le aplica, así que introduciremos el siguiente
comando:

#mkfs.ext4 /dev/sdb5

#mkfs.ext4 -L ‘nombre particion’ /dev/sdb5

Mediante .ext4 le estamos indicando a la aplicación qué formato de archivos nos


interesa aplicar a la partición, y he elegido sdb5 (otro valor que podrá variar en
vuestro sistema) por seguir con el ejemplo anteriormente usado.

- Comprobar el tamaño de las particiones


Después de formatear la partición podremos comprobar el tamaño que le
asignamos mediante el argumento ‘-s’ que nos mostrará los bloques que ocupa
la misma.
#fdisk -s /dev/sdb5

También podría gustarte