miércoles, 7 de abril de 2021

WeeChat #IRCNCurses Chat IRC en la terminal o consola y su instalación, configuración y uso

 

Interfaz WeeChat
Para comenzar nos debemos hacer la siguiente pregunta: ¿Qué es WeeChat? la cual responderemos a esta interrogante con la siguiente cita:

WeeChat (acrónimo de We Enhanced Environment for CHATs) es un cliente de IRC ligero en modo texto. Está licenciado bajo los términos de la licencia GNU GPL. Es expansible por medio de plugins y scripts. Fuente: Wikipedia.


Teniendo un concepto de primera mano de lo que es esta excelente aplicación el cual consume muy pero muy bajos recursos el cual se puede usar prácticamente en cualquier pc de bajos recursos, procedemos a realizar los pasos para su intalación y configuación en debian GNU/Linux en este caso aplicable para casi todas las versiones de debian, luego posteriormente se aprenderán a usar los comandos más comunes a usar contra servidores IRC desde clientes como weechat.

Instalación y configuración básica.

1.- Para su intalación solo debemos acceder a la terminar o consola loguearnos allí como super usuario (root) y ejecutar el siguiente comando:

apt-get install weechat

2.- Una vez teniendo weechat solo debemos ejecutar como usuario normal en la terminal o consola el siguiente comando:

weechat

3.- Se apertura en la terminal o consola la interfaz ncurses de weechat ahora solo hay que proceder a realizar la configuración básica para poder conectarse a un servidor en este caso freenode pero antes podemos observar la ayuda con cualquiera de estos comandos:

/help
/help comando
/help config.section.section

4.- A continuación se configura el servidor IRC con los siguiente comando:

/server add freenode chat.freenode.net

5.- Luego se personalizan las opciones para conectarse al mismo con los siguientes comandos:

  - Agregando los nick con los que se conectará al servidor

/set irc.server.freenode.nicks "tunick,tunick2,tunick3,tunick4,tunick5"

  - También para configurar el nombre de usuario y el nombre real:

/set irc.server.freenode.username "Mi nombre de usuario"
/set irc.server.freenode.realname "Mi nombre real"

  - Para que el servidor se conecte cuando WeeChat inicie:

/set irc.server.freenode.autoconnect on

  - Conexión con SSL:

/set irc.server.freenode.addresses "chat.freenode.net/7000"
/set irc.server.freenode.ssl on

  - Por ultimo conectar al servidor:

/connect freenode

Comandos IRC más usados los cuales podemos usar en el cliente WeeChat.

Una vez conectado weechat al servidor IRC (para este ejemplo freenode por excelencia) debe conocer como unirse a canales listarlos, escribir en privado con otro usuario nick, crear canales públicos o privados, registrar un nick propio para que otros no lo puedan usar, entre algunas otras funciones, a continuación se comienza una su explicación:

  - Registro Nick:

/msg NickServ REGISTER clave email

  - Identificarse una vez conectado en el servidor con el nick ya registrado:

/msg NickServ identify clave

  - Cambio de clave al conectado e indentificado en el servidor:

/msg NickServ SET PASSWORD nuevaclave

  - Cambiar idioma:  donde el número será el idioma 1)Inglés 2)Francés 3)Portugués 4)Turco, etc.:

/msg NickServ SET LANGUAJE número

  - Se añade web en la información del nick identificado:

/msg NickServ SET URL direcciónweb

- Se añade un email en la información del nick identificado:

/msg NickServ SET EMAIL direccióndemail

  - Unirse a un canal

/join nombrecanal
/join #nombrecanal

  - Salirse del canal

/part nombrecanal
/part #nombrecanal

  - Cerrar el buffer o pantalla con los msj del chat de canal del cual se haya salido

/buffer close

  - Escribir a otro usuario nick en privado:

/msg nickdelusuarioaescribirle "Texto del msj"

  - Registrar un canal propio:

/msg ChanServ Register #nombrecanal clavedelcanal

  - Recuperar el canal:

/msg Chanserv RECOVER #nombrecanal

  - Crear un tipico en el canal:

/msg ChanServ TOPIG #nombrecanal "Texto del topico"

  - Mensaje de entrada al canal:

/msg ChanServ SET #nombrecanal ENTRYMSG mensaje 

  - Agregar email, Descripción, url y taxonimía:

/msg ChanServ SET #nombrecanal EMAIL nuevadescripción
/msg ChanServ SET #nombrecanal DESC nuevadescripción
/msg ChanServ SET #nombrecanal URL urldelapaginaweb
/msg ChanServ TAXONOMY #nombrecanal

  - Crear el Fundador y el sucesor:

/msg ChanServ SET #nombrecanal FOUNDER nickdelnuevofounder
/msg ChanServ SET #nombrecanal SUCCESSOR nickdelsucesor

  - Asignar operador a un usuario nick:

/msg ChanServ OP #nombrecanal ADD nick

  - Quitar operador a un usuario nick:

/msg ChanServ OP #nombrecanal DEL nick

  - Eliminar el canal:

/msg ChanServ DROP #nombrecanal

  - Listar memos recibidos:

/msg MemoServ LIST
/msg MemoServ LIST #nombrecanal

  - Leer un memo:

/msg MemoServ READ #nombrecanal (número ó list)
/memo MemoServ READ (número ó last ó new)

  - Enviar un memo:

