Páginas

Mostrando entradas con la etiqueta Archlinux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Archlinux. Mostrar todas las entradas

domingo, 3 de octubre de 2021

FreeBSD vm-bhyve X11 Forwarding usando SSH

Ejecutar aplicaciones X11 desde invitado vm-bhyve en host.

La(s) aplicacion(es) se ejecutan en la máquina virtual invitada, sin embargo, se muestra en el host. La importancia de esto radica en que puede ejecutar una aplicación en una lugar y mostrar la ventana en el host.

Si una aplicación no es soportada en la máquina host pero bien soportada en la vm podrá ejecutarse en una ventana del host.

Ejecutar Firefox en una vm y mostrarlo en el host FreeBSD 13.0
basado en el reenvío X11 usando ssh.

# vm list
NAME          DATASTORE  LOADER     CPU  MEMORY  VNC  AUTOSTART  STATE
alpine        default    grub       1    512M    -    No         Stopped
arch          default    grub       1    512M    -    No         Stopped
freebsd-12-2  default    bhyveload  1    256M    -    No         Stopped

Iniciar y conectarse a la máquina virtual para permitir el reenvío X11.

# vm start alpine
# vm console alpine

# vm switch info

------------------------
Virtual Switch: public
------------------------
  type: standard
  ident: vm-public
  vlan: -
  physical-ports: re0
  bytes-in: 673338 (657.556K)
  bytes-out: 602940 (588.808K)

  virtual-port
    device: tap2
    vm: alpine

# vm info

------------------------
Virtual Machine: alpine
------------------------
  state: running (25889)
  datastore: default
  loader: grub
  uuid: 3dfa8278-1ca9-11ec-b451-fc3fdbd15275
  uefi: default
  cpu: 1
  memory: 512M
  memory-resident: 123006976 (117.308M)

  console-ports
    com1: /dev/nmdm-alpine.1B

  network-interface
    number: 0
    emulation: virtio-net
    virtual-switch: public
    fixed-mac-address: 58:9c:fc:03:37:ea
    fixed-device: -
    active-device: tap2
    desc: vmnet-alpine-0-public
    mtu: 1500
    bridge: vm-public
    bytes-in: 291480 (284.648K)
    bytes-out: 2158 (2.107K)

  virtual-disk
    number: 0
    device-type: file
    emulation: virtio-blk
    options: -
    system-path: /zroot/vm/alpine/disk0.img
    bytes-size: 10737418240 (10.000G)
    bytes-used: 1160348672 (1.080G)

  snapshots
    zroot/vm/alpine@snap1_300921	452K	jue. sept. 30 17:31 2021

------------------------
Virtual Machine: arch
------------------------
  state: running (43467)
  datastore: default
  loader: grub
  uuid: a923082e-1deb-11ec-9f91-fc3fdbd15275
  uefi: default
  cpu: 1
  memory: 512M
  memory-resident: 164139008 (156.535M)

  console-ports
    com1: /dev/nmdm-arch.1B

  network-interface
    number: 0
    emulation: virtio-net
    virtual-switch: public
    fixed-mac-address: 58:9c:fc:0e:36:e4
    fixed-device: -
    active-device: tap0
    desc: vmnet-arch-0-public
    mtu: 1500
    bridge: vm-public
    bytes-in: 15132 (14.777K)
    bytes-out: 0 (0.000B)

  virtual-disk
    number: 0
    device-type: file
    emulation: virtio-blk
    options: -
    system-path: /zroot/vm/arch/disk0.img
    bytes-size: 9663676416 (9.000G)
    bytes-used: 4176012288 (3.889G)

  snapshots
    zroot/vm/arch@snap1_300921	2.55M	jue. sept. 30 17:31 2021

------------------------
Virtual Machine: freebsd-12-2
------------------------
  state: running (52279)
  datastore: default
  loader: bhyveload
  uuid: e7d636e0-236b-11ec-8cb5-fc3fdbd15275
  uefi: default
  cpu: 1
  memory: 256M
  memory-resident: 138010624 (131.617M)

  console-ports
    com1: /dev/nmdm-freebsd-12-2.1B

  network-interface
    number: 0
    emulation: virtio-net
    virtual-switch: public
    fixed-mac-address: 58:9c:fc:0b:f1:00
    fixed-device: -
    active-device: tap1
    desc: vmnet-freebsd-12-2-0-public
    mtu: 1500
    bridge: vm-public
    bytes-in: 300815 (293.764K)
    bytes-out: 1947 (1.901K)

  virtual-disk
    number: 0
    device-type: file
    emulation: virtio-blk
    options: -
    system-path: /zroot/vm/freebsd-12-2/disk0.img
    bytes-size: 9663676416 (9.000G)
    bytes-used: 2805482496 (2.612G)

# /etc/hosts

# Host Database
#
# This file should contain the addresses and aliases for local hosts that
# share this file.  Replace 'my.domain' below with the domainname of your
# machine.
#
# In the presence of the domain name service or NIS, this file may
# not be consulted at all; see /etc/nsswitch.conf for the resolution order.
#
#
::1                     localhost localhost.my.domain
127.0.0.1               localhost localhost.my.domain
192.168.88.183          fbsd
192.168.88.149          arch
192.168.88.150          alpine
192.168.88.151          freebsd-12-2
#
# Imaginary network.
#10.0.0.2               myname.my.domain myname

carlos@freebsd:~ % ssh carlos@alpine

The authenticity of host 'alpine (192.168.88.150)' can't be established.
ECDSA key fingerprint is SHA256:SwvwUhTBiIMr4IdzZ4yvaIcu21Xf4WSF2B5+tABLHz0.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'alpine' (ECDSA) to the list of known hosts.
carlos@alpine's password:
Welcome to Alpine!

The Alpine Wiki contains a large amount of how-to guides and general
information about administrating Alpine systems.
See <http://wiki.alpinelinux.org/>.

You can setup the system with the command: setup-alpine

You may change this message by editing /etc/motd.

alpine:~$ su
Password:
alpine:/home/carlos# 

