Wifislax en Microsoft Surface Pro 3 (live USB) UEFI y Secureboot habilitado

En un post anterior explicaba cómo conseguí instalar kali Linux en un pendrive para arrancarlo con la Surface Pro 3, sin necesidad de deshabilitar el SecureBoot del UEFI, aprovechando la iso de Ubuntu 16.04 LTS (http://abrazalaweb.net/2016/08/kali-linux-2-en-microsoft-surface-pro-3-live-usb-uefi-y-secureboot-habilitado/).

Pues bien, parece que ese método funciona para otras distribuciones de Linux, en este caso Wifislax http://www.wifislax.com/.

Voy a usar la última versión beta  Wifislax-4.12-rc3, que se puede descargar de http://beta.seguridadwireless.es/

El método es el mismo:

  1. Descomprimir la iso de Wifislax en una carpeta
  2. Copiar los archivos del arranque uefi de la iso de Ubuntu 16 en la carpeta de Wifislax (creando las carpetas /EFI/Boot
    1. /EFI/Boot/BOOTx64.efi
    2. /EFI/Boot/ grubx64.efi
  3. Con una herramienta de creación de iso (un grabador o quemador) crear la iso modificada de Wifislax
  4. Con Rufus, crear el pendrive, formateado en Fat32 y con arranque Grub-Uefi
  5. Añadir en el pendrive, en la carpeta /EFI/Boot/ el archivo grub.cfg para arrancar.
  6. Modificar / eliminar dos módulos base para arrancar directamente en kernel SMP y escritorio XFCE (explicado después )

Todo funciona a excepción de:

  1. Touchpad del teclado type-cover
  2. Modo monitor de la wifi integrada (podemos usar un wifi-usb)

Capturas del arranque en la Surface Pro 3 (en modo persistente, que funciona perfectamente):

wifislax_SP3 1

wifislax_SP3 2

Modo persistente, cambiado tamaños de letras, y con el teclado virtual florence lanzado

wifislax_SP3 3

Usando VirtualBox

Para la pruebas y para evitar continuos arranques de la Surface, usé VirtualBox. Primero creando desde una máquina virtual cualquiera (o una nueva) un disco duro, que hará las veces del pendrive usb real  (formato VHD, para poder editarlo fácilmente desde Windows), luego creando una nueva máquina virtual de linux de 64 bits, donde se añade este disco duro en un interfaz SATA, y estableciendo en los ajustes de dicha máquina el tipo de arranque EFI.

Nota: existen métodos en VirtualBox para mapear un usb a un disco duro virtual con VBoxManage, usando así el pendrive real en la Máquina Virtual.

Adjunto capturas de estos pasos:

Una vez creado el disco virtual VHD (de 4Gb p.ej), al abrirlo directamente con Windows 10 aparece un error:

error VHD

Abriendo el Administrador de discos, como sugiere el mensaje de error:

Administrador de DiscosSeleccionamos el Disco (en este caso el disco 2) y creamos un nuevo volumen, indicando que haga una tabla de particiones GPT y formato FAT32.

Administrador de Discos 2

Y el resultado final:

Una vez hecho esto, tenemos nuestro “pendrive virtual”. Copiamos todos los archivos de la carpeta con el Wifislax modificado (con /UEFI/Boot/ y sus archivos) y arrancamos la máquina virtualcon este disco (Linux 64 bits, disco duro SATA y arranque EFI)

Elprimer paso es averiguar cómo asigna el grub a las unidades de disco, ejecutando en el menú de arranque grub la Shell del grub (es distinto en VirtualBox que en la Surface Pro 3 y esto habrá que repetirlo para corregir el grub.cfg)

VBox_grub

Encontramos que la partición de wifislax es (hd1,gpt2). Por tanto el grub.cfg (analizando los menús originales de wifislax) ha de contener (para arranque con Kernel SMP de 64bits):

set root=(hd1,gpt2)
linux /boot/vmlinuz2initrd /boot/initrd.xz
boot

Nota: las opciones de arranque no funcionan (noload, etc)

Con eso ya podemos comprobar si funciona, y efectivamente arranca :

Wifislax boot

 

Pero el entorno gráfico que arranca aparece con un login, y esto no vale para la Surface, pues llegados a ese momento no disponemos de un tecleado en pantalla.

Wifislax boot 2

Si hacemos ligan con root/toor, conseguimos un Shell, donde arrancando startx, aparece el escritorio xfce

Wifislax boot 3

 

Después de varias pruebas, lo que ocurre es que al no funcionar la opción  ‘noload’ en el boot, carga los dos escritorios (KDE y XFCE) y por eso no arranca directamente en uno de ellos. Para evitar esto, lo más sencillo es eliminar los módulos de KDE (y Kernel normal) en la carpeta /wifislax/base/ del pendrive (con nombre 0000-Kernel  y 0005-Kde, dejando aquél que nos interese, en mi caso 0000-SMP y 0005-XFCE)

8 Comments

  1. dreambro2 · martes, 15 noviembre, 2016 Reply

    Hello, what is the correct lines of code to put in the grub.cfg file in order run of usb on surface in efi?

  2. dreambro2 · martes, 15 noviembre, 2016 Reply

    Hola, ¿cuáles son las líneas correctas de código para poner en el archivo grub.cfg en orden ejecutar de usb en la superficieSurface en efi?

    • abrazalaweb · miércoles, 16 noviembre, 2016 Reply

      The grub.cfg lines are listed in the post, it’s important to point to the correct hdd partition (follow the steps to identify).
      My current USB gruf.cfg is:

      set root=(hd0,gpt1)
      linux /boot/vmlinuz2initrd /boot/initrd.xz
      boot

  3. GADIEL · sábado, 28 enero, 2017 Reply

    Hola disculpe existe esta opción para equipos de 32 bits y si me puedes explicar como quedaria.
    Saludos

    • abrazalaweb · lunes, 30 enero, 2017 Reply

      Hola, en principio sí se puede hacer en 32 bits, sólo hay que usar los archivos de boot UEFI de 32 bits, y que la Bios sea compatible. La Surface Pro 3 es de 64 bits, no puedo probar esa configuración

  4. Anónimo · martes, 14 febrero, 2017 Reply

    So hard for me to read, I need to use google translate to translate the page to English, and then use my bad english skills to translate English to Chinese

  5. Anónimo · martes, 14 febrero, 2017 Reply

    Still no loads. I am using surface pro 4.

    • abrazalaweb · martes, 14 febrero, 2017 Reply

      Are yo able to enter grub? What are exactly what is happening at boot from USB pendrive? Check my other post about Kali Linux in pendrive. If your SP4 boots to grub, it should be easy to fix the Linux boot

Leave a Reply

Tu dirección de correo electrónico no será publicada.