/msg MemoServ SEND (#canal/nombre) mensaje

  - Cancelar un memo antes que sea leído:

/msg MemoServ CANCEL (#canal/nombre)

Estos son los comandos más usados para interactual con el servicio de IRC a través del programa weechat si quieres más detalles de comandos y su explicación puedes consultar la siguiente pagina:



Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.


martes, 6 de abril de 2021

Google libera el código de Lyra un codec audio con una compresión descomunal

¿Qué es Lyra?

Esta pregunta la podemos consultar y citar a continuación:

El códec Lyra es un nuevo códec desarrollado por Google para ayudar con las comunicaciones de ancho de banda bajo. El códec Lyra se utilizará en WebRTC y Google Duo para Android. El alcance de Lyra es ayudar con la calidad de audio para dispositivos móviles donde el acceso a la red es variable. Lyra funcionará para transmisiones de audio a 3 kb / s. Para las comunicaciones por video, Google planea emparejar Lyra Codec con AV1. Fuente: everybodywiki.

El gran peso pesado de la industria tecnológica Google ha tomado la decisión de liberar el código de su codec de audio llamado Lyra el cual tiene un nivel de compresión muy elevado con muy poca perdida.

En una jugada estratégica y para convertir este codec, en un codec universal, ha liberado el código fuente del mismo en GitHub, con la licencia de apache 2.0, esto para que los desarrolladores de diferentes proyectos comiencen a implementar el código del mismo.

De momento el mismo es posible implementarlo en android ARM 64bits, aunque aun no esta disponible para otras plataformas prometen portarlo a otras plataformas, cabe destacar que en su kernel algunas librerías que implementa no son libre pero prometen cambiar dicha implementación con otras librerías libres.

Este códec su funcionamiento es muy parecido a los codecs de audio tradicionales implementando un proceso de codificación y decodificación del audio.

Con esto se espera tener llamadas con audio de muy alta calidad con conexiones a Internet muy lentas, ya que a nivel mundial la mayoría de las conexiones móviles son inestables y muy lentas.

Lyra es capaz de codificar audio sin procesar a 3kbps, solo el codec opus se le acerca con 6kbps a casi el doble de conexión necesaria para poder realizar una llamada voip a través de conexiones lentas.

Si quieres saber un poco más al respecto puedes visitar: ai.googleblog.


Nota Final:


Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.


miércoles, 24 de marzo de 2021

Vim #OverMusculed en debian GNU/Linux (tutorial de instalación, complementos y configuración)


¿Qué es VIM?


Podemos obtener la respuesta citando a wikipedia:

Vim (del inglés Vi IMproved) es una versión mejorada del editor de texto Vi, presente en todos los sistemas UNIX. Vim, como su antecesor Vi, se utiliza desde un Terminal en modo texto. Se controla por completo mediante el teclado. Esto es en parte a causa de que Vi fue desarrollado a mediados de la década de 1970, cuando los terminales se comunicaban con un ordenador principal (host) mediante una conexión serie, que no era muy rápida (20 Kbps). Las limitaciones de los terminales de la época dieron lugar al concepto de diferentes modos, idea que ha resultado muy provechosa desde entonces. Vim es casi 100% compatible con Vi, aunque tiene muchas mejoras e incluso cuenta con versiones dotadas de interfaz gráfica y menús que pueden operarse mediante el ratón (gvim o kvim), así como una versión simplificada, evim que se comporta como un editor sin diferentes modos. Hay versiones de Vim disponibles para muchos sistemas operativos y se puede encontrar en casi cualquier sistema GNU/Linux y en todos los sistemas *BSD, donde en muchas ocasiones se puede ejecutar a través de la orden vi, que invoca a Vim a través de un enlace simbólico o un alias. Cuando se inicia vim, lo hace en modo comando, y muestra la versión por pantalla. Fuente: Wikipedia.

A continuación ya conociendo un concepto básico de lo que es VIM, se explicarán una serie de sencillos pasos para tener en el sistema operativo debian GNU/Linux un vim #OverMusculed (Musculoso) para utilizarlo como editor de texto avanzado mediante la consola con funciones de IDE (Integrated Development Environment).

Instalar VIM


Para instalar VIM (entrar en www.vim.org) solo debemos seguir los siguientes pasos:

1.- En modo de usuario root ejecutar:

apt-get install build-essential git

2.- Luego descargar VIM con el siguiente comando:

git clone https://github.com/vim/vim.git

3.- Luego entrar en la carpeta para compilación con:

cd vim/src

4.- Luego compilar e instalar

make

make install

Con estos sencillos pasos se tendrá la versión más reciente de VIM instalada en el sistema operativo debian GNU/Linux.

Activar y modificar configuraciones disponibles por defecto en Vim


Para ello Solo tenemos que editar el archivo ~/.vimrc del home y agregar las siguientes instrucciones de configuración:

- Para activar los numero de linea añadir al archivo:

set number

- Para activar resaltado de sintaxis agregar:

:syntax on

- Resaltado del cursos vertical y horizontalmente:

set cursorline

- Resalta las busquedas hechas con / y n,N agregando:

set hlsearch
set incsearch

- Configurar la identación a 4 espacios:

:set noet ci pi sts=0 sw=4 ts=4
:set et

- Establecer codificación de caracteres  a utf-8:

set encoding=utf-8
set fileencoding=utf-8


- Manejo de pestañas:

map  <C-l> :tabn<CR>
map  <C-h> :tabp<CR>
map  <C-t> :tabnew<CR>
map  <C-x> :tabclose<CR>



Nota: Existen una infinidad de configuraciones que se pueden activar como atajos de teclado y algunas de ellas se verán a continuación en configuraciones de temas de color, complementos (plugins) y atajos de teclado para activar o desactivar los complementos.

Instalar un tema de color:


A continuación se explica usar los temas que vienen por defecto en vim ó como instalar un nuevo tema en vim de forma sencilla. Por defecto vim trae una serie de esquemas de color que podemos usar solo editando el archivo ~/.vimrc , pero ¿cuales son estos temas de color por defecto? a continuación de listan dichos temas:

blue       evening
darkblue   industry
default    koehler
delek      morning
desert     murphy
elflord    pablo
pechpuff   ron
shine      slate
torte      zellner

Solo basta con agregar la siguiente linea con el nombre del esquema de color en el ~/.vimrc :

:colorscheme delek

Es importante tener activo el resaltado con:

:syntax on

Se inicia vim y se podrá ver que el esquema de color ya esta activo.

Si los esquemas de color no son del agrado del usuario se pueden descargar nuevos temas para activarlos en vim puedes obtener nuevos temas desde estas 2 webs:


Al tener un tema para descargar solo hay que hacer los siguientes pasos

1.- Se crea la carpeta "colors" con el siguiente comando:

mkdir ~/.vim/colors

2.- Luego descargamos el archivo a la carpeta con:

wget https://raw.githubusercontent.com/flazz/vim-colorschemes/master/colors/corporation.vim -O ~/.vim/colors/corporation.vim

3.- Luego solo queda activar el esquema de color agredando al archivo ~/.vimrc lo siguiente:

:colorscheme corporation

Es importante tener activo el resaltado y resaltado personalizado con:

:syntax on
filetype plugin indent on

Y listo solo se debe iniciar el vim si el esquema de color estará activo.

Nota: en algunos casos los colores de fondo en algunas terminales no se muestran de forma correcta o no se muestran, si este es su caso solo tiene que agregar la siguiente linea a su  ~/.vimrc

:set  t_Co=256


Instalando algunos complementos en VIM para que funcione como un IDE.


Cabe destacar que VIM dispone de una serie de complementos muy potentes para trabajar con el mismo a continuación se instalarán los complementos fugitive, vim-airline, coc, minimap y nerdtree.

- Instalando fugitive:

Fugitive es un complemento para el manejo de git y tener información del mismo mientras trabajamos en VIM el cual por lo general se usa combinado con el complemento vim-airline el cual se explica su instalación justo después de esta explicación de instalación de fugitive.

1.- Lo primero es crear el directorio destino para este complemento:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se clona el repositorio de fugitive con:

git clone https://github.com/tpope/vim-fugitive.git fungitive

Con estos pasos ya tendremos este complemento disponible no será necesario activarlo ya que vim-airline lo usará el cual es el siguiente complemento a instalar.

- Instalando vim-airline.

Este complemento crea una especia de barra de estado o area de estado en la parte inferior de la pantalla visible de vim la cual muestra información de rama(git), ruta del archivo. entre otras informaciones a continuación procedemos con los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se clona del repositorio air-line a la carpeta destino con:

git clone https://github.com/vim-airline/vim-airline.git airline

Nota: este complemento se activa automaticamente en git solo en necesario reiniciarlo o ejecutarlo para ver que ya el complemento se encuentra disponible.

4.- Luego se habilita las fuentes especiales de airline agregando en el archivo ~/.vimrc lo siguiente:

"configurando fuentes airlines
let g:airline_powerline_fonts = 1
"let g:airline_symbols = 1

Nota: es posible que se deba instalar paquete de fuentes; "airline_powerline_fonts", si las fuentes no están disponibles en el complemento vim-airline.

- Instalando COC:

Este complemento permite disponer de la función de auto completado en VIM que todo IDE tiene disponible para trabajar cuando se esta escribiendo código, a continuación los pasos para instalar este potente complemento el cual soporte muchos lenguajes de programación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio COC a la carpeta destino con:

git clone https://github.com/neoclide/coc.nvim.git coc

Nota: con esto ya VIM tendría COC disponible sin ningún tipo de configuración extra de momento.

- Instalando MiniMap:

Esta complemento crea una representación gráfica generando una barra laterial derecha en la pantalla que es solo informativa para mostrar en que punto del código se encuentra el cursor de la consola a continuación los pasos para su instalación.

- Paso previo 1: Descargar la dependencia de code-minimap en forma de paquete DEB (debian) de la siguiente url: https://github.com/wfxr/code-minimap/releases para este caso se descargo para amd64 la version 4.3 de code minimap con los siguientes comandos:

cd ~/Descargas
wget https://github.com/wfxr/code-minimap/releases/download/v0.4.3/code-minimap_0.4.3_amd64.deb

- Paso previo 2: Luego el siguiente paso sería instalar el paquete deb con el siguiente comando logueado como super usuario o root:

dpkg -i code-minimap_0.4.3_amd64.deb

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio MiniMap a la carpeta destino con:

git clone https://github.com/wfxr/minimap.vim.git minimap

4.- Luego se tiene que agregar las siguiente línea en el archivo ~/.vimrc para setear la combinación de teclas para activar o desactivar MiniMap:

map <C-q> :MinimapToggle<CR>

Esta línea crea la siguiente combinación de teclas como atajos de teclado para activar o desactivar MiniMap en la interfaz de vim la cual sería "Ctrl + q".

El algunos casos el tipo de letra usado en la consola no es muy compatible con el tipo de fuente braille la cual se debera de cambiar a fuentes como bitstream vera sans mono u otra.

También en algunos distribuciones GNU/Linux se deberá alguna de esta 2 configuraciones para resaltar la posición el cursor en el flujo del código en el minimap.

código 1:

hi MinimapCurrentLine ctermfg=Green guifg=#50FA7B guibg=#32302f
let g:minimap_cursor_color = 'MinimapCurrentLine'

código 2:

"let g:minimap_highlight='Visual'


- Instalando NerdTree:

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio NerdTree a la carpeta destino con:

git clone https://github.com/preservim/nerdtree.git nerdtree

4.- Para este complemento se deben agregar las siguientes líneas de configuración en el ~/.vimrc que se muestran a continuación:

autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif

map <C-n> :NERDTreeToggle<CR>

Para que NERDTree Muestre archivos ocultos de tu proyecto debes agregar la siguiente línea:

let NERDTreeShowHidden=1

Las 2 primeras líneas perminen ejecutar el complemento NerdTree al iniciar VIM y la tercera línea activa un atajo de teclado con la combinación de teclas "Ctrl + n" para activar o desactivar NerdTree en la interfaz de Vim.

Solo queda iniciar o reiniciar VIM para observar que el plugin y probar que todos los plugins descritos están disponibles

Si se quieres que el super usuario o root tenga estas funciones solo debes hacer lo siguiente

cp /home/usuario/.vimrc /root/.vimrc
cp -R /home/usuario/.vim /root/

- Instalando autopairs

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio AutoPairs a la carpeta destino con:

git clone https://github.com/jiangmiao/auto-pairs.git autopairs

Este plugin no necesita una configuración puntual, este permite el cierre de ciertos simbologías como lo son: "", {}, [] entre otros caracteres de apertura y cierre usados en el mundo de la programación

- Instalando closetag:

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio CloseTag a la carpeta destino con:

git clone https://github.com/alvan/vim-closetag.git closetag

Este plugin no necesita configuración y lo que hace es que cuando creas la etiqueta de apertura automáticamente crea la etiqueta de cierre ejemplo: <html> y cierra automáticamente con </html>

- Instalando IndentLine:

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio IndentLine a la carpeta destino con:

git clone https://github.com/Yggdroot/indentLine.git indentline

4.- Teniendo IndentLine clonado o descargado solo falta agregar la configuración para el uso del mismo el cual se agregaría lo siguiente al archivo ~./vimrc :

let g:indentLine_defaultGroup = 'SpecialKey'
"let g:indentLine_char_list = ['|', '¦', '┆', '┊']
let g:indentLine_char = '┊'
let g:indentLine_concealcursor = 'inc'
let g:indentLine_conceallevel = 2 

Instalando FZF:

FZF es un complemento para la búsqueda rápida de archivos de acuerdo a coincidencias muy potente. 

1.-  Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se clona el repositorio de fugitive con:

git clone --depth 1 https://github.com/junegun/fzf.git fzf

4.- El siguiente paso es ejecutar el archivo de instalación con el siguiente comando:

./fzf/install

Responder a la preguntas del proceso de instalacion afirmativamente como la letra 'y' y si todo va bien ya se tendrá activo el complemento de fzf en vim.

Nota Final:

Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.

lunes, 2 de noviembre de 2020

¿Cómo saber que hardware y versión de distribución GNU / Linux tengo? (Actualizado)

     Ante todo un cordial Saludo.

     Con esta lista de comandos podremos saber que hardware instalado instalado en nuestra pc, no solo eso también versión de GNU / Linux que usamos y la versión de distribución GNU / Linux.

  • Información del kernel linux instalado, nombre de host y la arquitetura del software.

Comando:
uname -a
Salida tras ejecución:
Linux equipo 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-1 (2016-03-06) x86_64 GNU/Linux

  • Información de la distribución GNU / Linux instalada y su versión.
 
Comando:
cat /etc/issue
Salida tras ejecución:
Debian GNU/Linux 8 \n \l

  • Información de la memoria RAM fisica instalada en el computador.

Comando:
cat /proc/meminfo
Salida tras ejecución:
MemTotal:        6124664 kB
MemFree:         3966872 kB
MemAvailable:    4902276 kB
Buffers:           60356 kB
Cached:          1029496 kB
SwapCached:            0 kB
Active:          1369520 kB
Inactive:         581148 kB
Active(anon):     861660 kB
Inactive(anon):    21868 kB
Active(file):     507860 kB
Inactive(file):   559280 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2399228 kB
SwapFree:        2399228 kB
Dirty:                44 kB
Writeback:             0 kB
AnonPages:        860844 kB
Mapped:           307128 kB
Shmem:             22716 kB
Slab:             103664 kB
SReclaimable:      74380 kB
SUnreclaim:        29284 kB
KernelStack:        5776 kB
PageTables:        32908 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5461560 kB                                                    
Committed_AS:    4496576 kB
VmallocTotal:34359738367 kB
VmallocUsed:      118688 kB
VmallocChunk:34359616508 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      134656 kB
DirectMap2M:     6156288 kB


  • Información del CPU instalado.
Comando:
cat /proc/cpuinfo
Nota: Tambien se puede ejecutar lscpu para obtener una información un poco más resumida
Salida tras ejecución:
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Quad CPU    Q8400  @ 2.66GHz
stepping        : 10
microcode       : 0xa07
cpu MHz         : 2003.000
cache size      : 2048 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority
bogomips        : 5319.52
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Quad CPU    Q8400  @ 2.66GHz
stepping        : 10
microcode       : 0xa07
cpu MHz         : 2003.000
cache size      : 2048 KB
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 4
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority
bogomips        : 5319.52
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 2
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Quad CPU    Q8400  @ 2.66GHz
stepping        : 10
microcode       : 0xa07
cpu MHz         : 2003.000
cache size      : 2048 KB
physical id     : 0
siblings        : 4
core id         : 2
cpu cores       : 4
apicid          : 2
initial apicid  : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority
bogomips        : 5319.52
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Quad CPU    Q8400  @ 2.66GHz
stepping        : 10
microcode       : 0xa07
cpu MHz         : 2003.000
cache size      : 2048 KB
physical id     : 0
siblings        : 4
core id         : 3
cpu cores       : 4
apicid          : 3
initial apicid  : 3
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority
bogomips        : 5319.52
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

  • Información de hardware conectado internamente sea por slot PCI o PCI-e.

Comando:
lspci
Salida tras ejecución:
00:00.0 Host bridge: Intel Corporation 4 Series Chipset DRAM Controller (rev 03)
00:01.0 PCI bridge: Intel Corporation 4 Series Chipset PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation NM10/ICH7 Family High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 2 (rev 01)
00:1d.0 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 (rev 01)
00:1d.2 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 (rev 01)
00:1d.3 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 (rev 01)
00:1d.7 USB controller: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 IDE interface: Intel Corporation NM10/ICH7 Family SATA Controller [IDE mode] (rev 01)
00:1f.3 SMBus: Intel Corporation NM10/ICH7 Family SMBus Controller (rev 01)
01:00.0 Ethernet controller: Qualcomm Atheros AR8152 v2.0 Fast Ethernet (rev c1)
04:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 520] (rev a1)
04:00.1 Audio device: NVIDIA Corporation GF119 HDMI Audio Controller (rev a1)


  • Información de hardware conectado por puerto usb.

Comando:
lsusb
Salida tras ejecución:
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

  • También podemos una lista de hardware conectado incluyendo unidades de disco y sus particiones.

Comando:
ls /dev
Salida tras ejecución:
autofs           loop-control        sda5      tty22  tty47  uinput
block            lp0                 sda6      tty23  tty48  urandom
bsg              mapper              sg0       tty24  tty49  vcs
btrfs-control    mcelog              sg1       tty25  tty5   vcs1
bus              mem                 shm       tty26  tty50  vcs2
cdrom            mqueue              snapshot  tty27  tty51  vcs3
cdrw             net                 snd       tty28  tty52  vcs4
char             network_latency     sr0       tty29  tty53  vcs5
console          network_throughput  stderr    tty3   tty54  vcs6
core             null                stdin     tty30  tty55  vcs7
cpu              nvidia0             stdout    tty31  tty56  vcsa
cpu_dma_latency  nvidiactl           tty       tty32  tty57  vcsa1
cuse             parport0            tty0      tty33  tty58  vcsa2
disk             port                tty1      tty34  tty59  vcsa3
dri              ppp                 tty10     tty35  tty6   vcsa4
dvd              psaux               tty11     tty36  tty60  vcsa5
dvdrw            ptmx                tty12     tty37  tty61  vcsa6
fd               pts                 tty13     tty38  tty62  vcsa7
full             random              tty14     tty39  tty63  vfio
fuse             rfkill              tty15     tty4   tty7   vga_arbiter
hpet             rtc                 tty16     tty40  tty8   vhci
hugepages        rtc0                tty17     tty41  tty9   vhost-net
initctl          sda                 tty18     tty42  ttyS0  watchdog
input            sda1                tty19     tty43  ttyS1  watchdog0
kmsg             sda2                tty2      tty44  ttyS2  xconsole
kvm              sda3                tty20     tty45  ttyS3  zero
log              sda4                tty21     tty46  uhid


  • Infómación de las Unidades de disco conectadas y sus parciones ya sean internas o externas.

Comando:
fdisk -l
Nota: Este comando se ejecuta solo como root o con un usuario con privilegios de administrador o Super Usuario.
Salida tras ejecución:
Disco /dev/sda: 465,8 GiB, 500107862016 bytes, 976773168 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0xb36d6313

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048    206847    204800   100M  7 HPFS/NTFS/exFAT
/dev/sda2          206848 245762047 245555200 117,1G  7 HPFS/NTFS/exFAT
/dev/sda3       245762048 771971071 526209024 250,9G  7 HPFS/NTFS/exFAT
/dev/sda4       771973118 976771071 204797954  97,7G  5 Extended
/dev/sda5  *    771973120 971970559 199997440  95,4G 83 Linux
/dev/sda6       971972608 976771071   4798464   2,3G 82 Linux swap / Solaris


  • Información de la tarjeta madre instalada.

Comando:
dmidecode -t baseboard
Nota: ejecutarlo como root o super usuario.
Salida tras ejecución:

# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
       Manufacturer: Standard
       Product Name: Standard
       Version: To be filled by O.E.M.
       Serial Number: To be filled by O.E.M.
       Asset Tag: To be filled by O.E.M.
       Features:
               Board is a hosting board
               Board is replaceable
       Location In Chassis: To be filled by O.E.M.
       Chassis Handle: 0x0003
       Type: Motherboard
       Contained Object Handles: 0

Handle 0x0025, DMI type 10, 6 bytes
On Board Device Information
       Type: Video
       Status: Enabled
       Description:    To Be Filled By O.E.M.

Handle 0x0033, DMI type 41, 11 bytes
Onboard Device
       Reference Designation:  Onboard IGD
       Type: Video
       Status: Enabled
       Type Instance: 1
       Bus Address: 0000:00:02.0

Handle 0x0034, DMI type 41, 11 bytes
Onboard Device
       Reference Designation:  Onboard LAN
       Type: Ethernet
       Status: Enabled
       Type Instance: 1
       Bus Address: 0000:00:19.0

Handle 0x0035, DMI type 41, 11 bytes
Onboard Device
       Reference Designation:  Onboard 1394
       Type: Other
       Status: Enabled
       Type Instance: 1
       Bus Address: 0000:03:1c.2


     Espero que les guste, esperen mi próxima entrada.

viernes, 2 de agosto de 2019

Cambiar la clave de usuario root de MariaDB en debian 10


     Cuando instalamos mariaDB por defecto en debian 10 no tiene contraseña el usuario root esto es un problema si queremos tener phpmyadmin ya que no dará acceso a mariaDB de esta manera.

     A continuación muestro una serie de sencillos pasos que seguiremos para cambiar la clave del usuario root en mariaDB.

     Accedemos como super usuario (ROOT) a la terminal o consola con el comando:

su

ó

sudo -H -s

     Verificamos que mariaDB se esta ejecutando con:

systemctl is-active mariadb

     Si no esta el proceso iniciado procedemos a iniciarlo con:

systemctl start mariadb

     Luego entramos a mariaDB con el siguiente comando:

mysql -U root -p

     Estando en la interfaz de ejecución de ordenes sql de mariaDB ejecutamos los siguientes comandos:

USE mysql;

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('tucontraseña')

FLUSH PRIVILEGES;

     Donde esta el texto tucontraseña en minusculas se modifica y se coloca la contraseña que se quiere.

     Existe otra forma de hacerlo es la siguiente:

USE mysql;

UPDATE mysql.user SET Password=PASSWORD('tucontraseña') WHERE User='root' AND Host='localhost';

FLUSH PRIVILEGES;

     Luego solo se reinicia mariaDB con:

systemctl start mariadb

     Y listo contraseña cambiada

     Si te gusto esta entrada no dudes de realzar un donativo a la dirección de bitcoins:  1FkJqbNmjr2tca2jDRfAHYy53TMQei5yJw


jueves, 1 de agosto de 2019

Instalar driver realtek en debian 10



     Esta entrada hace referencia al caso de la instalación del driver realtek para tarjetas inalambricas las cuales tienen un chipset Realtek RTL8723BU (mi laptop o notebook es un VIT P1420) y que en nuestro caso el paquete firmware-realtek una vez instalado no funciona o no la maneja bien por defecto en debian 10 buster.

     Buscando en internet encontre la siguiente URL:


     La cual seguí al pie de la letra en sus pasos y agregue un paso extra para el caso de debian los cuales describo a continuación:

     Antes de comenzar entramos como super usuario (ROOT), en la terminal/consola/bash con:

su

     ó

sudo -H -s

     Lo primero es instalar mokutil con el siguiente comando:

mokutil

     Luego ejecutamos:

mokutil --sb-state

     Si tienes activo Secure Boot en el Bios reinicia entra al bios y desactivalo.

     A continuación instala los siguientes paquetes:

apt-get install git build-essential linux-headers-$(uname -r)

     Ahora se descarga el driver con git de la siguiente forma:

git clone https://github.com/lwfinger/rtl8723bu

     Traduciendo lo que dicen en la entrada que me guié: "Ahora va a deshabilitar una línea en el archivo MAKE del nuevo controlador, porque sin este truco, se mostrarán dos instancias del chipset inalámbrico en Network Manager (que por supuesto sería extraño e inútil). El siguiente comando es una línea enorme" según lo dicho aquí copiamos y pegamos en nuestra terminal/consola/bash y pulsamos enter con lo siguiente:

sed -i 's/EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE/#EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE/g' ~/rtl8723bu/Makefile

     Luego entramos en el directorio del driver:

cd rtl8723bu

     Compilamos con

make

     Instalamos con el siguiente comando:

make install

     Luego desactivamos el driver defectuoso editando ó creando el siguiente archivo:

nano /etc/modprobe.d/blacklist.conf

     En el archivo agregamos lo siguiente:

# The rtl8xxxu driver is flawed,
# so it needs to be prevented from loading.
# This should give the 8723au or the 8723bu driver
# the chance to load instead.
blacklist rtl8xxxu

     Y listo solo reiniciamos con el siguiente comando

init 6

     ó

reboot

     Al iniciar de nuevo el computador u ordenador debería estar ya funcionando nuestra tarjeta de red Wireless.


     Si te gusto esta entrada no dudes en dejar un donativo a mi dirección de bitcoins: 1FkJqbNmjr2tca2jDRfAHYy53TMQei5yJw

domingo, 26 de mayo de 2019

Certificaciones en línea gratuitas.

     Podrás certificarte gratuitamente para mejorar tu Curriculum para el area laboral en el siguente enlace:






     Si te gustó esta entrada no dudes en realizar un donativo.


jueves, 21 de febrero de 2019

¿Cómo buscar archivos a traves de la consola en GNU/Linux?


     Lo primero que debemos saber es ¿Qué es find o comando find?

Find es un comando común en sistemas Unix que se utiliza para encontrar archivos en un determinado directorio a partir de diversas reglas de búsqueda, tales como nombre exacto de archivo, fecha de creación, tamaño, permisos, etc. llegando a ser muy flexible y una de las herramientas más útiles en la administración de sistemas cuando se sabe utilizar. En los sistemas GNU/Linux forma parte del paquete findutils.
Fuente: wikipedia

     Con el siguiente comando podremos buscar en todo nuestro sistema operativo algún archivo que no encontremos fácilmente a continuación el comando:

find / -name arch.txt

     Donde find es el comando el / es el directorio donde se buscara el archivo y donde -name le decimos a find que busque por nombre y arch.txt es el nombre del archivo a buscar.

     Búsquedas en múltiples directorios:

     Find es una herramienta que no se limita a la búsqueda en un solo directorio el mismo puede hacer búsquedas en múltiples directorios a continuación un ejemplo:

find /home/usuario/documentos /home/usuario/descargas -name arch.txt

     Búsquedas de acuerdo al tiempo de creación o modificación de los archivos.

     Se disponen aun de funciones más avanzadas para la realización de búsquedas a continuación una búsqueda de los archivos modificados los últimos 30 minutos:

find / -mmin -30 -type f

     Los modificados exactamente hace 30 minutos:

find / -mmin 30 -type f

     Si quieres buscar en un rango específico de minutos, con el siguiente ejemplo buscarías todos los directorios que hayan cambiado hace más de 10 minutos (+10) y menos de 30 (-30):


find / -mmin +10 -mmin -30 -type d

     Find ofrece varias opciones de búsqueda por tiempo, pero las principales son: -amin, -atime, -cmin, ctime, -mmin y -mtime. "min" es para periodos de minutos y "time" para periodos de 24 horas. Los que empiezan con "a" (access) indica el tiempo en que fue accedido (leido) por última vez un archivo. Los que empiezan con "c" (change) indica el tiempo que cambió por última vez el status de un archivo, por ejemplo sus permisos. Los que empiezan con "m" (modify) indica el tiempo en que fue modificado (escrito) por última vez un archivo. Una consideración a tener con las búsquedas -atime, -ctime y -mtime es que el tiempo se mide en periodos de 24 horas y estos son siempre truncados, con ejemplos es más claro:

find . -mtime 0  (busca archivos modificados entre ahora y hace un dia)
find . -mtime -1 (busca archivos modificados hace menos de un dia)
find . -atime 1  (busca archivos accedidos entre hace 24 y 48 horas)
find . -ctime +1 (busca archivos cuyo status haya cambiado hace más de 48 horas)

     Búsquedas de acuerdo al uso de almacenamiento en disco de los archivo.

Con find es muy fácil realizar búsquedas por tamaño, se indica con la opción -size, se aplican las mismas reglas para argumentos numéricos (+n -n n).

find /var/log -size +15000k -name "*.jpg" (busca archivos mayores a 15 megas del tipo jpg)

find $HOME -800c (busca en tu home todos los archivos menores a 800 bytes (799 realmente)

(archivos de tamaño comprendidos entre 1mb y 10mb)

find . -size +1000k -and -size -10000k

     Se admiten cuatro parámetros después del número en -size:

c = bytes
w = 2 byte words
k = kilobytes
b = 512-byte bloques

     Para buscar archivos vacíos puedes entonces hacer lo siguiente:

find . -size 0c

     (Aunque la opción -empty hace lo mismo más eficientemente)

find . -empty

     Cualquiera de los ejemplos anteriores dará un aburrido listado de los archivos y sus rutas. Si lo que quieres es realizar una acción (ejecutar un comando) sobre estos usa entonces la opción entonces -exec.

     Comparaciones -and, -or y -not.

     Find también incluye operadores booleanos que la hace una herramienta aun más últil:

find /home -name 'ventas*' -and -mmin 120

find /home -name 'reporte[_-]*' -not -user sergio

find /home -iname '*enero*' -or -group gerentes

     El primer ejemplo busca todos los archivos que comiencen con 'ventas' Y que hayan sido modificados o cambiados en las últimas dos horas (120 minutos).

     El segundo ejemplo busca todos los archivos que comiencen con 'reporte' y después siga un _ o un - y que NO pertenezcan al usuario sergio.

     El tercer ejemplo busca todos los archivos que contengan la palabra enero, Enero, ENERO, etc. (sin importar si lleva mayúsculas o minúsculas) O cualquier otro archivo que encuentre que pertenezca al grupo 'gerentes'.

     Estas opciones de booleanos tienen su correspondiente abreviatura: -and se puede indicar también como -a -or se puede indicar también como -o -not se puede indicar también como !

     Opción -exec para la ejecución de otros comandos.

     -exec permite ejecutar acciones sobre el resultado de cada línea o archivo devuelto por find, o en otras palabras permite incorporar comandos externos para ejecutar sobre cada resultado devuelto. Muy interesante.
     Asi por ejemplo, si queremos buscar todos los archivos mayores a 3 megas en /var y además mostrar su salida en formato ls, podemos hacer lo siguiente:

find /var -size +3000k -exec ls -lh {} \;

Después de ls -lh que nos devuelve una salida formateada de ls se indica la cadena '{}' que se sustituye por cada salida de find. No hay límite para lo que se puede lograr, asi por ejemplo, borrar todo lo mayor a un mega en /tmp.

find /tmp -size +1024k -exec rm -f {} \;

Por cierto si usas la versión GNU de find (y creo que todos los que usamos Linux la tenemos, compruébalo con find --version)), lo anterior también funciona directamente con la opción -delete:

find /tmp -size +3000k -delete (lo mismo que usar -exec con rm)


     Si te gustó esta entrada no dudes en realizar un donativo.


¿Cómo verificar y reparar sectores de disco dañados en linux? badblocks


Hay momentos en el cual ya despues de un largo tiempo de trabajo nuestro disco duro comienza a fallar o a generarse sectores dañados y necesitamos una aplicación que no ayude a encontrar esos sectores de disco dañados para alargar un poco la vida de nuestro disco en nuestro caso disponemos de una aplicación en linux muy util se llama badblocks.

Pero... ¿Qué es badblocks?.
Badblocks es una utilidad disponible para Linux que permite localizar y aislar los sectores defectuosos de una unidad de disco. Este programa genera una lista de los sectores dañados en el disco que puede ser leída por otros programas, como mkfs, a fin de evitar su uso y prevenir así problemas de corrupción y pérdida de datos. Es parte del proyecto e2fsprogs,​ y está disponible una versión portada a sistemas BSD.
Fuente: wikipedia
¿Cómo usarlo?.

Lo primero es la nomenclatura que usa linux para identificar nuestro disco duro la cual ejecutamos como administrador o root:

fdisk -l

     Luego sabiendo la nomenclatura o identificación de nuestro disco en este caso es /dev/sda, ejecutamos:

Forma no destructiva y recupera los sectores dañados en el que la información en el disco no será dañada:

badblocks -svnf /dev/sda

Donde le estamos indicando lo siguiente:
-s. Nos muestra el proceso de escaneo del disco, mostrándonos los sectores ya chequeados.
-v. Nos indica el modo de escritura utilizado.
-n. Nos pone en modo no destructivo, esto quiere decir que se recuperarán los sectores dañados y la información en el disco duro no será dañada o eliminada.
-f. Reparará los sectores dañados.

La opción f es para forzar la lectura y escritura en caso de que el disco este montado, el proceso es bastante lento y puedes durar inclusive varias horas dependiendo de la capacidad del disco duro.

Forma destructiva recupera los sectores dañados pero la información en el disco se pierde o es destruida:

badblocks -wvs /dev/sdb

– w: Modo escritura (destructivo).
-s. Nos muestra el proceso de escaneo del disco, mostrándonos los sectores ya chequeados.
-v. Nos indica el modo de escritura utilizado.

Es bueno verificar regularmente cada mes nuestro disco ejecutando.

badblock -s /dev/sda

Si te gusto esta entrada no dudes en realizar un donativo esto me permitirá dedicarle más tiempo al blog.

viernes, 30 de noviembre de 2018

Virtualización qemu con pendrives, cdrom e imágenes de cd y pendrive live



     Ya hace algún tiempo desde que realice una publicación que explicaba el uso de qemu pero veo que con las nuevas versiones de qemu hay nuevas funcionalidades, permite aprovechar mejor nuestro hardware y dispone ahora de nuevas opciones para su uso y hay poca documentación en español al respecto con esta entrada mostraré como trabajar con qemu y realizar virtualizaciones con el mismo usando periféricos disponibles en nuestro ordenador o computador con una serie de sencillos parámetros.

     Lo primero es ejecutar como usuario normal a través de la terminal o consola el siguiente comando:

     xhost +

     Este comando permite ejecutar interfaces gráficos como administrador o usuario root en linux más que todo en la interfaz gráfica de usuario KDE.

     Luego nos logueamos como administrador con el comando:

     su (caso debian)

     sudo -H -s (Caso ubuntu u otras distribuciones).

      Luego creamos el directorio y entramos en el con el siguiente comando:

     mkdir sistemasvirtualizados && cd sistemasvirtualizados

     Creamos ahora la imagen de disco donde se instalará el sistema a virtualizar:

     qemu-img create imagen_del_so.img 64G

     Ahora ya tenemos la imagen a ejecutar ahora ¿Cómo hacemos para comenzar la instalación si tenemos el sistema a instalar en un pendrive booteable? con el siguiente comando:

     qemu-system-x86_64 -hda imagen_del_so.img -usb -usbdevice disk:/dev/sdb -m 1024 -smp 4,sockets=4,cores=2,threads=2

     Este comando comenzará la virtualizanción pero vamos a explicarlo más a detalle el comando.

     ¿Por que el comando es qemu-system-x86_64?

     Es sencillo en nuevas versiones del mismo adapta mejor las virtualizaciones para emular las diferentes arquitecturas de hardware.

     Si ejecutamos ls /usr/bin | grep qemu-system veremos esto:

     qemu-system-aarch64
     qemu-system-alpha
     qemu-system-arm
     qemu-system-cris
     qemu-system-i386
     qemu-system-lm32
     qemu-system-m68k
     qemu-system-microblaze
     qemu-system-microblazeel
     qemu-system-mips
     qemu-system-mips64
     qemu-system-mips64el
     qemu-system-mipsel
     qemu-system-moxie
     qemu-system-or32
     qemu-system-ppc
     qemu-system-ppc64
     qemu-system-ppcemb
     qemu-system-s390x
     qemu-system-sh4
     qemu-system-sh4eb
     qemu-system-sparc
     qemu-system-sparc64
     qemu-system-unicore32
     qemu-system-x86_64
     qemu-system-xtensa
     qemu-system-xtensaeb

     Estas son algunas de las formas pre-establecidas para ejecutar qemu emulando cierto hardware especifico para virtualizar el sistema operativo.

     La opción -hda imagen_del_so.img permite usar la imagen que emula a un disco duro virtual que creamos.

     La opción -usb -usbdevice disk:/dev/sdb permite ejecutar nuestro pendrive booteable y comenzar la instalación hacia nuestro disco duro virtual.

     La opción -m 1024 nos permite asignar la memoria ram al sistema a virtualizar en MegaBytes.

     La opción -smp 4,sockets=4,cores=2,threads=2 esta opción nos permite asignar parametros y potencia de tiempo de trabajo de nuestro CPU trabajar esta opción con cuidado o no usarla.

     Pero que pasa si nuestro instalador no esta en un pendrive si no en un cd-rom/dvd-rom/br pues ejecutamos la virtualización de la siguiente manera.

     qemu-system-x86_64 -hda imagen_del_so.img -boot d -cdrom /media/cdrom -m 1024 -smp 4,sockets=4,cores=2,threads=2

     Donde -boot d -cdrom /media/cdrom nos permite ejecutar la instalación desde nuestra unidad física de cd-rom/dvd-rom/br.

     Pero viene otro caso no tenemos ningún cdrom o ningún pendrive booteable pero en nuestro disco tenemos la imagen de pendrive booteable o la imagen iso de nuestro sistema de instalación a continuación muestro como haríamos en cada caso:

     Caso Imagen iso de cdrom (nota tenerla en el mismo directorio donde estamos virtualizando nuestro sistema para mayor comodidad)

     qemu-system-x86_64 -hda imagen_del_so.img -boot d -cdrom debian9.iso -m 1024 -smp 4,sockets=4,cores=2,threads=2

     Caso pendrive imagen .img:

     qemu-system-x86_64 -hda imagen_del_so.img -usb -usbdevice disk:debian8liveusb.img -boot menu=on -m 1024 -smp 4,sockets=4,cores=2,threads=2

     Otras opciones que podemos usar:
  • -k idioma Con esto le estaríamos especificando el tipo de teclado que estaríamos utilizando. Si es un teclado español, colocamos -k es, si es un teclado ingles utilizamos -k en-us. El teclado por defecto es en-us
  • -full-screen Esto nos permite iniciar la máquina virtual en pantalla completa.
  • -net none Esta opción no nos configura los dispositivos de Red en el Sistema Operativo que vallamos a usar/instalar. Sería bueno activarla cuando no queramos utilizar la RED en dicha máquina virtual.
  • -nographic Qemu utiliza las librerías SDL para poder mostrar lo gráficos. Si el sistema operativo que vallamos a instalar no utiliza gráficos si no una línea de comandos podríamos utilizar este parámetro.
     Hay virtualizaciones más avanzadas que a futuro espero crear entradas explicando como se pueden realizar.


     Si te gustan mis publicaciones no dudes en realizar un donativo.