Hola HAMIJOS, hoy os vamos a enseñar como probar QubesOS instalándolo en un stick eSATA SSD de 16 GiB, o no, ahora lo descubriréis.
Lo primero que hacemos es bajarnos la versión de 64Bits de Fedora 12, la grabamos en un DVD, y la instalamos en el stick siguiendo la recomendaciones de paquetes que nos hacen en http://qubes-os.org/trac/wiki/InstallationGuide y asignamos todo el espacio disponible a / (no, no queremos swap) excepto 200MiB para /boot. Ánimo, que serán unos 10 clicks.
Una vez instalado Fedora 12 el disco nos queda así:
[hielo@cubitera ~]$ df -ah /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_cubitera-lv_root
15G 3.0G 11G 22% /
[hielo@cubitera ~]$
Siguiendo http://qubes-os.org/trac/wiki/InstallationGuide instalamos lo necesario para correr el XEN de ITL.
[root@cubitera ~]# wget http://qubes-os.org/keys/qubes-master-signing-key.asc [root@cubitera ~]# wget http://qubes-os.org/keys/qubes-release-1-signing-key.asc [root@cubitera ~]# rpm --import qubes-release-1-signing-key.asc # La wiki apunta a qubes-release-signing-key.asc [root@cubitera ~]# wget http://qubes-os.org/yum/qubes.repo [root@cubitera ~]# mv qubes.repo /etc/yum.repos.d/ [root@cubitera ~]# yum install kernel-qubes-dom0 ============================================================================================================= Package Arch Version Repository Size ============================================================================================================= Installing: kernel x86_64 2.6.32.9-7.pvops0.qubes qubes 21 M Installing for dependencies: PyXML x86_64 0.8.4-17.fc12 updates 906 k SDL x86_64 1.2.13-11.fc12 updates 193 k bridge-utils x86_64 1.2-8.fc12 fedora 27 k qemu-common x86_64 2:0.11.0-13.fc12 updates 213 k qemu-img x86_64 2:0.11.0-13.fc12 updates 121 k xen x86_64 3.4.3.rc3-1.qubes qubes 898 k xen-hypervisor x86_64 3.4.3.rc3-1.qubes qubes 2.9 M xen-libs x86_64 3.4.3.rc3-1.qubes qubes 166 k xen-runtime x86_64 3.4.3.rc3-1.qubes qubes 4.0 M
Y como tenemos una Nvidia, seguimos http://qubes-os.org/trac/wiki/NvidiaTroubleshooting (lástima, con lo chulo que es arrancar X sin el dichoso xorg.conf)
Reiniciamos la cubitera y nos preparamos para instalar los paquetes de Qubes y el entorno.
[root@cubitera ~]# yum install qubes-core-dom0 qubes-gui-dom0 qubes-dom0-cleanup
=============================================================================================================
Package Arch Version Repository Size
=============================================================================================================
Installing:
qubes-core-dom0 x86_64 1.0.1-1 qubes 1.5 M
qubes-dom0-cleanup x86_64 0.2.2-1 qubes 4.6 k
qubes-gui-dom0 x86_64 1.0.0-1 qubes 28 k
Installing for dependencies:
python-daemon noarch 1.5.2-1.fc12 updates 27 k
python-inotify noarch 0.8.8-1.fc12 updates 46 k
python-lockfile noarch 0.8-1.fc12 fedora 16 k
Transaction Summary
=============================================================================================================
Para que nuestro luser pueda arrancar las VMs
[root@cubitera ~]# usermod -a -G qubes hielo
Para que podamos ver p0rn en konqueror mientras seguimos con el siguiente pasito...
[root@cubitera ~]# qvm-set-default-netvm dom0
Nos toca otro reinicio de cubitera (¡ésto parece windows!) y después viene el lío de instalar las VMs que nos proporciona ITL en el -al parecer- poco espacio en disco que nos queda (+/-10.5 GiB).
Atentos al tamaño de descarga de la plantilla para VMs personales y de su netvm
[root@cubitera ~]# yum install qubes-template-linux-x64 qubes-servicevm-netvm
=============================================================================================================
Package Arch Version Repository Size
=============================================================================================================
Installing:
qubes-servicevm-netvm noarch 1.0.0-1 qubes 613 M
qubes-template-linux-x64 noarch 1.0.0-1 qubes 1.6 G
Transaction Summary
=============================================================================================================
Cancelamos la instalación para descargar e instalar cada paquete por separado y como no tenemos mucho disco, pero si algo de RAM (4 GiB) vamos a descargar los RPMs directamente en memoria.
[root@cubitera ~]# df -ah /dev/shm Filesystem Size Used Avail Use% Mounted on tmpfs 1.5G 2.0M 1.5G 1% /dev/shm [root@cubitera ~]# mount -o remount,size=2G /dev/shm [root@cubitera ~]# df -ah /dev/shm Filesystem Size Used Avail Use% Mounted on tmpfs 2.0G 2.0M 3.0G 1% /dev/shm [root@cubitera ~]# yumdownloader qubes-template-linux-x64 --destdir=/dev/shm
Es el momento de ver p0rn en nuestro flamante konqueror del Dom0.
[root@cubitera ~]# rpm -ivh /dev/shm/qubes-template-linux-x64-1.0.0-1.noarch.rpm
En /var/lib/qubes/vm-templates/linux-x64 va copiando ficheros root.img.part.YZ (hasta 5), para luego juntarlos todos en root.img, pero claro, los part ya ocupan +/-5GiB y el fichero resultante -root.img- va a ocupar ¡10 GiB!. Como el post-script del RPM no tiene control de errores, el tar falla indicando que no queda espacio libre, pero continua la ejecución del script.
------------[ Erroes en la instalación del RPM ]------------
tar: linux-x64-root.img: Cannot write: No space left on device
tar: Exiting with failure status due to previous errors
------------[ template.spec ]------------
cat %{dest_dir}/root.img.part.* | tar --sparse -xf - -C %{dest_dir}
rm -f %{dest_dir}/root.img.part.*
Ya tenemos qubes-template-linux-x64 instalado aunque con un precioso root.img corrupto y es aquí donde no hacemos honor al título del post, vamos a dejar a root.img fuera del stick SSD, en un disco interno.
Extraemos las partes del root.img del RPM en /var/tmp
[root@cubitera tmp]# rpm2cpio - < /dev/shm/qubes-template-linux-x64-1.0.0-1.noarch.rpm | cpio -idmv \
./var/lib/qubes/vm-templates/linux-x64/root.img.part.*
./var/lib/qubes/vm-templates/linux-x64/root.img.part.04
./var/lib/qubes/vm-templates/linux-x64/root.img.part.03
./var/lib/qubes/vm-templates/linux-x64/root.img.part.02
./var/lib/qubes/vm-templates/linux-x64/root.img.part.01
./var/lib/qubes/vm-templates/linux-x64/root.img.part.00
10440633 blocks
Montamos una partición del HDD interno en /media, unimos las partes dentro del HDD, hacemos limpieza y dejamos los permisos configurados para que el luser pueda leer y escribir en root.img
[root@cubitera tmp]# mount /dev/sda9 /media && mkdir /media/tmpqubes [root@cubitera tmp]# cat ./var/lib/qubes/vm-templates/linux-x64/root.img.part.* | tar --sparse -xf - -C /media/tmpqubes/ [root@cubitera tmp]# rm -rf ./var [root@cubitera tmp]# chown root.qubes /media/tmpqubes/linux-x64-root.img [root@cubitera tmp]# chmod 0660 /media/tmpqubes/linux-x64-root.img [root@cubitera tmp]# cd /var/lib/qubes/vm-templates/linux-x64/ [root@cubitera linux-x64]# ll total 4884100 drwxrwxr-x 2 root qubes 20480 2010-05-09 21:09 apps drwxrwxr-x 2 root qubes 12288 2010-05-09 21:09 apps.templates -rw-rw---- 1 root qubes 478 2010-04-05 22:57 appvm-template.conf lrwxrwxrwx 1 root root 35 2010-05-09 21:24 icon.png -> /usr/share/qubes/icons/template.png drwxrwx--- 2 root qubes 4096 2010-05-09 21:09 kernels -rw-rw---- 1 root qubes 515 2010-04-05 22:57 linux-x64.conf -rw-rw---- 1 root qubes 2147483648 2010-05-09 21:24 private.img -rw-rw---- 1 root qubes 5434949632 2010-04-05 22:48 root.img # ¡CORRUPTO! -rw-rw---- 1 root qubes 540 2010-04-05 22:57 templatevm.conf [root@cubitera linux-x64]# ln -sf /media/tmpqubes/linux-x64-root.img root.img [root@cubitera linux-x64]# ll total 99036 drwxrwxr-x 2 root qubes 20480 2010-05-09 21:09 apps drwxrwxr-x 2 root qubes 12288 2010-05-09 21:09 apps.templates -rw-rw---- 1 root qubes 478 2010-04-05 22:57 appvm-template.conf lrwxrwxrwx 1 root root 35 2010-05-09 21:24 icon.png -> /usr/share/qubes/icons/template.png drwxrwx--- 2 root qubes 4096 2010-05-09 21:09 kernels -rw-rw---- 1 root qubes 515 2010-04-05 22:57 linux-x64.conf -rw-rw---- 1 root qubes 2147483648 2010-05-09 21:24 private.img lrwxrwxrwx 1 root root 34 2010-05-09 21:29 root.img -> /media/tmpqubes/linux-x64-root.img -rw-rw---- 1 root qubes 540 2010-04-05 22:57 templatevm.conf [root@cubitera linux-x64]#
Pues si HAMIJOS, el template que nos presentan ocupa 10 GiB. (Nos ha parecido escuchar en alguna ocasión a JR decir que las apps-vms deberían ocupar unos 400 MiB)
[root@cubitera ~]# fdisk -l /media/tmpqubes/linux-x64-root.img
Disk /media/tmpqubes/linux-x64-root.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000749d4
Device Boot Start End Blocks Id System
/media/tmpqubes/linux-x64-root.img1 * 1 1178 9458381 83 Linux
Partition 1 has different physical/logical endings:
phys=(1023, 254, 63) logical=(1177, 132, 4)
/media/tmpqubes/linux-x64-root.img2 1178 1305 1024000 82 Linux swap / Solaris
Partition 2 has different physical/logical beginnings (non-Linux?):
phys=(1023, 254, 63) logical=(1177, 132, 5)
Partition 2 has different physical/logical endings:
phys=(1023, 254, 63) logical=(1304, 254, 63)
[root@cubitera tmp]#
Y no os olvidéis de instalar qubes-servicevm-netvm, durante el proceso podéis, por ejemplo, ver p0rn
Ahora nos toca crear una app-vm, aunque ya sin la ilusión de poder llevarnos el stick a 'cualquier' PC para arrancar nuestro Qubes megaseguro.
[root@cubitera ~]# df -ah / Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_cubitera-lv_root 15G 9.7G 4.3G 70% / [root@cubitera ~]# [hielo@cubitera tmp]$ qvm-ls ---------------+----+---------+-------+------+-----------+-------+--------+ name | on | state | updbl | type | template | netvm | label | ---------------+----+---------+-------+------+-----------+-------+--------+ {dom0} | * | Running | Yes | Net | n/a | n/a | gray | {netvm} | | Halted | Yes | Net | n/a | n/a | red | =>[linux-x64] | | Halted | Yes | Tpl | n/a | *dom0 | gray | [hielo@cubitera tmp]$ [hielo@cubitera ~]$ id uid=500(hielo) gid=500(hielo) groups=500(hielo),501(qubes) [hielo@cubitera ~]$ qvm-create personal --label yellow --> Using default TemplateVM: linux-x64 --> Creating directory: /var/lib/qubes/appvms/personal --> Creating the VM config file: /var/lib/qubes/appvms/personal/personal.conf --> Copying the template's private image: /var/lib/qubes/vm-templates/linux-x64/private.img --> Creating icon symlink: /var/lib/qubes/appvms/personal/icon.png -> /usr/share/qubes/icons/yellow.png --> Converting Appmenu Templates... --> Adding Apps to the Menu... [hielo@cubitera ~]$ du -sh /var/lib/qubes/appvms/personal 2.7M /var/lib/qubes/appvms/personal [hielo@cubitera ~]$ ls -lh /var/lib/qubes/appvms/personal total 888K drwxrwxr-x 2 hielo hielo 16K 2010-05-09 01:47 apps lrwxrwxrwx 1 hielo hielo 33 2010-05-09 01:47 icon.png -> /usr/share/qubes/icons/yellow.png -rw-rw-r-- 1 hielo hielo 619 2010-05-09 01:47 personal.conf -rw-rw---- 1 hielo hielo 2.0G 2010-05-09 01:47 private.img [hielo@cubitera ~]$ qvm-ls ---------------+----+---------+-------+------+-----------+-------+--------+ name | on | state | updbl | type | template | netvm | label | ---------------+----+---------+-------+------+-----------+-------+--------+ {dom0} | * | Running | Yes | Net | n/a | n/a | gray | {netvm} | | Halted | Yes | Net | n/a | n/a | red | =>[linux-x64] | | Halted | Yes | Tpl | n/a | *dom0 | gray | personal | | Halted | | | linux-x64 | *dom0 | yellow | [hielo@cubitera ~]$
Y ya podemos arrancar cualquier aplicación de la VM personal. Por el momento no vamos a usar la VM netvm ya que estamos teniendo pequeños problemas técnicos con nuestro VT-d.
Fatal DMA error! Please use 'swiotlb=force'
------------[ cut here ]------------
kernel BUG at drivers/pci/xen-iommu.c:227!
invalid opcode: 0000 [#1] SMP
Podemos decir que el proceso de instalación no es demasiado duro para ser una versión alfa, la falta de espacio en el stick SSD la ha complicado algo. De lo que estamos seguros es que una VM de 10 GiB no tiene cabida ni en una versión beta.
Próximamente colgaremos vídeos de como funciona el invento y si $DEITY quiere, haremos funcionar la VM netvm.
--
Saludos de #linux, tu canal con versionitis.
Interesante Articulo!!
ResponderEliminar