Tabla de contenidos
Aquí, describo los trucos fundamentales para configurar y gestionar sistemas, principalmente desde la consola.
Existen algunas utilidades que te ayudarán en tu interacción con la consola.
Tabla 9.1. Lista de programas de apoyo a las actividades de la consola
paquete | popularidad | tamaño | descripción |
---|---|---|---|
mc
|
V:48, I:213 | 1490 | Ver Sección 1.3, “Midnight Commander (MC)” |
bsdutils
|
V:560, I:999 | 356 | script (1) command to make a record of terminal session |
screen
|
V:77, I:240 | 997 | Multiplexador de terminal con emulación de terminal VT100/ANSI |
tmux
|
V:39, I:143 | 1110 | alternativa al multiplexor de terminales (utiliza "Control-B" en su lugar) |
fzf
|
V:4, I:14 | 3409 | buscador de texto borroso |
fzy
|
V:0, I:0 | 54 | buscador de texto borroso |
rlwrap
|
V:1, I:14 | 330 | envoltorio de la línea de comando de la función readline |
ledit
|
V:0, I:10 | 315 | envoltorio de la línea de comando de la función readline |
rlfe
|
V:0, I:0 | 42 | envoltorio de la línea de comando de la función readline |
ripgrep
|
V:4, I:16 | 4517 | búsqueda rápida de las cadenas recursivas en el árbol del código fuente con el filtrado automático |
La utilización para el registro de la actividad del intérprete de órdenes,
sin más, de script
(1) (see Sección 1.4.9, “Grabación de las actividades del intérprete de órdenes”) produce un archivo con
caracteres de control. Esto se puede evitar con la utilización de
col
(1) como se muestra.
$ script Script started, file is typescript
Haga lo que quiera ... y pulse Ctrl-D
para finalizar
script
.
$ col -bx < typescript > cleanedfile $ vim cleanedfile
Existen métodos alternativos para registrar las actividades de shell :
Utiliza tee
(solo se puede usar durante el proceso de
arranque en initramfs):
$ sh -i 2>&1 | tee typescript
Utiliza gnome-terminal
con el búfer de línea extendida
para el scrollback.
Utilice pantalla
con "^A H
" (véase
Sección 9.1.2, “El programa screen”) para realizar la grabación de la
consola.
Utiliza vim
con ":terminal
" para
entrar en el modo terminal. Utiliza "Ctrl-W N
" para
salir del modo terminal al modo normal. Utiliza ":w
typescript
" para escribir en el búfer de un archivo.
Usa emacs
con "Mx shell
", "Mx
eshell
" o "Mx term
" para ingresar a la consola
de grabación . Utiliza "Cx Cw
" para escribir en el búfer
de un archivo.
Screen
(1) no solo permite trabajar con múltiples procesos
en un único terminal, si no que también que el
proceso del intérprete de órdenes remoto sobreviva a la interrupción de las
conexiones. Aquí está un escenario típico de utilización de
screen
(1).
Usted acceda a un equipo remoto.
Inici screen
en una única consola.
Ejecute múlitples programas en la ventana de screen
con
^A c
(«Control-A« seguido por «c«).
Puede cambiar entre las múltiples ventanas de screen
con
^A n
(«Control-A« seguido de «n«).
Si repentinamente necesita dejar su terminal, pero no quiere perder su trabajo activo por la mantener la conexión.
Se puede separar la sesión
screen
por cualquier método.
Desconexión forzada de su conexión de red
Pulse ^A d
(«Control-A« seguido de «d«) y cierre
manualmente la conexión remota
Pulse ^A DD
(«Control-A« seguido de «DD«) para que
screen
separe y cierre su sesión
Si inicia la sesión otra vez al mismo equipo remoto (incluso desde un terminal diferente).
Inicie screen
con «screen -r
».
Screen
magicamente reconecta con todas las ventanas anteriores de
screen
con todos los programas activos ejecutandose.
![]() |
Sugerencia |
---|---|
Puede guardar la entrada de la conexión con |
En una sesión de screen
, todas las entradas de teclado
son enviadas a la ventana actual excepto las que son combinaciones de
teclado de órdenes. Todas las combinaciones de teclas de órdenes
screen
se inician pulsando ^A
(«Control-A«) más otra tecla [más algunos parámetros]. Aquí estan algunos
importantes a recordar.
Tabla 9.2. Relación de los atajos de teclado para screen
función | significado |
---|---|
^A ? |
muestra la ayuda de screen (muestra los atajos de teclado) |
^A c |
crea una nueva ventana y cambia a ella |
^A n |
ir a la siguiente ventana |
^A p |
ir a la ventana anterior |
^A 0 |
va a la ventana 0 |
^A 1 |
va a la ventana número 1 |
^A w |
muestra una relación de las ventanas |
^A a |
envia un Ctrl-A a la ventana actual como entrada de teclado |
^A h |
escribe una copia de la ventana actual a un archivo |
^A H |
inicia/finaliza la grabación de la ventana actual a un archivo |
^A ^X |
bloquea la terminal (protegido por contraseña) |
^A d |
separa la sesión de screen de la terminal |
^A DD |
separa la sesión de screen y sale |
Para más detalles consulte screen
(1).
Consulta tmux
(1) para conocer las funcionalidades del
comando alternativo.
En Sección 1.4.2, “Personalización de bash”, se describen 2 sugerencias para
permitir una navegación rápida por los directorios:
$CDPATH
y mc
.
Si utiliza el programa de fuzzy text filter, puede hacerlo sin escribir la
ruta exacta. Para fzf
, incluya lo siguiente en
~/.bashrc
.
FZF_KEYBINDINGS_PATH=/usr/share/doc/fzf/examples/key-bindings.bash if [ -f $FZF_KEYBINDINGS_PATH ]; then . $FZF_KEYBINDINGS_PATH fi FZF_COMPLETION_PATH=/usr/share/doc/fzf/examples/completion.bash if [ -f $FZF_COMPLETION_PATH ]; then . $FZF_COMPLETION_PATH fi
Por ejemplo:
Puedes saltar a un subdirectorio muy profundo con un mínimo esfuerzo.
Primero escribe "cd **
" y pulsa Tab
.
A continuación, se le pedirán las rutas candidatas. Si escribe cadenas de
rutas parciales, por ejemplo, s/d/b foo
, se reducirán las
rutas candidatas. Seleccione la ruta que va a usar cd
con las teclas de cursor y retorno.
Puede seleccionar un comando del historial de comandos de manera más
eficiente con un esfuerzo mínimo. Presione Ctrl-R
en el
símbolo del sistema. Luego le pedirá los comandos candidatos. Escribir
cadenas de comandos parciales, por ejemplo, vim d
,
reducirá los candidatos. Seleccione el que se utilizará con las teclas de
cursor y retorno.
Algunos comandos, como /usr/bin/dash
, que carecen de la
capacidad de edición del historial en la línea de comandos, pueden agregar
dicha funcionalidad de forma transparente si se ejecutan bajo
rlwrap
o sus equivalentes.
$ rlwrap dash -i
Esto proporciona una plataforma conveniente para probar puntos sutiles para
dash
con un entorno amigable similar a
bash
.
El comando rg
(1) en el paquete ripgrep
ofrece una alternativa más rápida al comando grep
(1) para
escanear el árbol de código fuente en busca para situaciones típicas.
Aprovecha las modernas CPU multinúcleo y aplica automáticamente filtros
razonables para omitir algunos archivos.
Después de aprender los conceptos básicos de vim
(1) a
través de Sección 1.4.8, “Usando vim”, lea "Siete hábitos de edición de texto
efectiva (2000) "de Bram Moolenaar, para entender cómo se debe usar
vim
.
![]() |
Atención |
---|---|
No intente cambiar las combinaciones de teclas predeterminadas sin muy buenas razones. |
Se puede cambiar el comportamiento de vim
significativamente habilitando sus características internas a través de los
comandos del modo Ex
como "set ...
"
para establecer opciones de vim.
Estos comandos en modo Ex
se pueden incluir en el archivo
vimrc del usuario, en el tradicional "~/.vimrc
" o en el
compatible con git "~/.vim/vimrc
". He aquí un ejemplo
muy simple [2]:
colorscheme murphy " from /usr/share/vim/vim??/colors/*.vim filetype plugin indent on " filetype aware behavior syntax enable " Syntax highlight "set spelllang=en_us " Spell check language as en_us "set spell " Enable spell check set autoindent " Copy indent from current line set smartindent " More than autoindent (Drop/Pop after {/}) set nosmarttab " <Tab>-key always inserts blanks set backspace=indent,eol,start " Back space through everything set laststatus=2 " Always show status line set statusline=%<%f%m%r%h%w%=%y[U+%04B]%2l/%2L=%P,%2c%V
Se puede habilitar una personalización simple para habilitar modelos seguros e IDE clásico instalando el paquete vim-scripts y agregando lo siguiente al archivo vimrc del usuario.
packadd! secure-modelines packadd! winmanager let mapleader = ' ' " Toggle paste mode with <SPACE>p set pastetoggle=<leader>p " IDE-like UI for files and buffers with <space>w nnoremap <leader>w :WMToggle<CR> " Use safer keys <C-?> for moving to another window nnoremap <C-H> <C-W>h nnoremap <C-J> <C-W>j nnoremap <C-K> <C-W>k nnoremap <C-L> <C-W>l
Para que las combinaciones de teclas anteriores funcionen correctamente, el
programa de terminal ha de configurarse para generar "ASCII DEL" para la
teclaBackspace
y "Secuencia de escape" para la tecla
Delete
.
El nuevo sistema de paquetes nativo de Vim funciona bien con
"git
" y "git submodule
". Puede
encontrar un ejemplo de configuración en my git repository: dot-vim. Esto hace
esencialmente:
Al usar "git
" y "git submodule
", los
últimos paquetes externos, como
"name
", se sitúan en
~/.vim/pack/*/opt/name
y similares.
Agregando la línea :packadd! name
al
archivo vimrc del usuario, estos paquetes se colocan en
runtimepath
.
Vim carga estos paquetes en runtimepath
durante su
inicialización.
Al final de su inicialización, se actualizan las etiquetas de los documentos
instalados con "helptags ALL
".
Para más información, inicie vim
con "vim
--startuptime vimstart.log
" para comprobar la secuencia de
ejecución real y el tiempo usado en cada paso.
Se pueden encontrar interesantes paquetes de complementos externos:
Vim - el editor de texto extendido -- El sitio web oficial de Vim y vim scripts
VimAwsome -- La lista de plugins de Vim
vim-scripts -- Paquete Debian: una colección de scripts de vim
Es bastante confuso ver demasiadas formas [3] de administrar y cargar estos paquetes externos en
vim
. Verificar la información original es la mejor cura.
Tabla 9.3. Información de la inicialización de vim
entradas con el teclado | información |
---|---|
:help package |
explicación sobre el mecanismo del paquete vim |
:help runtimepath |
explicación sobre el mecanismo de runtimepath |
:version |
condiciones internas incluyen candidatos para el archivo vimrc |
:echo $VIM |
la variable de entorno "$VIM " utilizada para situar el
archivo vimrc |
:¿establecer la ruta del tiempo de ejecución? |
lista de directorios en los que se buscarán todos los archivos del soporte del tiempo de ejecución |
:echo $VIMRUNTIME |
la variable del entorno "$VIMRUNTIME " utilizada para
ubicar varios archivos del soporte de tiempo de ejecución proporcionados por
el sistema |
Muchos programas tradicionales registran tus actividades en el formato de un
archivo de texto en el directorio "/var/log/
".
logrotate
(8) se utiliza para simplificar la
administración de los archivos del registro en un sistema que genera muchos
archivos de registro.
Usa emacs
con "Mx shell
", "Mx
eshell
" o "Mx term
" para ingresar a la consola
de grabación . Utiliza "Cx Cw
" para escribir en el búfer
en un archivo.
Puedes registrar los datos en el registro
systemd-journald
(8) desde un script de shell, usando el
comando systemd-cat
(1).
Consulte Sección 3.4, “El sistema de mensajes” y Sección 3.3, “Los mensajes del núcleo”.
Aquí estan los analizadores de trazas más importantes
(«~Gsecurity::log-analyzer
» en
aptitude
(8)).
Tabla 9.4. Relación de analizadores de trazas del sistema
paquete | popularidad | tamaño | descripción |
---|---|---|---|
logwatch
|
V:12, I:15 | 2328 | analizador de trazas con una buena generación de salida escrito en Perl |
fail2ban
|
V:103, I:116 | 2129 | prohibición de las IPs con múltiples errores de acreditación |
analog
|
V:3, I:97 | 3739 | analizador de trazas para servidores web |
awstats
|
V:7, I:11 | 6928 | analizador de trazas para servidores web potente y con diversas funcionalidades |
sarg
|
V:1, I:1 | 845 | generador de informes de análisis de squid |
pflogsumm
|
V:1, I:4 | 109 | generador de resumenes de las trazas de postfix |
fwlogwatch
|
V:0, I:0 | 480 | analizador de trazas de cortafuegos |
squidview
|
V:0, I:0 | 189 | controla y analiza los archivos access.log de squid |
swatch
|
V:0, I:0 | 99 | visor de archivos de trazas con encaje de expresiones regulares, eventos relevantes y reglas |
crm114
|
V:0, I:0 | 1119 | Filtro de spam y filtro mediante expresiones regulares programables (CRM114) |
icmpinfo
|
V:0, I:0 | 44 | intérprete de mensajes ICMP |
![]() |
Nota |
---|---|
CRM114 tiene un lenguaje que permite escribir borrosos filtros con la biblioteca de expresines regulares TRE . Su uso más común es como filtro de correos no deseados pero puede ser utilizado también como analizador de trazas. |
Aunque las herramientas de paginación como more
(1) y
less
(1) (consulte Sección 1.4.5, “El paginador”) y
herramientas personalizadas para marcar y dar formato (see Sección 11.1.8, “Resaltando y dándole formato a información en texto plano”) pueden visualizar
la información en formato texto de la forma correcta, los editores de
propósito general (consulte Sección 1.4.6, “El editor de texto”) son más
versátiles y personalizables.
![]() |
Sugerencia |
---|---|
En |
El formato predeterminado de visualización de la hora y la fecha mediante el
comando "ls -l
" depende de la localidad (véase Sección 1.2.6, “Marcas de tiempo” para
conocer el valor). La variable "$LANG
" es la primera a
la que se hace referencia y puede ser anulada por las variables de entorno
exportadas "$LC_TIME
" o "$LC_ALL
".
El formato de visualización predeterminado real para cada configuración
regional depende de la versión de la biblioteca C estándar (el paquete
libc6
) utilizada. Es decir, diferentes versiones de
Debian tienen diferentes valores por defecto. Para los formatos iso, véase
ISO 8601.
Si de verdad quiere personalizar el formato de visualización de la hora y la
fecha independientemente de la configuración
regional, debería asignar el valor de
estilo de tiempo por el parámetro
«--time-style
» o por el valor de
«$TIME_STYLE
» (consulte ls
(1),
date
(1), «info coreutils 'ls
invocation'
»).
Tabla 9.5. Mostrar los ejemplos de la hora y la fecha para el comando "ls
-l
" con el time style value.
valor del estilo de la hora | configuración regional | visualización de la hora y la fecha |
---|---|---|
iso |
cualquiera | 01-19 00:15 |
long-iso |
cualquiera | 2009-01-19 00:15 |
full-iso |
cualquiera | 2009-01-19 00:15:16.000000000 +0900 |
configuración regional |
C |
Jan 19 00:15 |
configuración regional |
en_US.UTF-8 |
Jan 19 00:15 |
configuración regional |
es_ES.UTF-8 |
ene 19 00:15 |
+%d.%m.%y %H:%M |
cualquiera | 19.01.09 00:15 |
+%d.%b.%y %H:%M |
C o en_US.UTF-8 |
19.Jan.09 00:15 |
+%d.%b.%y %H:%M |
es_ES.UTF-8 |
19.ene.09 00:15 |
![]() |
Sugerencia |
---|---|
Puedes eliminar escribir la opción larga en la línea de comandos usando el alias de comando (ver Sección 1.5.9, “Alias de órdenes”): alias ls='ls --time-style=+%d.%m.%y %H:%M' |
En los terminales más modernos se pueden utilizar colores utilizando secuencias de escape ANSI (consulte
«/usr/share/doc/xterm/ctlseqs.txt.gz
»).
Por ejemplo, intente lo siguiente
$ RED=$(printf "\x1b[31m") $ NORMAL=$(printf "\x1b[0m") $ REVERSE=$(printf "\x1b[7m") $ echo "${RED}RED-TEXT${NORMAL} ${REVERSE}REVERSE-TEXT${NORMAL}"
Órdenes de colores son útiles para la comprobación visual de la salida en
entornos interactivos. Yo añado lo siguiente en mi
«~/.bashrc
».
if [ "$TERM" != "dumb" ]; then eval "`dircolors -b`" alias ls='ls --color=always' alias ll='ls --color=always -l' alias la='ls --color=always -A' alias less='less -R' alias ls='ls --color=always' alias grep='grep --color=always' alias egrep='egrep --color=always' alias fgrep='fgrep --color=always' alias zgrep='zgrep --color=always' else alias ll='ls -l' alias la='ls -A' fi
La utilización de alias limita los efectos del color en el uso de órdenes
interactivas. Tiene ventajas sobre las variables de entorno exportadas
«export GREP_OPTIONS='--color=auto'
» ya que el color
pueder verse en los programas de paginación como
less
(1). Si quiere eliminar el color cuando usa tuberías
con otros programas, utilice «--color=auto
» en su lugar
en los ejemplos anteriores «~/.bashrc
».
![]() |
Sugerencia |
---|---|
Puede deshabilitar los alias de color en un entorno interactivo llamando al
intérprete de órdenes con « |
Puede guardar las actividades del editor con repeticones complejas.
Para Vim, como sigue.
«qa
»: comienza a grabar los caracteres escritos en un
registro llamado «a
».
… actividades del editor
«q
»: finaliza la grabación de los caracteres escritos.
«@a
»: ejecuta el contenido del registro
«a
».
Para Emacs, como sigue.
«C-x (
»: comienza a definir una macro de teclado.
… actividades del editor
«C-x )
»: termina definir una macro de teclado.
«C-x e
»: ejecuta una macro de teclado.
Existen varias maneras de grabar una imagen gráfica de una aplicación X,
incluida una pantalla de xterm
.
Tabla 9.6. Relación de herramientas de manipulación de imágenes
paquete | popularidad | tamaño | pantalla | orden |
---|---|---|---|---|
gnome-screenshot
|
V:19, I:201 | 1134 | Wayland | aplicación de captura de pantalla para GNOME |
flameshot
|
V:7, I:13 | 3364 | Wayland | aplicación de capturas de pantalla con esteroides |
gimp
|
V:50, I:260 | 19877 | Wayland + X | captura de pantalla en el menú GUI |
x11-apps
|
V:29, I:456 | 2476 | X | xwd (1) |
imagemagick
|
I:321 | 176 | X | import (1) |
scrot
|
V:5, I:65 | 131 | X | scrot (1) |
Existen herramientas especializadas para guardar los cambios de los archivos de configuración con la ayuda de DVCS y para hacer instantáneas del sistema en Btrfs.
Tabla 9.7. Relación de paquetes que pueden guardar el histórico de configuración
paquete | popularidad | tamaño | descripción |
---|---|---|---|
etckeeper
|
V:25, I:29 | 164 | almacena los archivos de configuración y sus metadatos con Git (por defecto), Mercurial, o Bazaar (nuevo) |
timeshift
|
V:5, I:9 | 3421 | utilidad de restauración del sistema usando rsync o instantáneas BTRFS |
snapper
|
V:4, I:5 | 2351 | Herramienta de gestión de instantáneas de sistemas de archivos Linux |
También puedes pensar en el enfoque de los script locales Sección 10.2.3, “Copias de seguridad personales”.
Las actividades de los programas pueden ser monitoreados y controlados utilizando herramientas especializadas.
Tabla 9.8. Relación de las herramientas de monitorización y control de las actividades de los programas
paquete | popularidad | tamaño | descripción |
---|---|---|---|
coreutils
|
V:876, I:999 | 18062 | nice (1): ejecuta un programa modificando su prioridad de
planificación |
bsdutils
|
V:560, I:999 | 356 | renice (1): cambia la prioridad de planificación de un
proceso en ejecución |
procps
|
V:750, I:999 | 2163 | «/proc » utilidades del sistema de archivos:
ps (1), top (1),
kill (1), watch (1), … |
psmisc
|
V:404, I:785 | 909 | «/proc » utilidades del sistema de archivos:
killall (1), fuser (1),
peekfd (1), pstree (1) |
time
|
V:8, I:149 | 129 | time (1): ejecuta un programa para crear un informe de los
recursos del sistema utilizados a lo largo del tiempo |
sysstat
|
V:153, I:175 | 1785 | sar (1), iostat (1),
mpstat (1), …: herramientas de optimización del sistema en
Linux |
isag
|
V:0, I:3 | 106 | Graficador Interactivo de la Actividad del Sistema para sysstat |
lsof
|
V:401, I:943 | 482 | lsof (8): enumera la relación de archivos abiertos por un
proceso en ejecución utilizando la opción «-p » |
strace
|
V:12, I:124 | 2875 | strace (1): registro de las llamadas del sistema y señales |
ltrace
|
V:0, I:15 | 330 | ltrace (1): registro a las bibliotecas invocadas |
xtrace
|
V:0, I:0 | 353 | xtrace (1): registra las comunicaciones entre el cliente y
el servidor en X11 |
powertop
|
V:17, I:211 | 669 | powertop (1): información sobre el uso de la potencia por
parte del sistema |
cron
|
V:856, I:996 | 227 | ejecuta procesos en segundo plano de acuerdo a su planificación desde el
dominio cron (8) |
anacron
|
V:383, I:472 | 92 | planficador de tareas similar a cron para los sistemas que no están activos 24 horas al dia |
at
|
V:109, I:171 | 158 | at (1) or batch (1): ejecuta un trabajo
at en un momento determinado o por debajo de cierto nivel de carga |
![]() |
Sugerencia |
---|---|
El paquete |
Muestra el tiempo utilizado por un proceso invocado por la orden.
# time some_command >/dev/null real 0m0.035s # time on wall clock (elapsed real time) user 0m0.000s # time in user mode sys 0m0.020s # time in kernel mode
Un valor de «nice« se utiliza para determinar la prioridad de planificación de los procesos.
Tabla 9.9. Relación de valores de nice para la prioridad de planificación
Valor de nice | prioridad de planificación |
---|---|
19 | proceso de menor prioridad (nice) |
0 | proceso de muy alta prioridad para el usuario |
-20 | proceso de superusuario (no nice) de muy alta prioridad |
# nice -19 top # very nice # nice --20 wodim -v -eject speed=2 dev=0,0 disk.img # very fast
Algunas veces un valor extremo de nice produce más mal que bien al sistema. Utilice esta orden con cuidado.
La orden ps
(1) en un sistema Debian aportan tanto las
funcionalidades de SystemV y BSD y ayuda a identificar la actividad estática
del proceso.
Tabla 9.10. Lista de estilo de la orden ps
estilo | orden típica | funcionalidad |
---|---|---|
BSD | ps aux |
muestra %CPU %MEM |
System V | ps -efH |
visualiza PPID |
Para los procesos hijos zombies (muertos) , los puede eliminar mediante el
identificador del proceso padre que corresponde al campo
«PPID
».
La orden pstree
(1) muestra el árbol de procesos.
top
(1) en el sistema Debian es rico desde el punto de
vista funcional y ayuda a identificar que procesos actuan de forma extraña
puntualmente.
Es un programa a pantalla completa interactivo. Puede obtener ayuda pulsando la tecla «h« y salir pulsando la tecla «q«.
Puede enumerar los archivos abiertos por un proceso con el identificador de proceso (PID), p. ej. 1, con lo siguiente.
$ sudo lsof -p 1
PID=1 generalmente es del programa init
.
Puede trazar la actividad de un programa, invocaciones al sistema, señales,
invocaciones a bibliotecas o comunicaciones entre el cliente y servidor X11,
con strace
(1), ltrace
(1), o
xtrace
(1).
Puede seguir las invocaciones del sistema de la orden ls
con se muestra.
$ sudo strace ls
![]() |
Sugerencia |
---|---|
Usar el script strace-graph ubicado en /usr/share/doc/strace/examples/ para armar una vista de árbol agradable |
También puede identificar procesos utilizando archivos mediante
fuser
(1), p. ej. para
«/var/log/mail.log
» como se muestra.
$ sudo fuser -v /var/log/mail.log USER PID ACCESS COMMAND /var/log/mail.log: root 2946 F.... rsyslogd
Puede ver que el archivo «/var/log/mail.log
» esta abierto
en escritura por la orden rsyslogd
(8).
También puede identificar un proceso por la utilización de sus conexiones
(sockets) mediante fuser
(1), p. ej. para
«smtp/tcp
» como se muestra.
$ sudo fuser -v smtp/tcp USER PID ACCESS COMMAND smtp/tcp: Debian-exim 3379 F.... exim4
Ahora sabe que su sistema ejecuta exim4
(8) con el fin de
gestionar las conexiones TCP del puerto SMTP (25).
watch
(1) ejecuta un programa de forma reiterada a un
intervalo constante mientras muestra la salida del programa a pantalla
completa.
$ watch w
Esto muestra quién está acreditado en el sistema y lo actualiza cada 2 segundos.
Existen varias formas de repetir una orden sobre los archivos que cumplan
una condición, p. ej, encajan en un patrón «*.ext
».
Método del bucle for del intérprete de órdenes (consulte Sección 12.1.4, “Bucles del intérprete de órdenes”):
for x in *.ext; do if [ -f "$x"]; then command "$x" ; fi; done
Combinación de find
(1) y xargs
(1):
find . -type f -maxdepth 1 -name '*.ext' -print0 | xargs -0 -n 1 command
find
(1) con la opción «-exec
» y una
orden:
find . -type f -maxdepth 1 -name '*.ext' -exec command '{}' \;
find
(1) con la opción «-exec
» con un
archivo de órdenes pequeño:
find . -type f -maxdepth 1 -name '*.ext' -exec sh -c "command '{}' && echo 'successful'" \;
Los ejemplos anteriores están escritos para asegurar el correcto tratamiento
de los nombres de archivos que contienen caracteres raros como los
espacios. Para usos avanzados de find
(1) consulte Sección 10.1.5, “Formas de selección de archivos”.
Para el interfaz de órdenes en línea
(CLI), el programa ejecutado será el primero que encaja el nombre en
el directorio especificdo por la variable de entorno
$PATH
. Consulte Sección 1.5.3, “La variable «$PATH
»”.
Para el interfaz gráfico de usuario (GUI) que cumple con el estándar de
freedesktop.org, los archivos
*.desktop
en el directorio
/usr/share/applications/
proporcionan los atributos
necesarios para la visualización de cada programa en el menú del interfaz
gráfico de usuario. Cada paquete que cumple con el sistema de menú xdg de
Freedesktop.org instala sus datos de menú proporcionados por "*. desktop" en
"/usr/share/applications/". Los modernos entornos de escritorio que cumplen
con el estándar Freedesktop.org utilizan estos datos para generar su menú
utilizando el paquete xdg-utils. Ver "/usr/share/doc/xdg-utils/README".
Por ejemplo, el archivo chromium.desktop
define los
atributos para el «Navegador Web Chromium« como «Name« para el nombre del
programa, «Exec« para la ruta de ejecución del programa y parámetros, «Icon«
para el icono utilizado, etc. (consulte la Especificación de Entradas del Escritorio
(Desktop Entry Specification)) como sigue:
[Desktop Entry] Version=1.0 Name=Chromium Web Browser GenericName=Web Browser Comment=Access the Internet Comment[fr]=Explorer le Web Exec=/usr/bin/chromium %U Terminal=false X-MultipleArgs=false Type=Application Icon=chromium Categories=Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https; StartupWMClass=Chromium StartupNotify=true
Esta es una descripción muy simplificadao. Los archivos
*.desktop
son revisados como sigue.
El entorno de escritorio asigna las variables del entorno
$XDG_DATA_HOME
and $XDG_DATA_DIR
. Por
ejemplo, en GNOME 3:
$XDG_DATA_HOME
esta sin asignar. (El valor por defecto
que se utiliza es $HOME/.local/share
.)
$XDG_DATA_DIRS
se le asigna el valor
/usr/share/gnome:/usr/local/share/:/usr/share/
.
Así los directorios base (consulte XDG Base Directory
Specification) y los directorios de aplicaciones
quedan como sigue.
$HOME/.local/share/
→
$HOME/.local/share/applications/
/usr/share/gnome/
→
/usr/share/gnome/applications/
/usr/local/share/
→
/usr/local/share/applications/
/usr/share/
→ /usr/share/applications/
Los archivos *.desktop
se comprueban en estos
directorios de aplicaciones
siguiendo este orden.
![]() |
Sugerencia |
---|---|
Se puede crear una entrada personalizada al menú del interfaz gráfico de
usuario (GUI) añadiendo un archivo |
![]() |
Sugerencia |
---|---|
Igualmente, si se crea un archivo |
![]() |
Sugerencia |
---|---|
De igual manera, si un archivo |
Algunos programas inician otros programa de forma automática. Aquí estan los puntos a compribar para la personalización de este proceso.
Menú de configuración de aplicaciones:
Escritorio GNOME3: «Configuración« → «Sistema« → «Detalles« → «Aplicaciones por defecto«
Escritorio KDE: «K« → «Centro de Control« → «Componenetes KDE« → «Selección de componentes«
Navegador Iceweasel: «Editar→ «Preferencias« → «Aplicaciones«
mc
(1): «/etc/mc/mc.ext
»
Variables de entorno como «$BROWSER
»,
«$EDITOR
», «$VISUAL
» y
«$PAGER
» (ver eviron
(7))
El sistema update-alternatives
(1) para los programas como
«editor
», «view
»,
«x-www-browser
», «gnome-www-browser
»,
and «www-browser
» (consulte Sección 1.4.7, “Configuración del editor de texto por defecto”)
El contenido de los archivos «~/.mailcap
» y
«/etc/mailcap
» que asocia los tiposMIME con los programas (consulte
mailcap
(5))
El contenido de los archivos «~/.mime.types
» y
«/etc/mime.types
» el cual se asocia con la extensión del
nombre del archivo con los tipos MIME (consulte
run-mailcap
(1))
![]() |
Sugerencia |
---|---|
|
![]() |
Sugerencia |
---|---|
El paquete |
![]() |
Sugerencia |
---|---|
Con el fin de ejecutar una aplicación de consola como
# cat /usr/local/bin/mutt-term <<EOF #!/bin/sh gnome-terminal -e "mutt \$@" EOF # chmod 755 /usr/local/bin/mutt-term |
![]() |
Sugerencia |
---|---|
La aplicación GUI se puede ejecutar fácilmente variables del entorno
específicas si el programa para "Exec" en tu archivo
# cat /usr/local/bin/kitty <<EOF #!/bin/sh GLFW_IM_MODULE=ibus exec /usr/bin/kitty "\$@" EOF # chmod 755 /usr/local/bin/kitty Esta secuencia de comandos |
Utilice kill
(1) para matar (o enviar una señal a) un
proceso mediante su identificador de proceso.
Utilice killall
(1) o pkill
(1) para
hacer lo mismo mediante otros atributos como el nombre de la orden del
proceso.
Tabla 9.11. Relación de las señales más usadas con la orden kill
valor de la señal | nombre de la señal | acción | nota |
---|---|---|---|
0 | --- | no se envía ninguna señal (ver matar (2)) |
comprobar si el proceso se está ejecutando |
1 | SIGHUP | terminar el proceso | terminal desconectado (señal bloqueada) |
2 | SIGINT | terminar el proceso | interrumpir desde el teclado (CTRL-C ) |
3 | SIGQUIT | terminar el proceso y dump core | salir desde el teclado (CTRL-\ ) |
9 | SIGKILL | terminar el proceso | Señal de apagado desbloqueable |
15 | SIGTERM | terminar el proceso | Señal de apagado bloqueable |
Ejecute al orden at
(1) para planificar una única
ejecución de un trabajo mediente lo siguiente.
$ echo 'command -args'| at 3:40 monday
Utilice cron
(8) para planificar las tareas de forma
regular. Consulte crontab
(1) y
crontab
(5).
Puede planificar la ejecución de procesos como un usuario normal,
p. ej. foo
creando un archivo
crontab
(5) como
«/var/spool/cron/crontabs/foo
» con la orden
«crontab -e
».
Aquí esta un ejemplo de un archivo crontab
(5).
# use /bin/sh to run commands, no matter what /etc/passwd says SHELL=/bin/sh # mail any output to paul, no matter whose crontab this is MAILTO=paul # Min Hour DayOfMonth Month DayOfWeek command (Day... are OR'ed) # run at 00:05, every day 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # run at 14:15 on the first of every month -- output mailed to paul 15 14 1 * * $HOME/bin/monthly # run at 22:00 on weekdays(1-5), annoy Joe. % for newline, last % for cc: 0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%.%% 23 */2 1 2 * echo "run 23 minutes after 0am, 2am, 4am ..., on Feb 1" 5 4 * * sun echo "run at 04:05 every Sunday" # run at 03:40 on the first Monday of each month 40 3 1-7 * * [ "$(date +%a)" == "Mon" ] && command -args
![]() |
Sugerencia |
---|---|
En los sistemas que no están en funcionamiento ininterrumpido, instale el
paquete |
![]() |
Sugerencia |
---|---|
Para los archivos de órdenes de mantenimiento del sistema, puede ejecutarlos
de forma periódica desde la cuenta de superusuario ubicando esos archivos de
órdenes en « |
Systemd tiene capacidad de bajo nivel para
programar programas para que se ejecuten de fondo cron
.
Por ejemplo, /lib/systemd/system/apt-daily.timer
y
/lib/systemd/system/apt-daily.service
configuran
actividades diarias de descarga de apt. Ver
systemd.timer
(5) .
Presionar Alt-SysRq (PrtScr) seguido de una tecla hace la magia de rescatar el control del sistema.
Tabla 9.12. Lista de teclas notables del comando SAK
tecla seguida de Alt-SysRq | descripción de la acción |
---|---|
k |
kill todos los procesos de la consola virtual actual (SAK) |
s |
sincroniza todos los sistemas de archivos montados para evitar la corrupción de datos |
u |
remonta todos los sistemas de archivos montados como de solo lectura (desmonta) |
r |
recupera el teclado del modo crudo después de que las X fallen |
Obtén más información en Guía del administrador y del usuario del kernel de Linux » Linux Magic System Request Key Hacks
![]() |
Sugerencia |
---|---|
Desde terminales SSH etc., puede utilizar la funcionalidad Alt-SysRq
resribiendo « |
El kernel de Debian amd64 Linux actual (2021) tiene
/proc/sys/kernel/sysrq=438=0b110110110
:
2 = 0x2: habilitar el control del nivel del registro de la consola (ON)
4 = 0x4 - permitir el control del teclado (SAK, unraw) (ON)
8 = 0x8 - habilitar dumps de depuración de procesos etc. (OFF)
16 = 0x10 - habilitar sync command (ON)
32 = 0x20 - habilitar volver a montar solo lectura (ON)
64 = 0x40 - permitir la señalización de procesos (term, kill, oom-kill) (OFF)
128 = 0x80 - permitir reboot/poweroff (ON)
256 = 0x100 - permitir el inicio de todas las tareas RT (ON)
Puede comprobar quién esta en el sistema como se muestra.
who
(1) muestra quién está acreditado.
w
(1) muestra quién esta acreditado y que está haciendo.
last
(1) muestra una lista del último usuario conectado.
lastb
(1) muestra una relación de los últimos intentos
fallidos de acceso a una sesión.
![]() |
Sugerencia |
---|---|
« |
Puede enviar mensajes a cualquiera que esté acreditado en el sistema con
wall
(1) como se muestra.
$ echo "We are shutting down in 1 hour" | wall
El punto de inicio para la identificación de los dispositivos tipo PCI (AGP, PCI-Express, CardBus, ExpressCard, etc.) es la orden
lspci
(8) (preferentemente con la opción
«-nn
»).
Otra forma en la que puede identificar el hardware es leyendo el contenido
de «/proc/bus/pci/devices
» o navegando por el árbol de
directorios que cuelga de «/sys/bus/pci
» (consulte Sección 1.2.12, “procfs y sysfs”).
Tabla 9.13. Relación de las herramientas para la identificación de hardware
paquete | popularidad | tamaño | descripción |
---|---|---|---|
pciutils
|
V:232, I:991 | 212 | Utilidades de Linux para PCI: lspci (8) |
usbutils
|
V:72, I:865 | 320 | Utilidades de Linux para USB: lsusb (8) |
nvme-cli
|
V:11, I:18 | 1486 | Utilidades NVMe para Linux: nvme (1) |
pcmciautils
|
V:7, I:11 | 91 | Utilidades Linux para PCMCIA: pccardctl (8) |
scsitools
|
V:0, I:2 | 375 | colección de herramientas para la gestión de hardware SCSI:
lsscsi (8) |
procinfo
|
V:0, I:8 | 132 | información del sistema obtenida de «/proc »:
lsdev (8) |
lshw
|
V:13, I:91 | 919 | información sobre la configuración hardware: lshw (1) |
discover
|
V:39, I:955 | 98 | sistema de identificación hardware: discover (8) |
Aunque la mayor parte de la configuración del hardware en los sistemas de escritorio con interfaz gráfico de usuario como GNOME y KDE se puede realizar mediante herramientas de configuración con interfaz gráfico de usuario, es una buena idea conocer algunos métodos básicos para su configuración.
Tabla 9.14. Relación de herramientas de configuración hardware
paquete | popularidad | tamaño | descripción |
---|---|---|---|
console-setup
|
V:96, I:966 | 428 | Utilidades de teclado y tipos de letra para consolas |
x11-xserver-utils
|
V:291, I:520 | 576 | Utilidades de servidor X: xset (1),
xmodmap (1) |
acpid
|
V:94, I:170 | 154 | demonio que gestiona los eventos que llegan del Interfaz de Fuerza y Configuración Avanzada (Advanced Configuration and Power Interface, ACPI) |
acpi
|
V:10, I:157 | 47 | utilidad para visualizar información de dispositivos ACPI |
sleepd
|
V:0, I:0 | 86 | demonio que «duerme« el portátil si deja de tener actividad |
hdparm
|
V:206, I:383 | 256 | optimización de acceso al disco duro (consulte Sección 9.6.9, “Optimización del disco duro”) |
smartmontools
|
V:196, I:244 | 2199 | control y monitoreo de sistemas de almacenamiento utilizando S.M.A.R.T. |
setserial
|
V:4, I:7 | 103 | colección de herramientas para la gestión del puerto serie |
memtest86+
|
V:1, I:22 | 12687 | colección de herramientas para la gestión de la memoria hardware |
scsitools
|
V:0, I:2 | 375 | colección de herramientas para la gestión de hardware SCSI |
setcd
|
V:0, I:0 | 37 | optimización de acceso a la unidad de discos compactos |
big-cursor
|
I:0 | 26 | cursores grandes del ratón para X |
Aquí, ACPI es un marco más nuevo para el sistema de gestión de fuerza que APM.
![]() |
Sugerencia |
---|---|
La frecuencia de funcionamiento de la CPU de los sistemas modernos esta
gestionada por módulos en el núcleo como |
Lo siguiente asigna al sistema y hardware la hora y fecha a MM/DD hh:mm CCYY.
# date MMDDhhmmCCYY # hwclock --utc --systohc # hwclock --show
La hora habitualmente se visualiza en la hora local en el sistema Debian pero el hardware y el sistema usa generalmente la hora en UTC(GMT).
Si la hora del hardware está establecida en UTC, cambia la configuración a
"UTC=yes
" en "/etc/default/rcS
".
Lo siguiente reconfigura la zona horaria utilizada por el sistema Debian.
# dpkg-reconfigure tzdata
Si desea actualizar el tiempo del sistema a través de la red, piense en
utilizar el servicio NTP con paquetes como
ntp
, ntpdate
y
chrony
.
![]() |
Sugerencia |
---|---|
En systemd para la sincronización de la hora
a través de la red utilice |
Consulte lo siguiente.
![]() |
Sugerencia |
---|---|
|
Existen diferentes componentes para configura la consola de caracteres y las
funcionalidades del sistema ncurses
(3) system features.
El archivo «/etc/terminfo/*/*
»
(terminfo
(5))
La variable de entorno «$TERM
»
(term
(7))
setterm
(1), stty
(1),
tic
(1) y toe
(1)
Si la entrada terminfo
de xterm
no
funciona con una xterm
que no es de Debian, cambie el
tipo de terminal cambiando «$TERM
» de
«xterm
» a una versión con funcionalidades limitadas como
«xterm-r6
» al autenticarse en el sistema Debian de forma
remota. Para mayor información consulte
«/usr/share/doc/libncurses5/FAQ
».
«dumb
» es el mínimo común denominador para
«$TERM
».
La Arquitectura Avanzada de Sonido para Linux (Advanced Linux Sound Architecture, ALSA) proporciona los controladores de dispositivos de tarjetas de sonido en el actual Linux. ALSA tiene un modo de emulación para ser compatible con el anterior Open Sound System (OSS).
Los software de aplicación pueden configurarse no solo para acceder directamente a los dispositivos de sonido, sino también para acceder a ellos a través de algún sistema de servidor de sonido estandarizado. Actualmente, PulseAudio, JACK y PipeWire se utilizan como sistema de servidor de sonido. Consulte la Página Wiki de Debian sobre sonido para conocer la situación más reciente.
Generalmente existe un motot de sonido común para los entorno de escritorio más populares. Cada motor de sonido utilizado por la aplicación puede elegir conectarse a diferentes servidores de sonido.
![]() |
Sugerencia |
---|---|
Para comprobar el altavoz (speaker) utilice « |
![]() |
Sugerencia |
---|---|
Si no obtiene sonido, su altavoz puede estar conectado a una salida en
silencio. |
Tabla 9.15. Relación de paquetes de sonido
Para deshabilitar el salvapantallas, utilice las siguientes órdenes.
Tabla 9.16. Relación de las órdenes para deshabilitar el salvapantallas
entorno | orden |
---|---|
La consola de Linux | setterm -powersave off |
Las Ventanas X (deshabilitando el salvapantallas) | xset s off |
Las Ventanas X (deshabilitando dpms) | xset -dpms |
Las Ventanas X (configuración por GUI del salvapantallas) | xscreensaver-command -prefs |
Siempre puede desenchufar el altavoz del PC para deshabilitar los
pitidos. Eliminando el módulo del núcleo pcspkr
realiza
ese trabajo por usted.
Lo siguiente impide que el programa readline
(3) utilizado
por bash
(1) pite cuando encuentre un carácter de alerta
(ASCII=7).
$ echo "set bell-style none">> ~/.inputrc
Existen dos recursos disponibles para determinar el uso de la memoria.
El mensaje de arranque del núcleo en «/var/log/dmesg
»
contiene el tamaño exacto de memoria disponible.
free
(1) y top
(1) visualiza la
información de los recursos de memoria en el sistema en ejecución.
Aquí hay un ejemplo.
# grep '\] Memory' /var/log/dmesg [ 0.004000] Memory: 990528k/1016784k available (1975k kernel code, 25868k reserved, 931k data, 296k init) $ free -k total used free shared buffers cached Mem: 997184 976928 20256 0 129592 171932 -/+ buffers/cache: 675404 321780 Swap: 4545576 4 4545572
Se puede sorprender que «dmesg le diga que existen 990 MB libres y free -k dice que solo hay 320 MB libres. Más de 600 MB de diferencia …«.
No se preocupe por el gran tamaño de memoria «utilizada
»
y el pequeño tamaño de memoria «libre
» en la línea
«Mem:
», pero leea lo que hay debajo (675404 y 321780 en
el ejemplo anterior) y relajese.
Para mi MacBook con 1GB=1048576k DRAM (el sistema de video usa algo de esto), tengo lo siguiente.
Tabla 9.17. Relación de informes de tamaño de la memoria
informe | tamaño |
---|---|
Tamaño total en dmesg | 1016784k = 1GB - 31792k |
Memoria libre en dmesg | 990528k |
Total en el intérprete de órdenes | 997184k |
Libre en el intérprete de órdenes | 20256k (pero de forma efectiva 321780k) |
Un mantenimiento inadecuado de su sistema puede exponerlo a ser atacado desde el exterior.
Para la seguridad y las comprobaciones de intergridad, debe comenzar con lo que se muestra.
Para el paquete debsums
, consulte
debsums
(1) y Sección 2.5.2, “Archivo «Release» del nivel superior y autenticación”.
Para el paquete chkrootkit
consulte
chkrootkit
(1).
Para la familia de paquetes clamav
consulte
clamscan
(1) y freshclam
(1).
Tabla 9.18. Relación de las herramientas de seguridad del sistema y comprobación de la integridad
paquete | popularidad | tamaño | descripción |
---|---|---|---|
logcheck
|
V:6, I:8 | 110 | demonio que envía por correo anomalías en los registros del sistema al administrador |
debsums
|
V:5, I:36 | 98 | utilidad para verificar los archivos de los paquetes instalado mediante sumas MD5 |
chkrootkit
|
V:7, I:18 | 924 | detector de rootkit |
clamav
|
V:9, I:47 | 28695 | utilidad anti-virus para Unix - interfaz de línea de órdenes |
tiger
|
V:1, I:2 | 7800 | informa de vulnerabilidades de seguridad del sistema |
tripwire
|
V:2, I:2 | 12088 | comprobador de integridad de archivos y directorios |
john
|
V:1, I:9 | 471 | herramienta para descifrar contraseñas |
aide
|
V:1, I:1 | 289 | Entorno de Detección Avanzado de Intrusión - binario estático |
integrit
|
V:0, I:0 | 2659 | programa de verificación de la integridad del archivo |
crack
|
V:0, I:1 | 152 | programa que adivina contraseñas |
Aquí esta un archivo de órdenes para comprobar el permiso de escritura incorrecto para todos.
# find / -perm 777 -a \! -type s -a \! -type l -a \! \( -type d -a -perm 1777 \)
![]() |
Atención |
---|---|
Ya que el paquete |
El arranque de su sistema Linux con «live CDs« o CDs de instalación de debian en modo rescate hace que sea fácil reconfigurar la información de almacenamiento en su dispositivo de arranque.
Es posible que debas desmontar
(8) algunos dispositivos
manualmente desde la línea de comandos antes de operar en ellos si el
sistema del escritorio GUI los monta automáticamente.
El uso de espacio en disco puede ser evaluado por los programas
proporcionados por los paquetes mount
,
coreutils
y xdu
:
mount
(8) muestra todos los sistemas de archivos (=discos)
montados.
df
(1) muestra el espacio de disco utilizado por el
sistema de archivos.
du
(1) informa del espacio de disco utilizado por el árbol
de un directorio.
![]() |
Sugerencia |
---|---|
Puede utilizar la salida de |
Para la configuración de la partición del disco
, a pesar de que fdisk
(8) fue considerado en el
pasado el estándar, parted
(8) merece nuestra
atención. Las expresiones «datos del particionado del disco«, «tabla de
partición«, «mapa de particiones« y «marcado del disco« son todas ellas
sinónimos.
Los ordenadores más antiguos usan el esquema clásico Master Boot Record (MBR) para almacenar datos del particionamiento del disco en el primer sector, es decir, LBA sector 0 (512 bytes).
Algunos ordenadores modernos con Interfaz de firmware extensible unificada (UEFI), incluidas las Mac basadas en Intel, usan Identificar la tabla de particiones única globalmente (partición GUID Table, GPT) esquema, partición del disco duro los datos no se guardan en el primer sector.
Aunque fdisk
(8) fue la herramienta estándar para el
particionado del disco, ha sido sustituida por parted
(8).
Tabla 9.19. Relación de paquetes para la gestión del particionado del disco
paquete | popularidad | tamaño | descripción |
---|---|---|---|
util-linux
|
V:875, I:999 | 5247 | las utilidades varias del sistema incluyen fdisk (8) y
cfdisk (8) |
parted
|
V:398, I:561 | 122 | Programa de modificación del tamaño de las particiones de disco GNU Parted |
gparted
|
V:13, I:104 | 2175 | Editor GNOME del particionado basado en libparted |
gdisk
|
V:311, I:506 | 885 | editor de particiones para el disco híbrido GPT/MBR |
kpartx
|
V:22, I:34 | 75 | programa para crear mapeos entre dispositivos y particiones |
![]() |
Atención |
---|---|
Aunque |
![]() |
Nota |
---|---|
Para realizar el cambio entre GPT y MBR, necesita eliminar el contenido de unos cuantos
bloques ubicados al principio (consulte Sección 9.8.6, “Limpieza del contenido de los archivos”) y utilice « |
Aunque la reconfiguración de tu partición o el orden de activación de los medios del almacenamiento extraíbles puede dar lugar a diferentes nombres para las particiones, puede acceder a ellos de forma coherente. Esto también es útil si tienes varios discos y tu BIOS/UEFI no les da nombres de dispositivo consistentes.
Mount
(8) con la opción «-U
» permite
montar dispositivos de bloque utilizando UUID,
en lugar de sus nombres de archivo como «/dev/sda3
».
«/etc/fstab
» (consulte fstab
(5)) puede
utilizar UUID.
Los gestores de arranque (Sección 3.1.2, “Fase 2: el cargador de arranque”) pueden utilizar también UUID.
![]() |
Sugerencia |
---|---|
Puede determinar el UUID de un dispositivo
especial de bloque con You can also probe UUID and other information with " |
LVM2 es un gestor de volumenes lógicos del núcleo de Linux. Con LVM2 las particiones de disco se pueden crear en volumenes lógicos en vez de discos duros físicos.
LVM necesita lo siguiente.
soporte de device-mapper en el núcleo Linux (por defecto en los núcleos de Debian)
el soporte de la biblioteca device-mapper en el espacio de usuario (paquete
libdevmaper*
)
herramientas LVM2 del espacio de usuario (paquete lvm2
)
Por favor, para comenzar a aprender LVM2 lea las siguiente páginas de manual.
lvm
(8): Fundamentos del mecanismo LVM2 (relación de todas
las órdenes LVM2)
lvm.conf
(5): archivo de configuración de LVM2
lvs
(8): crea un informe sobre los volúmenes lógicos
vgs
(8): crea un informe sobre los grupos de volúmentes
pvs
(8): crea un informe sobre los volúmenes físicos
Para el sistema de archivos ext4, el paquete
e2fsprogs
aporta lo siguiente.
mkfs.ext4
(8) para crear un nuevo de sistema de archivos
ext4
fsck.ext4
(8) para comprobar y reparar un sistema de
archivos ext4 preexistente
tune2fs
(8) para configurar el superbloque de ext4 filesystem
debugfs
(8) para depurar en modo interactivo el sistema de
archivos ext4. (Existe la orden
undel
para recuperar los archivos borrados.)
Las órdenes mkfs
(8) y fsck
(8) esta en
el paquete e2fsprogs
como interfaz de varios programas
especificos del sistema de archivos (mkfs.fstype
y
fsck.fstype
). Para el sistema de archivos ext4 existen mkfs.ext4
(8) y
fsck.ext4
(8) (esta enlazado a
mke2fs
(8) y e2fsck
(8)).
Las siguientes órdenes están disponibles para cada sistema de archivos que soporta Linux.
Tabla 9.20. Relación de paquetes para la gestión del sistema de archivos
paquete | popularidad | tamaño | descripción |
---|---|---|---|
e2fsprogs
|
V:742, I:999 | 1496 | utilidades para el sistema de archivos ext2/ext3/ext4 |
btrfs-progs
|
V:45, I:72 | 4851 | utilidades para el sistema de archivos Btrfs |
reiserfsprogs
|
V:12, I:26 | 469 | utilidades para el sistema de archivos Reiserfs |
zfsutils-linux
|
V:28, I:29 | 1615 | utilidades para el sistema de archivos OpenZFS |
dosfstools
|
V:180, I:526 | 315 | utilidades para el sistema de archivos FAT. (Microsoft: MS-DOS, Windows) |
exfatprogs
|
V:25, I:318 | 281 | utilidades para el sistema de archivos exFAT mantenido por Samsung. |
exfat-fuse
|
V:7, I:159 | 73 | lectura/escritura exFAT controlador del sistema de archivos (Microsoft) para FUSE. |
exfat-utils
|
V:5, I:148 | 231 | utilidades para el sistema de archivos exFAT mantenidas por el autor de exfat-fuse. |
xfsprogs
|
V:23, I:97 | 3476 | utilidades para el sistema de archivos XFS. (SGI: IRIX) |
ntfs-3g
|
V:196, I:506 | 1470 | lectura/escritura NTFS controlador del sistema de archivos (Microsoft: Windows NT, ...) para FUSE. |
jfsutils
|
V:0, I:8 | 1577 | utilidades para el sistema de archivos JFS. (IBM: AIX, OS/2) |
reiser4progs
|
V:0, I:2 | 1367 | utilidades para el sistema de archivos Reiser4 |
hfsprogs
|
V:0, I:5 | 394 | utilidades para el sistema de archivos HFS y HFS Plus. (Apple: Mac OS) |
zerofree
|
V:5, I:128 | 25 | programa de cero bloques libres para sistemas de archivos ext2/3/4 |
![]() |
Sugerencia |
---|---|
Ext4 es el sistema de archivos por defecto para el sistema Linux y es muy recomendable su uso a menos que tenga una razón concreta para no hacerlo. El estado de Btrfs se puede encontrar en La wiki de Debian en btrfs y la wiki kernel.org wiki en btrfs. Se espera que sea el siguiente sistema de archivos por defecto después del sistema de archivos ext4. Algunas herramientas permiten el acceso al sistema de archivos sin soporte del núcleo de Linux (consulte Sección 9.8.2, “Manipular archivos sin el montaje de discos”). |
La orden mkfs
(8) crea el sistema de archivos en el
sistema Linux. La orden fsck
(8) aporta la comprobación de
integridad al sistema de archivos y la capacidad de reparación al sistema
Linux.
El Debian actual no ejecuta periódicamente fsck
después
de la creación del sistema de archivos.
![]() |
Atención |
---|---|
Normalmente no es seguro ejecutar |
![]() |
Sugerencia |
---|---|
Puede ejecutar la orden Para comprobar la ejecución de la orden |
La configuración estática básica del sistema de archivos se realizan en
«/etc/fstab
». Por ejemplo,
«file system» «mount point» «type» «options» «dump» «pass» proc /proc proc defaults 0 0 UUID=709cbe4c-80c1-56db-8ab1-dbce3146d2f7 / ext4 errors=remount-ro 0 1 UUID=817bae6b-45d2-5aca-4d2a-1267ab46ac23 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
![]() |
Sugerencia |
---|---|
UUID (consulte Sección 9.6.3, “Acceso al particionado utilizando UUID”) puede utilizarse para
identificar los dispositovos de bloque en lugar de los nombres de los
dispositivos de bloque como « |
Desde Linux 2.6.30, el kernel utiliza por defecto el comportamiento
proporcionado por la opción "relatime
".
Ver fstab
(5) y mount
(8).
La caracterización del sistema de archivos puede ser optimizado a través de
su superbloque utilizando la orden tune2fs
(8).
La ejecución de «sudo tune2fs -l /dev/hda1
» muestra el
contenido del sistema de archivos del superbloque de
«/dev/hda1
».
La ejecución de «sudo tune2fs -c 50 /dev/hda1
» cambia la
frecuencia de comprobaciones del sistema de archivos
(fsck
durante el arranque) cada 50 arranques en
«/dev/hda1
».
La ejecución de «sudo tune2fs -j /dev/hda1
» añade la
capacidad del registro de operaciones al sistema archivos, a saber
conversión del sistema de archivos de ext2 a
ext3 en «/dev/hda1
». (Para
ello se necesita que el sistema de archivos este desmontado.)
La ejecución de «sudo tune2fs -O extents,uninit_bg,dir_index
/dev/hda1 && fsck -pf /dev/hda1
» lo convierte de ext3 a ext4 en
«/dev/hda1
». (Realice esto con el sistema de archivos
desmontado.)
![]() |
Aviso |
---|---|
Por favor, compruebe su hardware y lea las páginas de manual de
|
Puede comprobar la velocidad de acceso al disco duro,
p. ej. «/dev/hda
» con «hdparm -tT
/dev/hda
». Algunos discos conectados mediante (E)IDE se puede
mejorar su velocidad con «hdparm -q -c3 -d1 -u1 -m16
/dev/hda
» activando el «soporte I/O (E)IDE 32-bit«, activando la
«bandera using_dma«, asignando la «bandera interrupt-unmask« y activando
«multiple 16 sector I/O« (¡peligroso!).
Puede comprobar la funcionalidad de la escritura de caché del disco duro ,
p. ej. «/dev/sda
», con «hdparm -W
/dev/sda
». Para deshabilitar esta funcionalidad ejecute
«hdparm -W 0 /dev/sda
».
Puede intentar leer CDROMs dañados en dispositivos de lectura de alta
velocidad modernos haciendo que funcionen a menor velocidad con
«setcd -x 2
».
La unidad de estado sólido (SSD) ahora se detecta automáticamente.
Reducir los accesos innecesarios al disco para evitar el desgaste del disco
montando "tmpfs
" en la trayectoria de datos volátil en
/etc/fstab
.
Puede monitorear y registrar el cumplimiento de su disco duro con SMART con el demonio smartd
(8).
Instale el paquete smartmontools
.
Identifique los dispositivos que son discos duros enumerándolos con
df
(1).
Asumamos que el dispositivo de disco duro a controlar es
«/dev/hda
».
Compruebe la salida de «smartctl -a /dev/hda
» para
verificar que la funcionalidad SMART está
activada realmente.
Si no es así, activelo con «smartctl -s on -a /dev/hda
».
Active el demonio smartd
(8) ejecutando lo siguiente.
descomente «start_smartd=yes
» en el archivo
«/etc/default/smartmontools
».
reiniciar el demonio smartd
(8) mediante «sudo
/etc/init.d/smartmontools restart
».
![]() |
Sugerencia |
---|---|
El demonio |
Las aplicaciones habitualmente crean los archivos temporales en el
directorio de almacenamiento temporal «/tmp
». Si
«/tmp
» no proporciona suficiente espacio, puede
especificar el directorio de almacenamiento temporal por medio de la
variable $TMPDIR
para obtener el comportamiento adecuado
de las aplicaciones.
Las particiones creadas mediante el Gertor de Volumenes Lógicos (Logical Volume Manager, LVM) (funcionalidad de Linux) en el momento de la instalación, pueden ser redimensionadas de forma sencilla mediante la concatenación o la extensión de estas sobre varios dispositivos de almacenamiento sin necesitar otras reconfiguraciones del sistema.
Si tiene una partición vacia (p. ej. «/dev/sdx
»), puede
darle formato con mkfs.ext4
(1) y
montarlo
(8) en un directorio donde necesite más
espacio. (Necesitará copiar el contenido de los datos originales.)
$ sudo mv work-dir old-dir $ sudo mkfs.ext4 /dev/sdx $ sudo mount -t ext4 /dev/sdx work-dir $ sudo cp -a old-dir/* work-dir $ sudo rm -rf old-dir
![]() |
Sugerencia |
---|---|
También puede montar un archivo de imagen de disco vacio (consulte Sección 9.7.5, “Haciendo un archivo de imagen de disco vacio”) como un dispositivo «loop« (consulte Sección 9.7.3, “Montaje del archivo de la imagen del disco”). La utilización de disco real crece con el almacenamiento de datos. |
Si tiene un directorio vacio (p. ej. «/path/to/emp-dir
»)
en otra partición con espacio utilizable, puede montar(8)lo con la opción
«--bind
» a un directorio (p. ej.,
«work-dir
») donde necesite más espacio.
$ sudo mount --bind /path/to/emp-dir work-dir
Si tiene espacio útil en otras particiones
(p. ej. «/path/to/empty
» y
«/path/to/work
»), puede crear un directorio en él y
juntarlo con el antiguo directorio (p. ej.,
«/path/to/old
») donde necesita espacio usando el OverlayFS para el kernel de Linux 3.18 o posterior
(Debian Stretch 9.0 or newer).
$ sudo mount -t overlay overlay \ -olowerdir=/path/to/old-dir,upperdir=/path/to/empty,workdir=/path/to/work
Aquí, «/ruta/al/directorio_vacio
» y
«/ruta/al/directorio_de_trabajo
» deben ser una partición
con permisos de lectura y escritura para escribir en
«/ruta/al/directorio_antiguo
».
![]() |
Atención |
---|---|
Este es un método obsoleto. Algún software puede no funcionar bien con "enlace simbólico a un directorio". En su lugar, utilice los enfoques de "montaje" ya descritos. |
Si tiene un directorio vacio (p. ej., «/path/to/emp-dir
»)
en otra partición con espacio utilzable, puede crear un enlace simbólico a
el directorio con ln
(8).
$ sudo mv work-dir old-dir $ sudo mkdir -p /path/to/emp-dir $ sudo ln -sf /path/to/emp-dir work-dir $ sudo cp -a old-dir/* work-dir $ sudo rm -rf old-dir
![]() |
Aviso |
---|---|
No utilice «enlaces simbólicos a directorios« que son gestionados por el
sistema como « |
Aquí hablaremos de la manipulación de imágenes de disco.
El archivo de imagen de disco «disk.img
», de un
dispositivo desmontado, p. ej. el segundo disco SCSI o serial ATA
«/dev/sdb
», puede hacerse utilizando
cp
(1) o dd
(1) como se muestra.
# cp /dev/sdb disk.img # dd if=/dev/sdb of=disk.img
La imagen de disco de un PC tradicional Registro de Arranque Maestro(MBR)
(consulte Sección 9.6.2, “Configuración del particionado de disco”) el cual está en
el primer sector del disco primario IDE puede hacerse mediante
dd
(1) lo siguiente.
# dd if=/dev/hda of=mbr.img bs=512 count=1 # dd if=/dev/hda of=mbr-nopart.img bs=446 count=1 # dd if=/dev/hda of=mbr-part.img skip=446 bs=1 count=66
«mbr.img
»: MBR con la tabla de particiones
«mbr-nopart.img
»: MBR sin la tabla de particiones
«mbr-part.img
»: Unicamente la tabla de particiones MBR
Si su disco de arranque es SCSI o serial ATA, cambie
«/dev/hda
» por «/dev/sda
».
Si ha hecho una imagen del disco de la partición del disco original, cambie
«/dev/hda
» por «/dev/hda1
» etc.
El archivo de la imagen del disco «disk.img
» puede ser
escrito como un dispositivo sin montar, p. ej., el dispositivo SCSI
secundario «/dev/sdb
» con el tamaño adecuado como se
muestra.
# dd if=disk.img of=/dev/sdb
De forma parecida, el archivo de la imagen de la partición del disco,
«partition.img
» puede ser escrito a una partición
desmontada, p. ej., la primera partición del segundo dispositivo SCSI
«/dev/sdb1
» con el tamaño correcto, como se muestra.
# dd if=partition.img of=/dev/sdb1
La imagen del disco «partition.img
» que contiene la
imagen de una única partición puede ser montada y desmontada utilizandolo
como dispositivo «loop« como se muestra.
# losetup -v -f partition.img Loop device is /dev/loop0 # mkdir -p /mnt/loop0 # mount -t auto /dev/loop0 /mnt/loop0 ...hack...hack...hack # umount /dev/loop0 # losetup -d /dev/loop0
Este se puede simplificar como se muestra.
# mkdir -p /mnt/loop0 # mount -t auto -o loop partition.img /mnt/loop0 ...hack...hack...hack # umount partition.img
Cada partición de una imagen de disco «disk.img
» que
contiene varias particiones pueden ser montadas utilizando los dispositivos «loop«. Ya que el dispositivo
«loop« no gestiona particiones por omisión, necesitamos iniciarlo como se
muestra.
# modinfo -p loop # verify kernel capability max_part:Maximum number of partitions per loop device max_loop:Maximum number of loop devices # losetup -a # verify nothing using the loop device # rmmod loop # modprobe loop max_part=16
Ahora, el dispositivo «loop« puede gestionar hasta 16 particiones.
# losetup -v -f disk.img Loop device is /dev/loop0 # fdisk -l /dev/loop0 Disk /dev/loop0: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x452b6464 Device Boot Start End Blocks Id System /dev/loop0p1 1 600 4819468+ 83 Linux /dev/loop0p2 601 652 417690 83 Linux # mkdir -p /mnt/loop0p1 # mount -t ext4 /dev/loop0p1 /mnt/loop0p1 # mkdir -p /mnt/loop0p2 # mount -t ext4 /dev/loop0p2 /mnt/loop0p2 ...hack...hack...hack # umount /dev/loop0p1 # umount /dev/loop0p2 # losetup -d /dev/loop0
De forma, los mismos efectos pueden conseguirse utilizando el mapeo de dispositivos de los dispositivos
creados por kpartx
(8) del paquete
kpartx
como se muestra.
# kpartx -a -v disk.img ... # mkdir -p /mnt/loop0p2 # mount -t ext4 /dev/mapper/loop0p2 /mnt/loop0p2 ... ...hack...hack...hack # umount /dev/mapper/loop0p2 ... # kpartx -d /mnt/loop0
![]() |
Nota |
---|---|
Puede montar una única partición como imagen del disco con dispositivos «loop« utilizando el desplazamiento para evitar el MBR etc., también. Pero es más propenso a errores. |
Un archivo de imagen de disco, «disk.img
» puede ser
limpiado de archivos borrados en una imagen dispersa limpia
«new.img
» como se muestra.
# mkdir old; mkdir new # mount -t auto -o loop disk.img old # dd bs=1 count=0 if=/dev/zero of=new.img seek=5G # mount -t auto -o loop new.img new # cd old # cp -a --sparse=always ./ ../new/ # cd .. # umount new.img # umount disk.img
Si «disk.img
» es ext2, ext3 or ext4, también puede
utilizar zerofree
(8) del paquete
zerofree
como se muestra.
# losetup -f -v disk.img Loop device is /dev/loop3 # zerofree /dev/loop3 # cp --sparse=always disk.img new.img
La imagen de disco vacio «disk.img
» el cual puede crecer
hasta 5GiB, pude hacerse mediante dd
(1) como se muestra.
$ dd bs=1 count=0 if=/dev/zero of=disk.img seek=5G
En lugar de usar dd
(1), se puede usar aquí
fallocate
(8) especializado.
Puede crear un sistema de archivos ext4 en la imagen de disco
«disk.img
» utilizando el dispositivo «loop« como se muestra.
# losetup -f -v disk.img Loop device is /dev/loop1 # mkfs.ext4 /dev/loop1 ...hack...hack...hack # losetup -d /dev/loop1 $ du --apparent-size -h disk.img 5.0G disk.img $ du -h disk.img 83M disk.img
Para «disk.img
», su tamaño de archivo es 5.0 GiB y su
utilización real de disco es de sólo 83MiB. Esta discrepancia es posible ya
que ext4 se puede representar mediante un archivo disperso.
![]() |
Sugerencia |
---|---|
La utilización real de discos que utiliza un archivo disperso crece con los datos que son escritos en el. |
Utilizando la misma operación en dispositivos creados por el dispositivo «loop« o el dispositivo mapeador de dispositivos como Sección 9.7.3, “Montaje del archivo de la imagen del disco”, puede particionar esta imagen de
disco «disk.img
» utilizando parted
(8)
o fdisk
(8) y puede crear el archivo de sistemas en el
utilizando mkfs.ext4
(8), mkswap
(8),
etc.
El archivo de imagen ISO9660,
«cd.iso
», utilizando como origen el árbol de directorios
de «directorio_origen
» se puede hacer utilizando
genisoimage
(1) aportado por cdrkit como se muestra.
# genisoimage -r -J -T -V volume_id -o cd.iso source_directory
De igual manera, el archivo imagen ISO9660 arrancable,
«cdboot.iso
», se puede realizar desde el
instalador debian
como el árbol de directorios del
«directorio_origen
» como se muestra.
# genisoimage -r -o cdboot.iso -V volume_id \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table source_directory
Aquí el cargador de arranque Isolinux (consulte Sección 3.1.2, “Fase 2: el cargador de arranque”) se utiliza para el arranque.
Puede calcular el valor md5sum y hace la imagen ISO9660 directamente desde el dispositivo CD-ROM como se muestra.
$ isoinfo -d -i /dev/cdrom CD-ROM is in ISO 9660 format ... Logical block size is: 2048 Volume size is: 23150592 ... # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror | md5sum # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror > cd.iso
![]() |
Aviso |
---|---|
Debe evitar cuidadosamente el sistema de archivos ISO9660 debido al problema de lectura adelantada de Linux para obtener el resultado correcto. |
![]() |
Sugerencia |
---|---|
DVD es unicamente un CD de mayor tamaño que utiliza
|
Puede encontrar un dispositivo utilizable como se muestra.
# wodim --devices
Entonces se inserta el CD-R vacio en el dispositivo CD,y el archivo de
imagen ISO9660 , «cd.iso
» se escribe en el dispositivo,
p. ej. «/dev/hda
», utilizando wodim
(1)
como se muestra.
# wodim -v -eject dev=/dev/hda cd.iso
Si se utiliza un CR-RW enlugar de un CD-R, hago lo siguiente en su lugar.
# wodim -v -eject blank=fast dev=/dev/hda cd.iso
![]() |
Sugerencia |
---|---|
Si su sistema de escritorio monta automaticamente los CD, desmontelo con
« |
Si «cd.iso
» contiene una imagen ISO9660, entonces lo
siguiente sirve para montarlo de forma manual en
«/cdrom
».
# mount -t iso9660 -o ro,loop cd.iso /cdrom
![]() |
Sugerencia |
---|---|
Los sistemas de escritorio modernos pueden montar los medios extraibles como un CD con formato ISO9660 de forma automática (consulte Sección 10.1.7, “Dispositivos de almacenamiento extraibles”). |
Aquí discutiremos la manipulación directa de datos binarios en medios de almacenamiento.
El método más básico de visualización de datos binarios es la orden
«od -t x1
».
Tabla 9.21. Relación de paquetes para la visualización y edición de datos binarios
paquete | popularidad | tamaño | descripción |
---|---|---|---|
coreutils
|
V:876, I:999 | 18062 | paquete básico que tiene od (1) para volcar archivos (HEX,
ASCII, OCTAL, …) |
bsdmainutils
|
V:15, I:389 | 17 | paquete de utilidades que tiene hd (1) para volcar
archivos (HEX, ASCII, OCTAL, …) |
hexedit
|
V:0, I:9 | 73 | visor y editor binario (HEX, ASCII) |
bless
|
V:0, I:2 | 924 | editor hexadecimal con funcionalidad completa (GNOME) |
okteta
|
V:0, I:10 | 1581 | editor hexadecimal con funcionalidad completa (KDE4) |
ncurses-hexedit
|
V:0, I:1 | 130 | visor y editor binario (HEX, ASCII, EBCDIC) |
beav
|
V:0, I:0 | 137 | visor y editor binario (HEX, ASCII, EBCDIC, OCTAL, …) |
![]() |
Sugerencia |
---|---|
HEX es un acrónimo del formato hexadecimal con radix 16. OCTAL se utiliza para formato octal con radix 8. ASCII se utiliza para Codificación Americana Estándar para el Intercambio de Información (American Standard Code for Information Interchange), a saber, codificación del inglés normal. EBCDIC es para Extended Binary Coded Decimal Interchange Code utilizado en sistemas operativos de IBM mainframe. |
Existen herramientas para leer y escribir archivos sin montar el disco.
Los sistemas de software RAID del núcleo Linux aportan redundancia en el nivel del sistema de archivos de datos del núcleo con la finalidad de alcanzar alta fiabilidad en el almacenamiento.
Existen herramientas para añadir datos redundados a archivos al nivel de aplicación de programas para conseguir también alta fiabilidad en el almacenamiento.
Tabla 9.23. Relación de herramientas para añadir redundancia de datos a los archivos
paquete | popularidad | tamaño | descripción |
---|---|---|---|
par2
|
V:12, I:86 | 268 | Paridad del conjunto de volúmenes de archivo, para comprobar y reparar archivos |
dvdisaster
|
V:0, I:1 | 1742 | Protección contra pérdida/rotura/vejez de medios CD/DVD |
dvbackup
|
V:0, I:0 | 413 | herramienta de copia de seguridad para MiniDV (aportada por
rsbep (1)) |
Existen herramientas para la recuperación de archivos y análisis forense.
Tabla 9.24. Relación de paquetes para la recuperación de archivos y análisis forense
paquete | popularidad | tamaño | descripción |
---|---|---|---|
testdisk
|
V:2, I:29 | 1413 | utilidades para el escaneado de particiones y recuperaciones de disco |
magicrescue
|
V:0, I:2 | 255 | utilidades para la recuperación de archivos y búsqueda de bytes mágicos |
scalpel
|
V:0, I:3 | 88 | Divisor de archivos ligero y alto rendimiento |
myrescue
|
V:0, I:2 | 83 | recuperación de datos de discos duros dañados |
extundelete
|
V:0, I:8 | 147 | utilidad para recuperar archivos borrados en sistemas de archivos ext3/4 |
ext4magic
|
V:0, I:4 | 233 | utilidad para recuperar archivos borrados en sistemas de archivos ext3/4 |
ext3grep
|
V:0, I:2 | 293 | herramienta de ayuda a la recuperación de archivos borrados en sistemas de archivos ext3 |
scrounge-ntfs
|
V:0, I:2 | 50 | programa de recuperación de datos en sistemas de archivos NTFS |
gzrt
|
V:0, I:0 | 33 | conjunto de herramientas de recuperación gzip |
sleuthkit
|
V:2, I:24 | 1611 | herramientas de análisis forense (Sleuthkit) |
autopsy
|
V:0, I:1 | 1027 | interfaz gráfico para SleuthKit |
foremost
|
V:0, I:5 | 102 | aplicación forense para la recuperación de datos |
guymager
|
V:0, I:1 | 1021 | herramienta para el análisis forense de imágenes basado en Qt |
dcfldd
|
V:0, I:4 | 114 | versión mejorada de dd para análisis forense y seguridad |
![]() |
Sugerencia |
---|---|
Puede recuperar archivos borrados en sistemas de archivos ext2 utilizando la
|
Cuando los datos son demasiado grandes para guardalos en un único archivo, puede obtener una copia de seguridad de su contenido dividiendolo en, p. ej. trozos de 2000MiB y juntarlos más tarde para obtener el archivo original.
$ split -b 2000m large_file $ cat x* >large_file
![]() |
Atención |
---|---|
Por favor, aseguresé que no tiene ningún archivo que comienza por
« |
Para limpiar el contenido de los archivos como los archivos de registro, no
utilice rm
(1) para borrarlo y crear uno nuevo vacio, ya
que puede intentar ser accedido entre ambas operaciones. La forma segura de
limpiar el contenido de un archivo es la que se muestra.
$ :>file_to_be_cleared
Las órdenes siguientes crean archivos «vacíos».
$ dd if=/dev/zero of=5kb.file bs=1k count=5 $ dd if=/dev/urandom of=7mb.file bs=1M count=7 $ touch zero.file $ : > alwayszero.file
Encontrará lo siguiente tras ejecutar lo anterior.
«5kb.file
» que contiene 5KB de ceros.
«7mb.file
» que contiene 7MB de datos aleatorios.
«zero.file
» puede tener 0 bytes. Si existiera con
anterioridad, su mtime
es actualizado y su contenido y su
longitud permanecen sin cambios.
«alwayszero.file
» es siempre un archivo de 0 bytes. Si
existía con anterioridad, su mtime
es actualizado y su
contenido borrado.
Existen diferentes modos de borrar completamente la información de un disco
duro como dispositivo, p. ej. una memoria USB ubicada en
«/dev/sda
».
![]() |
Atención |
---|---|
Antes de ejecutar las órdenes que le vamos a mostrar, compruebe la ubicación
de su memoria USB por medio de |
Borre todo el contenido del disco poiendo a 0 toda la información como se muestra.
# dd if=/dev/zero of=/dev/sda
Borrelo todo escribiendo datos aleatorios como sigue.
# dd if=/dev/urandom of=/dev/sda
Borrelo todo sobreescribiendolo con datos aleatorios de forma eficiente como se muestra.
# shred -v -n 1 /dev/sda
También puede usar la opción badblocks
(8) con la opción
-t random
.
Ya que dd
(1) esta disponible en el intérprete de órdenes
de muchos CDs de Linux arrancables como el CD instalador de Debian, puede
borrar el sistema instalado completamente ejecutando una de las órdenes
anteriores desde dicho medio sobre el disco duro del sistema,
p. ej.«/dev/hda
», «/dev/sda
», etc.
Las áreas en deshuso del disco duro (o de la memoria USB),
p. ej. «/dev/sdb1
» todavái pueden contener datos borrados
ya que solo han sido desligados del sistema de archivos. Estos pueden ser
limpiados sobreescribiendolos.
# mount -t auto /dev/sdb1 /mnt/foo # cd /mnt/foo # dd if=/dev/zero of=junk dd: writing to `junk': No space left on device ... # sync # umount /dev/sdb1
![]() |
Aviso |
---|---|
Esto es generalmente suficiente para las memorias USB. Pero no es perfecto. La mayor parte de los nombres de archivo borrados y sus atributos pueden estar ocultos y permanecer en el sistema de archivos. |
Incluso en el caso de que accidentalmente haya borrado un archivo, mientras que ese archivo sea utilizado por alguna aplicación (en modo lectura o escritura), es posible recuperar dicho archivo.
Por ejemplo, intente lo siguiente
$ echo foo > bar $ less bar $ ps aux | grep ' less[ ]' bozo 4775 0.0 0.0 92200 884 pts/8 S+ 00:18 0:00 less bar $ rm bar $ ls -l /proc/4775/fd | grep bar lr-x------ 1 bozo bozo 64 2008-05-09 00:19 4 -> /home/bozo/bar (deleted) $ cat /proc/4775/fd/4 >bar $ ls -l -rw-r--r-- 1 bozo bozo 4 2008-05-09 00:25 bar $ cat bar foo
Ejecute en otro terminal (cuando tenga el paquete lsof
instalado) como se muestra.
$ ls -li bar 2228329 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:02 bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar $ rm bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar (deleted) $ cat /proc/4775/fd/4 >bar $ ls -li bar 2228302 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:05 bar $ cat bar foo
Los archivos con enlaces duros pueden identificarse mediante «ls
-li
».
$ ls -li total 0 2738405 -rw-r--r-- 1 root root 0 2008-09-15 20:21 bar 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 baz 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 foo
Tanto «baz
» y «foo
» tiene una cuenta
de «2« (>1) de forma que tiene enlaces duros. Sus números de inodos son comunes «2738404«. Esto significa que son
el mismo archivo mediante un archivo duro. Si no quiere encontrar todos los
enlaces duros mediante la suerte, puede buscarlos mediante el inodo, p. ej. «2738404« como se muestra.
# find /path/to/mount/point -xdev -inum 2738404
Con acceso físico a su PC, cualquiera puede acceder como superusuario y acceder a todos los archivos en él (consulte Sección 4.6.4, “Asegurando la contraseña de root”). Esto significa que el sistema de acceso por contraseña puede no securizar sus datos delicados y privados contra posibles ladrones de su PC. Para hacerlo debe desplegar alguna tecnología de cifrado de información. Aunque GNU privacy guard (consulte Sección 10.3, “Infraestructura de seguridad de la información”) puede cifrar archivos , necesita de los esfuerzos del usuario.
Dm-crypt ayuda al cifrado automático de la información de forma nativa por medio de módulos del núcleo Linux con el mínimo esfuezo por parte del usuario usando device-mapper.
Tabla 9.25. Relación de utilidades para el cifrado de información
paquete | popularidad | tamaño | descripción |
---|---|---|---|
cryptsetup
|
V:36, I:78 | 410 | utilidades para cifrar dispositivos de bloque (dm-crypt / LUKS) |
cryptmount
|
V:2, I:3 | 231 | utilidades para cifrar dispositivos de bloque (dm-crypt / LUKS) centrado en el montaje/desmontaje por usuarios normales |
fscrypt
|
V:0, I:1 | 4503 | utilidades para el cifrado del sistema de archivos de Linux (fscrypt) |
libpam-fscrypt
|
V:0, I:0 | 4084 | Módulo PAM para el cifrado del sistema de archivos de Linux (fscrypt) |
![]() |
Atención |
---|---|
El cifrado de datos gasta recursos de la CPU, etc. Los datos encriptados se vuelven inaccesibles si se pierde su contraseña. Sopesa sus ventajas y sus costes. |
![]() |
Nota |
---|---|
El sistema Debian entero puede instalarse en el disco cifrado por el instalador debian (lenny o más nuevo) utilizando dm-crypt/LUKS y initramfs. |
![]() |
Sugerencia |
---|---|
Consulte Sección 10.3, “Infraestructura de seguridad de la información” para la utilización del cifrado del espacio de usuario: GNU Privacy Guard. |
Puede cifrar el contenido de los dispositivos masivos extraibles,
p. ej. memoria USB en «/dev/sdx
», utilizando dm-crypt/LUKS.
Simplemente formateelo como se muestra.
# fdisk /dev/sdx ... "n" "p" "1" "return" "return" "w" # cryptsetup luksFormat /dev/sdx1 ... # cryptsetup open /dev/sdx1 secret ... # ls -l /dev/mapper/ total 0 crw-rw---- 1 root root 10, 60 2021-10-04 18:44 control lrwxrwxrwx 1 root root 7 2021-10-04 23:55 secret -> ../dm-0 # mkfs.vfat /dev/mapper/secret ... # cryptsetup close secret
Entonces, se puede montar igual que uno normal en
"/media/nombre_usuario/etiqueta_disco
",
excepto para pedir la contraseña (ver Sección 10.1.7, “Dispositivos de almacenamiento extraibles”) bajo el entorno de un escritorio
moderno usando el paquete udisks2
. La diferencia es que
todos los datos que se escriben en él están cifrados. La introducción de la
contraseña puede automatizarse utilizando llaveros (véase Sección 10.3.6, “Llavero de contraseña”).
Alternativamente, puedes formatear los medios en un sistema de archivos
diferente, por ejemplo, ext4 con "mkfs.ext4
/dev/mapper/sdx1
". Si se utiliza btrfs en su lugar, es necesario
instalar el paquete udisks2-btrfs
. Para estos sistemas
de archivos, puede ser necesario configurar la propiedad y los permisos de
los archivos.
Por ejemplo, una partición de disco cifrada creada con dm-crypt/LUKS en
"/dev/sdc5
" por el instalador de Debian puede montarse en
"/mnt
" de la siguiente forma:
$ sudo cryptsetup open /dev/sdc5 ninja --type luks Enter passphrase for /dev/sdc5: **** $ sudo lvm lvm> lvscan inactive '/dev/ninja-vg/root' [13.52 GiB] inherit inactive '/dev/ninja-vg/swap_1' [640.00 MiB] inherit ACTIVE '/dev/goofy/root' [180.00 GiB] inherit ACTIVE '/dev/goofy/swap' [9.70 GiB] inherit lvm> lvchange -a y /dev/ninja-vg/root lvm> exit Exiting. $ sudo mount /dev/ninja-vg/root /mnt
Debian distribuye el núcleo de Linux modularizado en paquetes para soportar las arquitecturas.
Si estás leyendo esta documentación, probablemente no necesites compilar el kernel de Linux por ti mismo.
Muchas funcionalidades de Linux son configurables por medio de parámetros del núcleo como se muestra.
Los parámetros del núcleo son inicializados por el cargador de arranque (consulte Sección 3.1.2, “Fase 2: el cargador de arranque”)
Los parámetros del núcleo cambian mediante sysctl
(8) en
tiempo de ejecución por aquellos accesibles por medio de sysfs (consulte
Sección 1.2.12, “procfs y sysfs”)
Los parámetros de modprobe
(8) se asignan como parámetros
del módulo cuando se activa el módulo (consulte Sección 9.7.3, “Montaje del archivo de la imagen del disco”)
Consulta la "Guía del usuario y administrador del kernel de Linux " Parámetros de la línea de comandos del kernel" para obtener más información.
La mayor parte de los programas normales
no necesitan las cabeceras del núcleo y de hecho puede producir errores si
se utiliza directamente para compilar. Estos deben ser compilados con las
cabeceras en «/usr/include/linux
» y
«/usr/include/asm
» que están en el paquete
libc6-dev
(creado por el paquete fuente
glibc
) en el sistema Debian.
![]() |
Nota |
---|---|
Para compilar algunos programas específicos del kernel, como los módulos del
kernel de la fuente externa y el contador automático de daemon
( |
Debian tiene su propio método para compilar el núcleo y los módulos asociados.
Tabla 9.26. Relación de los paquetes fundamentales para la recompilación del núcleo en los sistemas Debian
paquete | popularidad | tamaño | descripción |
---|---|---|---|
build-essential
|
I:478 | 17 | paquetes fundamentales para la construcción de paquetes Debian:
make , gcc , … |
bzip2
|
V:161, I:969 | 121 | utilidades de compresión y decompresión de archivos bz2 |
libncurses5-dev
|
I:77 | 6 | bibliotecas de desaroollo y documentación de ncurses |
git
|
V:333, I:534 | 44963 | git: sistema de control de versiones distribuido utilizado por el núcleo de Linux |
fakeroot
|
V:30, I:487 | 208 | aporta el entorno fakeroot para la construcción de paquetes sin ser «root« |
initramfs-tools
|
V:421, I:989 | 113 | herramienta para contruir initramfs (propio de Debian) |
dkms
|
V:77, I:166 | 189 | soporte del núcleo para módulos dinámico (DKMS, dynamic kernel module support) (genérico) |
module-assistant
|
V:1, I:21 | 406 | herramienta de ayuda para crear los paquetes de los módulos (específico de Debian) |
devscripts
|
V:6, I:41 | 2643 | archivos de órdenes para el mantenimiento de Paquetes Debian (específico de Debian) |
Si utiliza initrd
in Sección 3.1.2, “Fase 2: el cargador de arranque”, asegurese de leer la documentación
asociada en initramfs-tools
(8),
update-initramfs
(8), mkinitramfs
(8) y
initramfs.conf
(5).
![]() |
Aviso |
---|---|
No cree enlaces simbólicos en el árbol de directorios del código fuente
(p. ej. « |
![]() |
Nota |
---|---|
Cuando compile el núcleo de Linux en el sistema Debian
El soporte del núcelo a módulos dinámicos (dynamic kernel module support, DKMS) es un marco nuevo de distribución independiente diseñado para permitir la actualización de módulos sueltos sin cambiar el núcleo completo. Esto es utilizado para mantener módulos externos. Esto también facilita la reconstrucción de módulos cuando actualice su núcleo. |
Para la construcción de paquetes binarios personalizados del núcleo desde el
código fuente del núcleo, podría utilizar el objetivo
«deb-pkg
» que se proporciona para ello.
$ sudo apt-get build-dep linux $ cd /usr/src $ wget http://www.kernel.org/pub/linux/kernel/v3.11/linux-version.tar.bz2 $ tar -xjvf linux-version.tar.bz2 $ cd linux-version $ cp /boot/config-version .config $ make menuconfig ... $ make deb-pkg
![]() |
Sugerencia |
---|---|
El paquete linux-source-version package contiene el
código fuente del núcleo de Linux con los parches de Debian como
« |
Para la contrucción de paquetes binarios concretos desde el paquete de
código fuente del núcleo de Debian, puede utilizar los objetivos
«binary-arch_architecture_featureset_flavour
»
en «debian/rules.gen
».
$ sudo apt-get build-dep linux $ apt-get source linux $ cd linux-3.* $ fakeroot make -f debian/rules.gen binary-arch_i386_none_686
Compruebe la información adicional:
Debian Wiki: KernelFAQ
Debian Wiki: DebianKernel
Debian Linux Kernel Handbook: https://kernel-handbook.debian.net
El controlador de hardware es el código que se ejecuta en las CPU
principales del sistema de destino.. La mayor parte de los controladores de
hardware están disponibles como software libre actualmente se incluyen en
los paquetes normales del núcleo de Debian en el apartado
main
.
El firmware es el código o los datos ubicados en el propio dispositivo (p. ej. CPU microcode, código ejecutable para el «rendering« en GPU, o los datos FPGA / CPLD , …). Algunos paquetes con firmware están disponibles como software libre pero no la mayoría ya que contienen información binaria sin su código fuente. La instalación de estos datos de firmware es esencial para que el dispositivo funcione como se espera.
Paquetes de datos de firmware que contienen datos cargados en la memoria volátil en el dispositivo de destino.
firmware-linux-free (main
)
firmware-linux-nonfree (non-free-firmware
)
firmware-linux-* (non-free-firmware
)
*-firmware (non-free-firmware
)
intel-microcode (non-free-firmware
)
amd64-microcode (non-free-firmware
)
El programa de actualización de firmware empaqueta los datos de actualización en la memoria no volátil en el dispositivo de destino.
fwupd (main
): Demonio de
actualización de firmware que descarga datos de firmware de Linux Vendor Firmware Service.
gnome-firmware (principal
): interfaz GTK para fwupd
plasma-discover-backend-fwupd (principal
): interfaz Qt
para fwupd
Ten en cuenta que el acceso a los paquetes de
non-free-firmware
es proporcionado por los medios de
instalación oficiales para ofrecer una experiencia de instalación funcional
al usuario desde Debian 12 Bookworm. El área de firmware no
libre
se describe en Sección 2.1.5, “Fundamentos del archivo de Debian”.
Ten en cuenta también que los datos del firmware descargados por fwupd del Servicio de firmware del proveedor de
Linux y cargados en el kernel de Linux en la ejecución pueden ser
no libre
.
La utilización de sistemas virtualizados nos permite la ejecución de varias instancias del sistema a la vez sobre un único hardware.
![]() |
Sugerencia |
---|---|
Hay varias plataformas de virtualización y emulación.
Completa los paquetes del hardware de emulation como los instalados por el metapaquete games-emulator
Principalmente la emulación a nivel de la CPU con algunas emulaciones de dispositivos de E/S como QEMU
Principalmente la virtualización a nivel de CPU con algunas emulaciones de dispositivos de E/S como Máquina virtual basada en kernel (KVM)
Virtualización de los contenedores a nivel del sistema operativo con soporte
a nivel de kernel como LXC (Linux
Containers), Docker,
systemd-nspawn
(1), ....
Virtualización del acceso al sistema de archivos a nivel del sistema operativo con la anulación de la llamada a la biblioteca del sistema en la ruta del archivo, como chroot
Virtualización del acceso al sistema de archivos a nivel del sistema operativo con la anulación de las llamada a la biblioteca del sistema sobre la propiedad del archivo, como fakeroot
Emulación de API de SO como Wine
Virtualización a nivel del intérprete, además de la selección de la ejecución y anulaciones de las bibliotecas en el tiempo de ejecución, como virtualenv y venv de Python
The container virtualization uses Sección 4.7.4, “Características de seguridad de Linux” and is the backend technology of Sección 7.6, “Sandbox”.
Aquí tienes algunos paquetes que te ayudarán a configurar el sistema virtualizado.
Tabla 9.27. Relación de herramientas de virtualización
paquete | popularidad | tamaño | descripción |
---|---|---|---|
coreutils
|
V:876, I:999 | 18062 | GNU core utilities which contain chroot (8) |
systemd-container
|
V:48, I:56 | 1299 | systemd container/nspawn tools which contain
systemd-nspawn (1) |
schroot
|
V:5, I:7 | 2508 | herramientas especializadas para la ejecución de paquetes binarios en «chroot« |
sbuild
|
V:1, I:3 | 243 | herramientas para la construcción de paquetes binarios desde el código fuente de Debian |
debootstrap
|
V:5, I:55 | 308 | sistema de arranque como sistema Debian mínimo (escrito en sh) |
cdebootstrap
|
V:0, I:1 | 111 | sistema de arranque de un sistema Debian (escrito en C) |
virt-manager
|
V:10, I:42 | 2296 | Gestor de Máquinas Virtuales: aplicación de escritorio para la gestión de máquinas virtuales |
libvirt-clients
|
V:44, I:63 | 1212 | programas para la biblioteca libvirt |
games-emulator
|
I:0 | 21 | games-emulator: emuladores de Debian para juegos |
bochs
|
V:0, I:0 | 6956 | Bochs: emulador de PC IA-32 PC |
qemu
|
I:18 | 97 | QEMU: emulador rápido de un procesador genérico |
qemu-system
|
I:20 | 66 | QEMU: binarios para la emulación de un sistema completo |
qemu-user
|
V:1, I:7 | 103943 | QEMU: binarios para la emulación en modo usuario |
qemu-utils
|
V:11, I:104 | 10344 | QEMU: utilidades |
qemu-system-x86
|
V:33, I:89 | 45580 | KVM: virtualización completa de harsware x86 con la virtualización asistida por hardware |
virtualbox
|
V:6, I:8 | 131137 | VirtualBox: solución de virtualización x86 en i386 y amd64 |
xen-tools
|
V:0, I:2 | 719 | herramientas para la gestión de debian del servidor virtual XEN |
wine
|
V:13, I:59 | 135 | Wine: Implementación de la API Windows (suite estándar) |
dosbox
|
V:1, I:15 | 2671 | DOSBox: emulador x86 con gráficos Tandy/Herc/CGA/EGA/VGA/SVGA , sonido y DOS |
lxc
|
V:9, I:12 | 25643 | Contenedores Linux herramientas del espacio de usuario |
python3-venv
|
I:72 | 6 | venv para crear entornos virtuales python (biblioteca del sistema) |
python3-virtualenv
|
V:9, I:49 | 364 | virtualenv para crear entornos python virtuales aislados |
pipx
|
V:2, I:10 | 931 | pipx para instalar aplicaciones python en entornos aislados |
Consulte el artículo de Wikipedia Comparison of platform virtual machines para obtener detalles de la comparación entre diferentes plataformas y soluciones de virtualización.
![]() |
Nota |
---|---|
El núcleo de Debian por defecto soporta KVM desde
|
El flujo de trabajo de la virtualización conlleva varios pasos.
Crear un sistema de archivos vacio (un árbol de directorios o una imágen de disco).
El árbol de directorios puede ser creado mediante «mkdir -p
/ruta/al/entorno//chroot
».
El archivo de la imagen de disco en crudo puede ser creado con
dd
(1) (consulteSección 9.7.1, “Creando un archivo de imagen de disco” y Sección 9.7.5, “Haciendo un archivo de imagen de disco vacio”).
qemu-img
(1) puede ser utilizado para crear y convertir
archivos de imagen de disco utilizados por QEMU.
Los formatos de archivo crudos y VMDK se pueden utilizar como formato común entre diferentes herramientas de virtualización.
Monte la imágen de disco con mount
(8) en el sistema de
archivos (opcional).
Para el archivo de imágen de disco crudo, montelo como un dispositivo «loop« o mapeo de dispositivo (consulte Sección 9.7.3, “Montaje del archivo de la imagen del disco”).
Para el soporte de imágenes de disco por QEMU, montelos como dispositivo de bloque de red (consulte Sección 9.11.3, “Montando el archivo de imagen de disco virtual”).
Llene el sistema de archivos objetivo con la información del sistema.
La utilización de programas como debootstrap
y
cdebootstrap
ayudan en este proceso (consulte Sección 9.11.4, “Sistemas chroot”).
Utilización de instaladores de los sistemas operativos en la emulación del sistema completo.
Ejecute un programa en un entorno virtualizado.
chroot ofrece un entorno de virtualización básico para compilar programas , ejecutar aplicaciones de consola y ejecutar demonios en él.
QEMU ofrece emulación de CPU independiente de la plataforma.
QEMU con KVM ofrece un sistema de emulación completo por medio de la virtualización asistida por hardware.
VirtualBox ofrece un sistema completo de emulación en i386 y amd64 con o sin la virtualización asistida por hardware.
Para un archivo de imágen de disco crudo, consulte Sección 9.7, “La imagen de disco”.
Para otros archivos de imágenes de disco virtuales, puede utilizar
qemu-nbd
(8) para exportarlos utilizando el protocolo de
dispositivos de bloque de red y
montarlos utilizando el módulo del núcleo nbd
.
qemu-nbd
(8) soporta los formatos de disco soportados por
QEMU: QEMU que
soporta los siguientes formato de disco: crudo, qcow2, qcow, vmdk,
vdi, bochs, cow
(copia al escribir en modo usuario de Linux), parallels, dmg, cloop, vpc, vvfat (virtual
VFAT) y «host_device«.
Los dispositivos de bloque de red
pueden soportar particiones de la misma manera que los dispositivos «loop« (consulte Sección 9.7.3, “Montaje del archivo de la imagen del disco”). Puede montar la primera
partición de «disk.img
» como se muestra.
# modprobe nbd max_part=16 # qemu-nbd -v -c /dev/nbd0 disk.img ... # mkdir /mnt/part1 # mount /dev/nbd0p1 /mnt/part1
![]() |
Sugerencia |
---|---|
Puede exportar únicamente la primera partición de
« |
Si deseas probar un nuevo entorno Debian desde una consola de terminal, te
recomiendo que uses chroot. Esto te permite
ejecutar aplicaciones de la consola de Debian inestable
y
prueba
sin los riesgos habituales asociados y sin
reiniciar. chroot
(8) es la forma más básica.
![]() |
Atención |
---|---|
Los ejemplos de abajo asumen que tanto el sistema padre como el sistema
chroot comparten la misma arquitectura de CPU |
Although you can manually create a chroot
(8) environment
using debootstrap
(1), this requires non-trivial efforts.
El paquete sbuild para crear paquetes Debian
desde el código fuente utiliza el entorno chroot administrado por el paquete
schroot. Viene con una secuencia de comandos
auxiliar sbuild-createchroot
(1). Aprendamos cómo
funciona ejecutándolo de la siguiente manera.
$ sudo mkdir -p /srv/chroot $ sudo sbuild-createchroot -v --include=eatmydata,ccache unstable /srv/chroot/unstable-amd64-sbuild http://deb.debian.org/debian ...
Puedes ver como debootstrap
(8) rellena los datos del
sistema para el entorno unstable
bajo
"/srv/chroot/unstable-amd64-sbuild
" para un sistema de
construcción mínimo.
Puedes acceder a este entorno utilizando schroot
(1).
$ sudo schroot -v -c chroot:unstable-amd64-sbuild
Verás cómo se crea un shell de sistema que se ejecuta en un entorno
inestable
.
![]() |
Nota |
---|---|
El fichero " |
![]() |
Nota |
---|---|
Algunos programas en chroot pueden requerir acceso a más archivos del
sistema principal para funcionar que los que proporciona
|
![]() |
Sugerencia |
---|---|
El paquete |
![]() |
Sugerencia |
---|---|
The |
Si deseas probar un nuevo entorno de escritorio GUI de cualquier sistema
operativo, te recomiendo que uses QEMU o KVM en un sistema Debian estable
para
ejecutar múltiples sistemas de escritorio de forma segura usando la virtualización. Esto te permite ejecutar
cualquier aplicación de escritorio incluyendo las de Debian
inestable
y prueba
sin los riesgos
habituales asociados a ellas y sin reiniciar.
Dado que QEMU puro es muy lento, se recomienda acelerarlo con KVM cuando el sistema anfitrión lo soporte.
Gestor de máquinas virtuales
también conocido como virt-manager
es una práctica
herramienta GUI para gestionar las máquinas virtuales KVM a través de libvirt.
La imágen de disco virtual «virtdisk.qcow2
» que contiene
una imágen del sistema Debian para QEMU se
puede crear utilizando el instalador
debian: en pequeños CDs como se muestra.
$ wget http://cdimage.debian.org/debian-cd/5.0.3/amd64/iso-cd/debian-503-amd64-netinst.iso $ qemu-img create -f qcow2 virtdisk.qcow2 5G $ qemu -hda virtdisk.qcow2 -cdrom debian-503-amd64-netinst.iso -boot d -m 256 ...
![]() |
Sugerencia |
---|---|
Ejecutar otra distribución GNU/Linux como Ubuntu y Fedora de forma virtualizada es un gran manera de aprender formas de configuración. También se pueden ejecutar correctamente SS.OO. propietarios virtualializado sobre GNU/Linux. |
Ve más consejos en La Wikipedia de Debian: Virtualización del sistema.
[2] Ejemplos de personalización más elaborados: "Vim Galore", "sensible.vim", "#vim Recommendations" ...
[3] vim-pathogen fue popular.