alpine:/home/carlos#  apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
v3.14.2-68-gbf3cc5c973 [http://dl-cdn.alpinelinux.org/alpine/v3.14/main]
OK: 4791 distinct packages available

alpine:/home/carlos#  apk add vim
OK: 1008 MiB in 146 packages

Cambiar en el archivo /etc/ssh/sshd_config

alpine:/home/carlos# vim /etc/ssh/sshd_config

X11Forwarding no
por
X11Forwarding yes

Guardar y salir

alpine:/home/carlos# vim /etc/apk/repositories 

#/media/cdrom/apks
#http://dl-cdn.alpinelinux.org/alpine/v3.14/main
#http://dl-cdn.alpinelinux.org/alpine/v3.14/community
http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community
http://dl-cdn.alpinelinux.org/alpine/edge/testing

alpine:/home/carlos# apk update
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
v3.15.0_alpha20210804-3464-gdb0fea5e0a [http://dl-cdn.alpinelinux.org/alpine/edge/main]
v3.15.0_alpha20210804-3463-g250f668bc0 [http://dl-cdn.alpinelinux.org/alpine/edge/community]
v3.15.0_alpha20210804-3457-g949ce4d971 [http://dl-cdn.alpinelinux.org/alpine/edge/testing]
OK: 20227 distinct packages available

alpine:/home/carlos# reboot

alpine:/home/carlos# Connection to alpine closed by remote host.
Connection to alpine closed.
carlos@freebsd:~ %

carlos@freebsd:~ % ssh carlos@alpine
carlos@alpine's password:
Welcome to Alpine!

The Alpine Wiki contains a large amount of how-to guides and general
information about administrating Alpine systems.
See <http://wiki.alpinelinux.org/>.

You can setup the system with the command: setup-alpine

You may change this message by editing /etc/motd.

alpine:~$ 

En la máquina host, (freebsd), utilizando xhost se habilita sólo al usuario autorizado.

carlos@freebsd:~ % xhost
access control enabled, only authorized clients can connect

Se añade la dirección IP de Alpine:

carlos@freebsd:~ % xhost +inet:192.168.88.150
192.168.88.150 being added to access control list
carlos@freebsd:~ %

Ejecutar la aplicación Firefox
dentro de la máquina virtual, pero sólo se muestra en el host:

Se ejecuta usando ssh:

carlos@freebsd:~ % ssh carlos@alpine -X "firefox no-remote"
carlos@alpine's password:
Welcome to Alpine!

The Alpine Wiki contains a large amount of how-to guides and general
information about administrating Alpine systems.
See <http://wiki.alpinelinux.org/>.

You can setup the system with the command: setup-alpine

You may change this message by editing /etc/motd.

/usr/bin/xauth:  file /home/carlos/.Xauthority does not exist
alpine:~$

Para no introducir más contraseñas se generan las claves pública y privada nuevamente:

carlos@freebsd:~ % ssh-keygen -t rsa -b 4096 -C "carlos@freebsd"
Generating public/private rsa key pair.
Enter file in which to save the key (/usr/home/carlos/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /usr/home/carlos/.ssh/id_rsa.
Your public key has been saved in /usr/home/carlos/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:RkURbfj//UwqDmVOhVOQQ1qMae69/DZueCzFliRdHZc carlos@freebsd
The key's randomart image is:
+---[RSA 4096]----+
|         .=X+=.o+|
|         .=oO oEo|
|        .o.= =   |
|       .  o B    |
|        S. O o   |
|       .  o B .  |
|           Oo. .o|
|          o.Oo +o|
|           +.oo +|
+----[SHA256]-----+

Arch Linux instalar openssh
# vim /etc/pacman.conf

[multilib]
Include = /etc/pacman.d/mirrorlist

Guardar y salir

# pacman -Syu

# pacman -S openssh

[root@arch ~]# systemctl status sshd
* sshd.service - OpenSSH Daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor pre>
     Active: inactive (dead)
     
[root@arch ~]# systemctl start sshd
[root@arch ~]# ls -a
.   .bash_history  .config  .lesshst  Desktop	 Downloads  Pictures  Templates
..  .cache	   .gnupg   .viminfo  Documents  Music	    Public    Videos

[root@arch ~]# systemctl status sshd
* sshd.service - OpenSSH Daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor pre>
     Active: active (running) since Mon 2021-10-04 19:03:03 CEST; 37s ago

Iniciar el servicio sshd con el arranque del sistema:

[root@arch ~]# systemctl enable sshd

Copiar a las vm

carlos@freebsd:~ % ssh-add
Identity added: /usr/home/carlos/.ssh/id_rsa (carlos@freebsd)
carlos@freebsd:~ % ssh-copy-id carlos@alpine
carlos@alpine's password: 
carlos@freebsd:~ % 

El procedimiento es el mismo para las demás máquinas virtuales

carlos@freebsd:~ % ssh-copy-id carlos@arch
carlos@alpine's password: 
carlos@freebsd:~ %      
           
carlos@freebsd:~ % ssh-copy-id carlos@freebsd-12-2
carlos@alpine's password: 
carlos@freebsd:~ %                           
                  
Llegados a este punto la conexión ssh se realiza mediante clave.

carlos@freebsd:~ % ssh carlos@alpine -X "firefox no-remote" &
[1] 96751
carlos@freebsd:~ %

carlos@freebsd:~ % su
Password:

root@freebsd:/usr/home/carlos # vm list
NAME          DATASTORE  LOADER     CPU  MEMORY  VNC  AUTOSTART  STATE
alpine        default    grub       1    512M    -    No         Running (40797)
arch          default    grub       1    512M    -    No         Stopped
freebsd-12-2  default    bhyveload  1    256M    -    No         Stopped
root@freebsd:/usr/home/carlos # vm stop alpine
Sending ACPI shutdown to alpine
root@freebsd:/usr/home/carlos # vm list
NAME          DATASTORE  LOADER     CPU  MEMORY  VNC  AUTOSTART  STATE
alpine        default    grub       1    512M    -    No         Stopped
arch          default    grub       1    512M    -    No         Stopped
freebsd-12-2  default    bhyveload  1    256M    -    No         Stopped
root@freebsd:/usr/home/carlos # 

FreeBSD es genial!.

sábado, 25 de septiembre de 2021

Virtualizacion bhyve zfs FreeBSD 13.0

Virtualización BSD bhyve zfs FreeBSD 13.0

https://wiki.freebsd.org/bhyve
https://github.com/churchers/vm-bhyve

FreeBSD como anfitrión con bhyve

De forma predeterminada, bhyve proporciona acceso a la consola serie y no emula una consola gráfica. 

Comprobar si el procesador Intel soporta virtualización:

# dmesg | grep vt
[drm]   - kern.vt.fb.modes.DP-1
[drm]   - kern.vt.fb.default_mode
...

El primer paso para crear una máquina virtual en bhyve es configurar el sistema host cargando  el módulo del kernel de bhyve.

# kldload vmm

# kldstat|grep vmm
26    1 0xffffffff83200000   53a420 vmm.ko

El módulo se cargará automáticamente al iniciar el sistema agregando vmm a la linea kld_list del archivo /etc/rc.conf.

# sysrc kld_list+="vmm"

kld_list="fusefs /boot/modules/i915kms.ko vmm"

El siguiente paso es instalar bhyve virtual machine vm-bhyve, bhyve-firmware y grub2-bhyve. Este último para entornos linux o máquinas virtuales que requieran grub.

# pkg install vm-bhyve bhyve-firmware grub2-bhyve

Crear un conjunto de datos zfs llamado vm donde estarán almacenadas las máquinas virtuales. El grupo de almacenamiento se llama zroot.

# zfs create zroot/vm

# zfs list

NAME                               USED  AVAIL     REFER  MOUNTPOINT
zroot                             16.9G  88.6G       96K  /zroot
zroot/ROOT                        8.60G  88.6G       96K  none
zroot/ROOT/default                8.60G  88.6G     8.56G  /
zroot/ROOT/system_freebsd_180921     8K  88.6G     8.53G  /
zroot/export                       416K  88.6G       96K  /zroot/export
zroot/tmp                          312K  88.6G      192K  /tmp
zroot/usr                         7.65G  88.6G       96K  /usr
zroot/usr/home                    6.84G  88.6G     1.76G  /usr/home
zroot/usr/home/carlos             3.40G  88.6G     3.40G  /usr/home/carlos
zroot/usr/ports                    832M  88.6G      832M  /usr/ports
zroot/usr/src                      104K  88.6G       96K  /usr/src
zroot/var                         1.78M  88.6G       96K  /var
zroot/var/audit                    104K  88.6G       96K  /var/audit
zroot/var/crash                    104K  88.6G       96K  /var/crash
zroot/var/log                     1.10M  88.6G      752K  /var/log
zroot/var/mail                     216K  88.6G      128K  /var/mail
zroot/var/tmp                      164K  88.6G      100K  /var/tmp
zroot/vm                           686M  88.6G      133M  /zroot/vm
Habilitar vm-bhyve en /etc/rc.conf y configurar el conjunto de datos que se utilizará

# sysrc vm_enable="YES"
# sysrc vm_dir="zfs:zroot/vm"

En este punto guardar y reiniciar el sistema.

Debe tener los módulos vmm ejecutándose en segundo plano:

# kldstat | grep vmm
26    1 0xffffffff83200000   53a420 vmm.ko

Ejecutar el comando vm init crea los directorios necesarios en $vm_dir.

# vm init

Crear un directorio llamado .templates

# mkdir -p /vm/.templates
# ls /vm/.templates/

Listando los archivos de configuración para todos los posibles sistemas operativos compatibles que pueden ejecutarse como invitado:
# ls /usr/local/share/examples/vm-bhyve/
alpine.conf       coreos.conf       freepbx.conf      ubuntu.conf
arch.conf         debian.conf       linux-zvol.conf   windows.conf
centos6.conf      default.conf      netbsd.conf
centos7.conf      dragonfly.conf    openbsd.conf
config.sample     freebsd-zvol.conf resflash.conf

Crear un conmutador virtual (switch) llamado public y adjuntar la interfaz de 
red Ethernet a él.
# vm switch create public # vm switch add public re0 # vm switch list NAME TYPE IFACE ADDRESS PRIVATE MTU VLAN PORTS public standard vm-public - no - - re0

Firewall IPFW:

Permitir el paso de paquetes bhyve

net.link.bridge.ipfw=1
# sysctl net.link.bridge.ipfw=1

Hacer el cambio permanente
net.link.bridge.ipfw=1

Instalar y ejecutar sistemas operativos invitados virtualizados

FreeBSD virtualizacion vm-bhyve - Arch Linux

Descargar Arch Linux

# vm iso https://mirror.cyberbits.eu/archlinux/iso/2022.06.01/archlinux-2022.06.01-x86_64.iso

Copiar la plantilla para Arch Linux - arch.conf
# cp /usr/local/share/examples/vm-bhyve/arch.conf /zroot/vm/.templates/

# vm iso
DATASTORE           FILENAME
default             archlinux-2022.06.01-x86_64.iso
default             fetch.out

Importante: Cambiar los parámetros vmlinuz, archiso y archisobasedir a sus valores correctos:

# cat /zroot/vm/.templates/arch.conf
loader="grub"
cpu=1
memory=512M
network0_type="virtio-net"
network0_switch="public"
disk0_type="virtio-blk"
disk0_name="disk0.img"
grub_install0="linux /arch/boot/x86_64/vmlinuz-linux archisobasedir=arch archisolabel=ARCH_202206 ro"
grub_install1="initrd /arch/boot/x86_64/initramfs-linux.img"

Crear vm -t template -s size nombre
# vm create -t arch -s 9G arch

Instalar en primer plano vm -f dentro de arch una vm con arhivo iso
# vm install -f arch archlinux-2021.09.01-x86_64.iso

Particionar el disco:

# cfdisk
Elegir dos para BIOS

 
root@archiso ~ # fdisk -l
Disk /dev/vda: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 131072 bytes
I/O size (minimum/optimal): 131072 bytes / 131072 bytes
Disklabel type: dos
Disk identifier: 0xae1d35ff

Device     Boot    Start      End  Sectors  Size Id Type
/dev/vda1  *        2048  1050623  1048576  512M 83 Linux
/dev/vda2        1050624 16779263 15728640  7.5G 83 Linux
/dev/vda3       16779264 17827839  1048576  512M 82 Linux swap / Solaris

Disk /dev/loop0: 662.69 MiB, 694882304 bytes, 1357192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Crear los sistemas de ficheros:

root@archiso ~ # mkfs.ext2 /dev/vda1
mke2fs 1.46.4 (18-Aug-2021)
Creating filesystem with 262144 1k blocks and 65536 inodes
Filesystem UUID: 0b6850ec-379f-4be5-ac4f-fcafae08fbbc
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done 

root@archiso ~ # mkfs.ext4 /dev/vda2
mke2fs 1.46.4 (18-Aug-2021)
Creating filesystem with 2555648 4k blocks and 638976 inodes
Filesystem UUID: 34353334-88c2-40b9-930a-8c788705545e
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

root@archiso ~ # mkswap /dev/vda3
root@archiso ~ # swapon /dev/vda3

Montando las particiones:

root@archiso ~ # mount /dev/vda2 /mnt
root@archiso ~ # mkdir -p /mnt/boot
root@archiso ~ # mount /dev/vda1 /mnt/boot

El comando pacstrap para indicar donde queremos instalar los paquetes desde los repositorios arch, y lo que queremos instalar

root@archiso ~ # pacstrap /mnt base base-devel grub ntfs-3g networkmanager xdg-user-dirs linux linux-firmware vim dhcpcd openssh

Generar fstab
root@archiso ~ # genfstab -pU /mnt >> /mnt/etc/fstab

Entrar en arch chroot

root@archiso ~ # arch-chroot /mnt
[root@archiso /]#

Establecer la zona horaria:
[root@archiso /]# ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime

[root@archiso /]# echo rioarch > /etc/hostname

[root@archiso /]# nano /etc/locale.gen
es_ES.UTF-8 UTF-8

[root@archiso /]# echo LANG=es_ES.UTF-8 > /etc/locale.conf

Generar el archivo locale.gen con el siguiente comando:
[root@archiso /]# locale-gen

Cuando GNU/Linux arranca, el sistema está configurado para leer el reloj interno del equipo, después el reloj del sistema, que es independiente. Usaremos el comando hwclock -w para ajustar el reloj interno.
[root@archiso /]# hwclock -w

Configurar distribución de teclado
[root@archiso /]# echo KEYMAP=la-latin1 > /etc/vconsole.conf

Instalar grub

Ahora procedamos a instalar el grub y usar el comando correcto, sin UEFI
[root@archiso /]# grub-install /dev/vda
Installing for i386-pc platform.
Installation finished. No error reported.

Actualizar grub

Creamos el archivo grub.cfg
[root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg

[root@archiso /]# passwd
New password:
Retype new password:
passwd: password updated successfully

Agregar usuario no privilegiado
useradd -m -g users -G storage,wheel,power -s /bin/bash carlos

Establecer contraseña del usuario
[root@archiso /]# passwd carlos

Antes de salir de root:

[root@arch ~]# cat /boot/grub/grub.cfg |grep vmlinuz-linux
	linux	/vmlinuz-linux root=UUID=781ccb0f-c524-402e-a2a8-e32a50371223 rw  loglevel=3 quiet
		linux	/vmlinuz-linux root=UUID=781ccb0f-c524-402e-a2a8-e32a50371223 rw  loglevel=3 quiet
		linux	/vmlinuz-linux root=UUID=781ccb0f-c524-402e-a2a8-e32a50371223 rw  loglevel=3 quiet


Este UUID lo necesitará:
781ccb0f-c524-402e-a2a8-e32a50371223 rw
para sustituirlo por el creado por la vm en esta ruta /zroot/vm/arch/arch.conf en el host FreeBSD.

root@freebsd:/zroot/vm/arch # cat arch.conf

loader="grub"
cpu=1
memory=512M
network0_type="virtio-net"
network0_switch="public"
disk0_type="virtio-blk"
disk0_name="disk0.img"
grub_install0="linux /arch/boot/x86_64/vmlinuz-linux archisobasedir=arch archisolabel=ARCH_202109 ro"
grub_install1="initrd /arch/boot/x86_64/initramfs-linux.img"
uuid="a923082e-1deb-11ec-9f91-fc3fdbd15275"
network0_mac="58:9c:fc:0e:36:e4"
grub_run0="linux /vmlinuz-linux root=UUID=781ccb0f-c524-402e-a2a8-e32a50371223 rw"
grub_run1="initrd /initramfs-linux.img"
uuid="9eb191c3-1e01-11ec-a508-fc3fdbd15275" 
Saliendo de chroot
Ya terminado esto, salimos de chroot
[root@archiso /]# exit

Desmontar particion /boot
# umount /mnt/boot/

Desmontar particion Raíz
# umount /mnt

# dhcpcd enp0s5

dhcpcd-9.4.0 starting
DUID 00:04:a9:23:08:2e:1d:eb:11:ec:9f:91:fc:3f:db:d1:52:75
enp0s5: waiting for carrier
enp0s5: carrier acquired
enp0s5: IAID fc:0e:36:e4
enp0s5: adding address fe80::f2ad:f194:fe94:3e97
enp0s5: soliciting a DHCP lease
enp0s5: soliciting an IPv6 router
enp0s5: offered 192.168.88.165 from 192.168.88.1
enp0s5: probing address 192.168.88.165/24
enp0s5: leased 192.168.88.165 for 600 seconds
enp0s5: adding route to 192.168.88.0/24
enp0s5: adding default route via 192.168.88.1
forked to background, child pid 242
Reiniciar
# reboot

[root@arch ~]# ip addr
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s5:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 58:9c:fc:0e:36:e4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.88.165/24 brd 192.168.88.255 scope global dynamic noprefixroute enp0s5
       valid_lft 329sec preferred_lft 254sec
    inet6 fe80::f2ad:f194:fe94:3e97/64 scope link 
       valid_lft forever preferred_lft forever










FreeBSD es genial!

jueves, 18 de julio de 2019

Instalar PIA en Archlinux

El nuevo instalador proporcionado por Private Internet Access (PIA) para las más conocidas distribuciones basadas en Linux (Ubuntu, Archlinux, Debian, Mint 18+) es una realidad. Todo el proceso se realiza de manera transparente con sólo ejecutar, como usuario no privilegiado, el archivo *.run que se descarga desde su sitio web. Llegado a este punto se abre automáticamente una ventana donde se introduce el nombre de usuario y la contraseña para conectar al servidor de VPN.






OpenBSD es genial!.

lunes, 24 de junio de 2019

Copiar restaurar particiones Linux


Instalar Arch Linux UEFI

Iniciar el sistema desde un usb live Sytem Rescue con soporte UEFI


lsblk lista información a cerca de todos los dispositivos de bloques disponibles


# lsblk

root@sysresccd /root % lsblk 

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

sda      8:0    0  55.9G  0 disk 

├─sda1   8:1    0   512M  0 part 

├─sda2   8:2    0    30G  0 part 

└─sda3   8:3    0  25.4G  0 part 

sdb      8:16   0 465.8G  0 disk 

└─sdb1   8:17   0 211.5G  0 part 

sdc      8:32   1   1.9G  0 disk 

└─sdc1   8:33   1   1.9G  0 part /livemnt/boot

loop0    7:0    0 317.1M  1 loop /livemnt/squashfs

lsblk con la opción -f devuelve información sobre sistemas de archivos

# lsblk -f

NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT

sda                                                                   

├─sda1 vfat    CC3A-1EDB 

├─sda2  ext4    38b21575-cd76-4ff5-9733-654c1d50f30f   21,4G    22% /

└─sda3  ext4    e9774ab0-2d95-4820-8c1e-d76563970c86     21G    11% /home

sdb                                                                   

└─sdb1  vfat  SYSRCD-4_5_ 6843-DF82    /livemnt/boot

sdc                                                                

└─sdc1  ext4 ArchlinuxHP   d007c890-2620-44fc-aaeb-5e40f68fa40

loop0  squashfs                                               /livemnt/squashfs 

https://docs.freebsd.org/es/books/handbook/disks/#backup-basics

“No hacer nada” no es un programa, pero es la estrategia de respaldo más extendida. No tiene coste. No hay un calendario de respaldos a seguir. Simplemente hay que decir que no. Si algo le sucediera a sus datos sonría y acostúmbrese a su nueva situación.


Copia de seguridad con tar

Se crea el punto de montaje y se monta en modo rw (lectura y escritura) el disco duro externo donde se guardarán las copias de seguridad en formato tar.gz

root@sysresccd /root % mkdir /mnt/backuprestore
root@sysresccd /root % mount -t ext4 -o rw /dev/sdc1 /mnt/backuprestore

Se crean los puntos de montaje uno para cada partición con nombres que sirvan de referencia.

# mkdir /mnt/archlinuxboot
# mkdir /mnt/archlinuxraiz
# mkdir /mnt/archlinuxhome

Mantar en modo ro (sólo lectura) las particiones del sistema a respaldar

root@sysresccd /mnt % mount -o ro -t vfat /dev/sda1 /mnt/archlinuxboot
root@sysresccd /mnt % mount -o ro -t ext4 /dev/sda2 /mnt/archlinuxraiz
root@sysresccd /mnt % mount -o ro -t ext4 /dev/sda3 /mnt/archlinuxhome

Opciones y argumentos del comando tar
c crea la copia usando tar
v activa el modo verbose para mostrar información por pantalla
z comprime los datos utilizando el formato gzip
p preserva los permisos de los ficheros (predeterminado para root)
f manda la salida a un fichero en lugar de a la salida estandar
--exclude excluye ficheros y directorios de la copia

Se crea y exporta la variable temporal fecha
root@sysresccd /mnt % FECHA=$(date +%d%m%Y)
root@sysresccd /mnt % export FECHA
root@sysresccd /mnt % env | grep FECHA
FECHA=24062019
root@sysresccd /mnt % echo $FECHA
24062019

Una vez hecho esto se cambia al punto de montaje de la partición raiz (sda2) para realizar la copia.
root@sysresccd /mnt % cd /mnt/archlinuxraiz
root@sysresccd /mnt/archlinuxraiz % tar czvf /mnt/backuprestore/Archlinux/archlinuxsda2/archilinuxsda2-$FECHA.tar.gz *

Entrando en el punto de montaje de la partición boot (sda1) para la copia en formato tar.gz utilizando tar
root@sysresccd /mnt % cd /mnt/archlinuxboot
root@sysresccd /mnt/archlinuxboot % tar czvf /mnt/backuprestore/Archlinux/archlinuxsda1/archilinuxsda1-$FECHA.tar.gz *

Por último lo mismo para home (sda3)

root@sysresccd /mnt % cd /mnt/archlinuxhome
root@sysresccd /mnt/archlinuxraiz % tar czvf /mnt/backuprestore/Archlinux/archlinuxsda3/archilinuxsda3-$FECHA.tar.gz --exclude=lost+found *

Restaurar particiones

Iniciar un live usb System Rescue con soporte UEFI

Crear el punto de montaje y montar en modo ro (sólo lectura) la partición que contiene el o los archivos comprimidos a restaurar

# mkdir /mnt/backuprestore
# mount -t ext4 -o ro /dev/sdb1 /mnt/backuprestore

Restaurar la partición raiz

Formatear la partición a restaurar (se perderan todos los datos)
# mkfs.ext4 /dev/sda2

Crear el punto de montaje y montar en modo rw (lectura y escritura) la partición a restaurar

# mkdir /mnt/archraiz
# mount -t ext4 -o rw /dev/sda2 /mnt/archraiz

Entrar en la partición sda2
# cd /mnt/archraiz

Extraer el archivo (no olvide el punto final)
# tar xvzf /mnt/backuprestore/Archlinux/archlinuxsda2/archilinuxsda2-24062019.tar.gz .

Restaurar partición boot (sda1)

Formatear la partición a restaurar (se perderan todos los datos)
# mkfs.vfat /dev/sda1

Crear el punto de montaje y montar en modo rw (lectura y escritura) la partición a restaurar
# mkdir /mnt/archboot
# mount -t vfat -o rw /dev/sda1 /mnt/archboot

Entrar en la partición sda1
# cd /mnt/archboot

Extraer el archivo

# tar xvzf /mnt/backuprestore/Archlinux/archlinuxsda1/archilinuxsda1-24062019.tar.gz .

Restaurar partición home

Formatear la partición a restaurar (se perderan todos los datos)
# mkfs.ext4 /dev/sda3

Crear el punto de montaje y montar en modo rw (lectura y escritura) la partición a restaurar
# mkdir /mnt/archhome
# mount -t ext4 -o rw /dev/sda3 /mnt/archhome

Entrando en la partición sda3

# cd /mnt/archraiz

Extraer el archivo
# tar xvzf /mnt/backuprestore/Archlinux/archlinuxsda3/archilinuxsda3-24062019.tar.gz . 

Finalmente desmontar las particiones

# cd
# umount /mnt/archraiz
# umount /mnt/archboot
# umount /mnt/archhome
# umount /mnt/backuprestore

O desmontar recursivamente.
La relación entre los puntos de montaje está determinada por /proc/self/mountinfo. El sistema de archivos debe ser especificado por la ruta del punto de montaje. Un recursivo desmontado por el nombre del dispositivo o UUID es incompatible.

# umount -R /mnt/*

Reiniciar el sistema
# reboot

OpenBSD es genial!.

lunes, 10 de junio de 2019

Instalar Arch Linux UEFI

Instalar Arch Linux 2019 modo UEFI (Unified Extensible Firmware Interface) y tabla de particiones GPT necesaria para arrancar en modo UEFI desde la BIOS.



Descargar Arch Linux y grabar la instantánea de Arch Linux en una unidad USB (unidad flash). Arrancar el sistema desde el dispositivo USB cambiando el orden de arranque desde la BIOS o utilizando la tecla F12 o F9 (dependiendo de su sistema).

Al finalizar el proceso de arranque lo primero es comprobar la conexión a Internet:
root@archiso ~ # ping -c3 www.freebsd.org

Si en lugar de conexión por cable nos conectarnos mediante wifi Arch Linux pone a su disposición la herramienta wifi-menu.
root@archiso ~ # wifi-menu

Comprobamos con fdisk -l los discos del sistema disponible y las particiones creadas.

El particionado del disco /dev/sda (SSD) puede realizarse con diferentes herramientas en este caso se utiliza cfdisk.

root@archiso ~ # cfdisk /dev/sda
En el cuadro de diálogo (Select label type) se selecciona el tipo gpt.
Luego se crea una nueva partición de 512M (Partition size) partición 1 del tipo EFI system.
A continuación una segunda partición de 30G del tipo ext4
Por último una cuarta partición con el resto del espacio libre del disco tipo ext4. Se desplaza hasta Write y sale con Quit. Tendremos este esquema de particionado:

root@archiso ~ # fdisk -l
Disposit.  Comienzo     Final Sectores Tamaño Tipo
/dev/sda1      2048   1050623  1048576   512M Sistema EFI
/dev/sda2   1050624  63965183 62914560    30G Sistema de ficheros de Linux
/dev/sda3  63965184 117231374 53266191  25,4G Sistema de ficheros de Linux

Crear los sistemas de ficheros
root@archiso ~ # mkfs.fat -F32 /dev/sda1
root@archiso ~ # mkfs.ext4 /dev/sda2
root@archiso ~ # mkfs.ext4 /dev/sda3

Montar las particiones

root@archiso ~ # mount /dev/sda2 /mnt
root@archiso ~ # mkdir /mnt/home
root@archiso ~ # mount /dev/sda3 /mnt/home
root@archiso ~ # lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0 55,9G  0 disk
├─sda1   8:1    0  512M  0 part
├─sda2   8:2    0   30G  0 part /
└─sda3   8:3    0 25,4G  0 part /home

Elegir lista de mirror

# pacman -Sy
# pacman -S reflector
# reflector --verbose -l 5 --sort rate --save /etc/pacman.d/mirrorlist

sda1 es nuestra partición UEFI, se usará más tarde. El comando pacstrap con la opción -i (ver la información) instala los paquetes base base-devel dentro de /mnt

root@archiso ~ # pacstrap -i /mnt base base-devel

El comando genfstab con las opciónes U (use UUIDs) y p (Excluye pseudofs montados)

root@archiso ~ # genfstab -U -p /mnt >> /mnt/etc/fstab

Se necesita chroot a mnt para entrar en el nuevo sistema instalado

root@archiso ~ # arch-chroot /mnt /bin/bash

Establecer la locale

root@archiso ~ # nano /etc/locale.gen descomentar la siguiente línea.
es_ES.UTF-8 UTF-8

Generar la locale
root@archiso ~ # locale-gen

Enlace a hora locale dentro de su zone

root@archiso ~ # ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime

Enlace a hora locale dentro de su time zone
root@archiso ~ # hwclock --systohc --utc

root@archiso ~ # echo archlinux > /etc/hostname

root@archiso ~ # nano /etc/hosts
127.0.0.1 localhost.localdomain archlinux.unix.bcn archlinux

Instalar networkmanager
root@archiso ~ # pacman -S networkmanager

Activar la conexión a Internet cableada
(wired) durante el arranque del sistema.
root@archiso ~ # systemctl enable NetworkManager

Establecer la contraseña de root
root@archiso ~ # passwd

Archivo /etc/pacman.conf descomentar:

 [multilib]
Include = /etc/pacman.d/mirrorlist

El siguiente paso donde se instala el group bootloader
es el más relevante  en el proceso de instalaciónn de UEFI:

1.- Instalar los paquetes necesarios

root@archiso ~ # pacman -S grub efibootmgr

2.- Crear el directorio efi y montar la partición efi sda1 a este directorio

root@archiso ~ # mkdir /boot/efi
root@archiso ~ # mount /dev/sda1 /boot/efi

Comprobar el punto de montaje con lsblk
root@archiso ~ # lsblk

3.- Iniciar la instalación de grub-install

root@archiso ~ # grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi

4.- Se necesita generar el archivo de configuración para el grub bootloader instalado.
root@archiso ~ # grub-mkconfig -o /boot/grub/grub.cfg

5.- Configuraión adicional.

root@archiso ~ # mkdir -p /boot/efi/EFI/BOOT
root@archiso ~ # cp /boot/efi/EFI/GRUB/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI

BOOTX64.EFI es el bootloader reconocido por efi en caso de fallo durante el arranque del sistema.

6.- Crear script de inicio para efi /boot/efi/startup.nsh

root@archiso ~ # nano /boot/efi/startup.nsh
bcf boot add 1 fs0:\EFI\GRUB\grubx64.efi "Grub bootloader"
exit

Identificar los gráficos del sistema# lspci | grep VGA

Entorno gráfico
# pacman -S xorg-server xorg-xinit
# pacman -S xf86-video-intel
# pacman -S mesa mesa-demos

Para una computadora portátil o netbook necesita los controladores para el soporte de entrada del panel táctil
# pacman -S xf86-input-synaptics

Crear usuario
# useradd -m -g users -G audio,storage,optical,video,wheel -s /bin/bash carles

Montar las USB, Micro SD
# pacman -S gvfs

Montar iphone
# pacman -S gvfs-afc

Montar dispositivo android
# pacman -S gvfs-mtp

Crea las carpetas por defecto del usuario automáticamente
# pacman -S xdg-user-dirs

Instalar deepin
# pacman -S deepin-extra

Editar el archivo /etc/lightdm/lightdm.conf
# nano /etc/lightdm/lightdm.conf

Buscar la siguiente linea (Ctrl + W)
#greeter-session=example-gtk-gnome

Descomente y cambie como se muestra abajo
greeter-session=lightdm-deepin-greeter

Luego habilite el administrador de inicio de sesión de lightdm para que se inicie en el arranque.
# systemctl enable lightdm.service -f

El archivo .xinitrc se crea en el directorio del usuario sin privilegios
$ nano /home/carles/.xinitrc
exec startdde

Cambiar los permisos del archivo
# chown carles:users /home/carles/.xinitrc

Salir del entorno chroot
# exit

# exit

Desmontar las particiones
# umount /mnt/home
# umount /mnt/boot/efi
# umount /mnt

Reiniciar el sistema
#reboot

Instalar ifplugd. Un demonio que activa - desactiva las interfaces de red al insertar - quitar el cable.
# pacman -S ifplugd

Si hay algún problema como parpadeo o pantalla en blanco después de instalar Deepin, instalar lightdm-deepin-greeter usando el siguiente comando

# pacman -S lightdm-deepin-greeter

Y reinstalar deepin:

# pacman -Syu deepin

# reboot


Se prescinde de la partición Swap
Un portátil con 8 GB de memoria RAM y un diso duro SSD Intel de 60 GB. Los datos se guardan en el servidor de archivos de la LAN por lo que no se necesita mayor capacidad de almacenamiento.



OpenBSD es genial!.

martes, 4 de junio de 2019

Cambiar nombre de interfaces de red

Cambiar nombre a las tarjetas de red. Archlinux - Manjaro Linux

Por comodidad cambiaremos los nombres de las tarjetas de red

Obtener la dirección MAC de cada tarjeta

$ cat /sys/class/net/enp3S0/address
fc:3f:db:d1:52:75

$ cat /sys/class/net/wln2us/address
b6:59:5f:32:79:c4

Definiendo manualmente el nombre con una regla udev:

# nano -w /etc/udev/rules.d/10-network.rules

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="fc:3f:db:d1:52:75", NAME="net0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="b6:59:5f:32:79:c4", NAME="wifi0"

Después de reiniciar tenemos los nuevos nombres de las interfaces de red

$ ls /sys/class/net
lo  net0  wifi0

Conectar manualmente al arranque usando systemd


Primero se crea el archivo de configuración de servicio de systemd
# nano -w /etc/conf.d/network@net0

address=192.168.3.200
netmask=24
broadcast=192.168.3.255
gateway=192.168.3.1

Luego se crea un archivo de unidad de systemd:

/etc/systemd/system/network@.service

[Unit]
Description=Network connectivity (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/network@%i

ExecStart=/usr/bin/ip link set dev %i up
ExecStart=/usr/bin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev %i
ExecStart=/usr/bin/ip route add default via ${gateway}

ExecStop=/usr/bin/ip addr flush dev %i
ExecStop=/usr/bin/ip link set dev %i down

[Install]
WantedBy=multi-user.target

Activamos e iniciamos la unidad, proporcionando el nombre de la interfaz

# systemctl enable network@net0.service
# systemctl start network@net0.service

En el nuevo kernel cambiaremos los nuevos valores por defecto para intercambiar entre la tarjeta de red alámbrica e inalámbrica sin ningún problema. 

# echo 1 > /proc/sys/net/ipv4/conf/net0/ignore_routes_with_linkdown
# echo 1 > /proc/sys/net/ipv4/conf/wifi0/ignore_routes_with_linkdown

Para que los cambios sobrevivan al reinicio del sistema


# echo net.ipv4.conf.all.ignore_routes_with_linkdown=1 > /etc/sysctl.d/10-linkdown.conf
# sysctl -p /etc/sysctl.d/10-linkdown.conf

# ip r
default via 192.168.3.1 dev net0 proto dhcp metric 100
192.168.3.0/24 dev net0 proto kernel scope link src 192.168.3.10 metric 100

# ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: net0: mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fc:3f:db:d1:52:75 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.10/24 brd 192.168.3.255 scope global dynamic noprefixroute net0
       valid_lft 35953sec preferred_lft 35953sec
    inet6 fe80::3637:14af:6cb9:ee7e/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: wifi0: mtu 1500 qdisc fq_codel state DORMANT group default qlen 1000
    link/ether 12:af:c7:9b:ed:31 brd ff:ff:ff:ff:ff:ff

En este momento estoy conectado a la red 192.168.3.0/24 (router soekris OpenBSD). Por tanto el sistema utiliza los DNS servidor dhcp del router.

$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 1.1.1.1
nameserver 1.0.0.1

OpenBSD es genial!.

jueves, 31 de agosto de 2017

Pacman actualizar ca-certificates-utils

Incapaz de descargar paquetes Arch Linux?. 

Como siempre, los chicos de Arch Linux nos facilitan las cosas.

La actualización a ca-certificates-utils 20170307-1 requiere intervención manual porque un enlace simbólico que se generaba después de la instalación se ha trasladado al paquete propiamente dicho.

Como la eliminación del enlace simbólico puede dejarle incapaz de descargar paquetes, realice esta actualización en tres pasos


Descargar paquetes
# pacman -Syuw 

Eliminar archivo conflictivo                      
# rm /etc/ssl/certs/ca-certificates.crt


Actualizar todo el sistema

# pacman -Su



Reiniciar el sistema:


Comandos útiles que en algún momento podemos necesitar:
# pacman-key --refresh-keys
# update-ca-trust

$ trust --help


Impedir la actualización de determinados paquetes:

Pacman no actualiza paquetes listado en IgnorePkg y IgnoreGroup. Para impedir la actualización del kernel y xorg-server agregamos las líneas siguientes al archivo /etc/pacman.conf

# cp /etc/pacman.conf /etc/pacman.conf-orig
# vi /etc/pacman.conf

IgnorePkg = linux
IgnorePkg = xorg-server
 
Referencia: https://www.archlinux.org/news/ca-certificates-utils-20170307-1-upgrade-requires-manual-intervention/

Reconstruir initramfs
# mkinitcpio -p linux


FreeBSD es genial!.

viernes, 12 de mayo de 2017

Particionar instalar Arch Linux UEFI 2017 KDE

Arrancar el instalador en modo UEFI

Comprobar que está conectado a la red
# ping -c 2 www.freebsd.org

Instalar fuente terminus-font y activar durante la instalación


# pacman -S terminus-font
# pacman -Ql terminus-font
# setfont ter-v32n

Q = Consulta a la basde de datos de paquetes
l = listar todos los archivos pertenecientes a un paquete

Listar discos (dispositivos de bloque)

# lsblk

parted - linea de comando


# parted /dev/sda      # abrir parted y seleccionar el disco
# mklabel gpt          # configrurar disco GPT


Particionar disco


# mkpart ESP 1MiB 513MiB          # crear /boot 512MB /dev/sda1
# set 1 boot on                   # marcar /boot como partición de arranque
# mkpart linux-swap 513MiB 2.5GiB # crear swap 2.5GB (8GB RAM)
# mkpart ext4 2.5GiB 50GiB        # partición raiz /
# mkpart ext4 50GiB 100%          # resto espacio libre /home


salir parted

Crear los sistemas de ficheros

    mkfs.vfat /dev/sda1 # EF00
    mkfs.ext4 /dev/sda2 # 8300
    mkfs.ext4 /dev/sda4 # 8300


Activar partición swap

    mkswap /dev/sda3 # 8200
    swapon /dev/sda3


Montar particiones

    mount /dev/sda2 /mnt
    mkdir -p /mnt/boot
    mount /dev/sda1 /mnt/boot
    mkdir -p /mnt/home
    mount /dev/sda4 /mnt/home


Elegir lista de mirror

# pacman -Sy
# pacman -S reflector
# reflector --verbose -l 5 --sort rate --save /etc/pacman.d/mirrorlist

Install los paquetes básicos arch linux

# pacstrap -i /mnt base base-devel

Configurar fstab

# genfstab -U -p /mnt >> /mnt/etc/fstab

Entorno chroot

# arch-chroot /mnt

Configurar lenguaje y ubicación

nano /etc/locale.gen # descomentar


es_ES.UTF-8 UTF-8  
es_ES ISO-8859-1  
es_ES@euro ISO-8859-15
# locale-gen
# export LANG=es_ES.UTF8-8 > /etc/locale.conf
# export LC_TIME=es_ES.UTF-8 >> /etc/locale.conf


Zona horaria

# ln -s /usr/share/zoneinfo/Europe/Madrid > /etc/localtime

# hwclock --systohc --utc

# pacman -Sy

Nombre de host

# echo archlinux > /etc/hostname

Contraseña de root y crear un nuevo usuario

# passwd

# pacman -S sudo bash-completion

# useradd -m -s /bin/bash -g users -G wheel,storage,power carles

# passwd carles

Permitir a los usuarios del grupo wheel tareas administrativas con sudo

# visudo
Descomentar la linea %wheel% ALL=(ALL)

Consola en español

# echo KEYMAP=es >> /etc/vconsole.conf 
# echo FONT >> /etc/vconsole.conf
# echo FONT_MAP= >> /etc/vconsole.conf

# mkinitcpio -p linux

Instalar y Configurar bootloader

# bootctl --path=/boot install

Opciones por defecto bootloader

# nano /boot/loader/loader.conf

default arch
timeout 0 # segundos de espera Elegir kernel/OS
editor  0 # segundos de espera para editar parametros del kernel


Buscar PARTUUID de la partición raiz y crear una entrada en bootloader

# blkid -s PARTUUID -o value /dev/sda2 >> /boot/loader/entries/arch.conf

64f369f2-608a-4f5c-bb4c-27d7146ef482


Edite ese archivo

# nano /boot/loader/entries/arch.conf

title   Arch LInux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options root=PARTUUID=64f369f2-608a-4f5c-bb4c-27d7146ef482 rw


Recrear Initramfs

# mkinitcpio -p linux

Actualizar el bootloader

# bootctl update

Salir del entorno chroot

# exit

Desmontar particiones

# umount -R /mnt

# reboot

Continuar con la instalación

username root
passwd

# ip addr

# systemctl enable dhcpcd

# systemctl start dhcpcd

# ping -c 2 www.freebsd.org

# pacman -S xorg

# pacman -S xterm xorg-xclock xorg-twm xorg-xinit xorg-server-utils

# pacman -S plasma kdebase

# pacman -S ttf-freefont ttf-linux-libertine-g artwiz-fonts

# pacman -S ttf-ubuntu-font-family cantarell-fonts freetype2

# pacman -S ttf-droid ttf-linux-libertine ttf-liberation

# pacman -S ttf-fira-mono ttf-fira-sans ttf-gentium fontsproto

# pacman -S ttf-dejavu noto-fonts font-bitstream-speedo

# systemctl enable sddm

# reboot

Intercambiar teclado es y us con la combinación de teclas alt-shift

# nano /etc/X11/xorg.conf.d/10-keyboard.conf

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout"  "es,us"
        Option "XkbModel"   "pc104"
        Option "XkbVariant" "deadtilde,"
        Option "XkbOptions" "grp:alt_shift_toggle"
EndSection


# pacman -S libreoffice libreoffice-es

# pacman -S kdegraphics-okular firefox firefox-i18n-es-es

# pacman -S vlc gimp k3b kaffeine dia spectacle

VPN - PIA

Tunel VPN - Private Internet Access

Instalar openvpn

# pacman -S openvpn

Crear el directorio

# mkdir -p /etc/private-internet-access
# cd /etc/private-internet-access

Descargar el archivo openvpn.zip

# wget https://www.privateinternetaccess.com/openvpn/openvpn.zip
# unzip openvpn.zip

Copiar los archivos necesarios

# cd /etc/openvpn/
# cp /etc/private-internet-access/ca.rsa.2048.crt . # no olvide el punto final
# cp /etc/private-internet-access/crl.rsa.2048.pem .

El archivo que contiene el nombre de usuario y contraseña de PIA

# touch password.conf
# vi password.conf
username
password

# chown root:root /etc/openvpn/password.conf
# chmod 600 /etc/openvpn/password.conf

El archivo de configuración PIA

# cp /etc/private-internet-access/France.ovpn /etc/openvpn/pia_vpn.con
# nano /etc/openvpn/pia_vpn.conf

client
dev tun
proto udp4
remote france.privateinternetaccess.com 1198
resolv-retry infinite
nobind
persist-key
persist-tun
cipher aes-128-cbc
auth sha1
tls-client
remote-cert-tls server
auth-user-pass
comp-lzo
verb 1
reneg-sec 0
crl-verify /etc/openvpn/crl.rsa.2048.pem
ca /etc/openvpn/ca.rsa.2048.crt
disable-occ
auth-user-pass /etc/openvpn/password.conf
auth-nocache

Llegados a este punto vamos a comprobar openvpn

# openvpn --config /etc/openvpn/pia_vpn.conf


Crear un script de conexión:

# cd /home/carles
# vim openvpn-pia.sh
###################################
#!/bin/bash
openvpn --config /etc/openvpn/pia_vpn.conf > /dev/null 2>&1 &
###################################

Establecer permisos de ejecución

# chmod +x openvpn-pia.sh

Ejecutar el script
# ./openvpn-pia.sh

# ip addr
Como conectarse usando NetworkManager:

Haga clic derecho en el icono de NetworkManager en la bandeja del sistema
y clic en Configurar conexiones de red
luego haz clic en Agregar (Add)
elige la opción Importar VPN ...
vaya a /etc/openvpn/pia_vpn.conf (nuestro archivo de configuración)
ahora haga clic en Abrir
puerta de enlace (gateway), solo el nombre de dominio debe estar en esta casilla.
para el nombre de usuario, escriba su nombre de usuario p7654321
para la contraseña, escriba la contraseña que acompaña a su nombre de usuario V5thzg8X4C
luego haga clic en Avanzado
establecer puerto de la puerta de enlace y configurarelo en 1198
haga clic en la pestaña Seguridad
establecer el cifrado: a AES-128-CBC
establecer la autenticación HMAC: a SHA-1
haga clic en Aceptar y clic en Aceptar nuevamente.



Actualizar todo el sistema
# pacman -Su

Portátil con dos discos duros ssd, (Intel sata3 60GB y Samsumg EVO sata3 120GB) y dos S.O. instalados, FreeBSD 11 y Arch LInux 2017. Desde la BIOS elijo con cual arrancar. El segundo disdo duro (instalado con un adaptador CADDY) en el lugar reservado a la unidad óptica (DVD).

Listar discos (dispositivos de bloque)

# lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:16   0 111,8G  0 disk 
├─sda1   8:17   0   512M  0 part /boot
├─sda2   8:18   0  49,5G  0 part /
├─sda3   8:19   0   2,5G  0 part [SWAP]
└─sda4   8:20   0  59,3G  0 part /home
sdb      8:0    0  55,9G  0 disk 
├─sdb1   8:1    0   512K  0 part 
├─sdb2   8:2    0    53G  0 part 
└─sdb3   8:3    0   2,8G  0 part 


# pacman -S parted
# parted /dev/sda


Model: ATA Samsung SSD 840 (scsi)
Disk /dev/sda: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Numero  Inicio  Fin     Tamaño  Sistema de ficheros  Nombre  Banderas
 1      1049kB  538MB   537MB   fat32                        arranque, esp
 2      538MB   53,7GB  53,1GB  ext4
 3      53,7GB  56,4GB  2684MB  linux-swap(v1)
 4      56,4GB  120GB   63,7GB  ext4


Ayuda parted

 (parted) m                                                                
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart TIPO-PART [TIPO-SF] INICIO FIN     crea una partición
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free
    space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information
        of GNU Parted


FreeBSD es genial!.

domingo, 25 de septiembre de 2016

Instalar Arch Linux 64 bits UEFI KDE Plasma

Instalar Arch Linux x86_64 UEFI KDE Plasma en una máquina virtual.

Nota: En una instalación en disco, la partición raíz no debería ser menor de 50 Gb. Por lo demás el proceso es el mismo.  Con el tamaño actual de los discos esto no es un problema.


Cargar teclado español

# loadkeys es

Listar los dispositivos de bloque del sistema, discos duros, cd-rom, unidades flash, etc.

# lsblk


Particionado con cfdisk

Creamos una primera partición de 20G que será nuestra partición de sitema (root). de tipo linux filesystems.


# cfdisk /dev/sda
   gpt
new 20G  /dev/sda1
type linux filesystems

new 512M /dev/sda2
type Efi Systems

new 4G /dev/sda3
type linux-swap 

new 29G /dev/sda4
type linux filesystems

write quit











# lsblk


Vamos a crear los Sistema de Ficheros y montar particiones

# mkfs.ext4 /dev/sda1

# mount /dev/sda1 /mnt

# mkfs.vfat /dev/sda2

# mkdir -p /mnt/boot/efi

# mount /dev/sda2 /mnt/boot/efi

# mkswap /dev/sda3

# swapon /dev/sda3


# mkfs.ext4 /dev/sda4



# mkdir /mnt/home

# mount /dev/sda4 /mnt/home

# pacstrap /mnt base base-devel grub efibootmgr




# genfstab -U -p /mnt >> /mnt/etc/fstab

# cat /mnt/etc/fstab


Entrar al entorno de instalación

# arch-chroot /mnt /bin/bash


# nano /etc/locale.gen
 es_ES.UTF-8 UTF-8
 es_ES ISO-8859-1


# locale-gen

# echo LANG=es_ES.UTF8-8 > /etc/locale.conf

# echo KEYMAP=es > /etc/vconsole.conf

# ln -sf /usr/share/zoneinfo/Europe/Madrid > /etc/localtime

# echo archlinux > /etc/hostname

# mkinitcpio -p linux



# passwd root

Usuario no priveligiado

# useradd -m -g users -G wheel -s /bin/bash carles

# passwd carles

# grub-mkconfig -o /boot/grub/grub.cfg


# grub-install /dev/sda

# umount /mnt -R

# exit

# exit

# reboot

# ip addr

# systemctl enable dhcpcd

# systemctl start dhcpcd

# ping -c 2 www.freebsd.org

# pacman -S xorg

# pacman -S xterm xorg-xclock xorg-twm xorg-xinit xorg-server-utils

# pacman -S plasma kdebase

# pacman -S ttf-freefont ttf-linux-libertine-g artwiz-fonts

# pacman -S ttf-ubuntu-font-family cantarell-fonts freetype2

# pacman -S ttf-droid ttf-linux-libertine ttf-liberation

# pacman -S ttf-fira-mono ttf-fira-sans ttf-gentium fontsproto

# pacman -S ttf-dejavu noto-fonts font-bitstream-speedo

# systemctl enable sddm

# reboot


Intercambiar teclado es y us con la combinación de teclas alt-shift

$ cat /etc/X11/xorg.conf.d/10-keyboard.conf
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout"  "es,us"
        Option "XkbModel"   "pc104"
        Option "XkbVariant" "deadtilde,"
        Option "XkbOptions" "grp:alt_shift_toggle"
EndSection
# pacman -S libreoffice libreoffice-es

# pacman -S kdegraphics-okular firefox firefox-i18n-es-es

# pacman -S vlc gimp k3b kaffeine gparted spectacle


Unix es genial!.