24
- mayo
2020
Posted By : lcardaba
RAMdisk con Win19 server core

RAMdisk ejecuta el sistema operativo (SO) y las aplicaciones directamente desde RAM, evitando los accesos a unidades de disco. Para ello, hay que tener la instalación del SO con sus correspondientes controladores, software, etc., residente en RAM. Lo único que se ejecuta en disco son los ficheros de audio.

Por lo tanto, la única actividad (sin excepción) que ocurre en disco durante la reproducción es leer archivos de audio (y solo si se almacenan en un SSD o HDD). No hay lectura en disco aparte de esto, porque Windows (y todo el C: \) se ejecuta directamente desde la RAM.

Para lograrlo, hay que utilizar una serie de herramientas y seguir unos pasos de instalación y configuración que detallaremos a continuación.

Se puede consultar la carga de un Windows Server 2019 aquí.

Unidad de disco

Tenemos que tener los ficheros de música almacenados en una unidad de disco, bien sea disco duro (HDD) o de estado sólido (SSD).

A los discos se accede, bien por SATA o por USB. Recomiendo hacerlo por USB, pues da más calidad de sonido que a través de SATA. Un disco duro mecánico también suena mejor que un SSD. Así pues la configuración más adecuada sería un disco duro externo con USB para almacenar nuestros ficheros de música.

Tarjeta de vídeo

Es aconsejable tener una tarjeta de vídeo independiente de la que trae la placa base integrada. Con ello ganamos en calidad de sonido porque quitamos tareas al procesador. Por otra parte, el procedimiento aquí descrito pudiera dar algún problema con la tarjeta de vídeo, aunque esto dependerá de nuestra placa base.

La BIOS

En mi experiencia, cuantos menos controladores de PC internos se usen, mejor, y cuanto más controladores de PC internos puedan ser únicos, mejor será el rendimiento. Por lo tanto, si el controlador SATA podría usarse exclusivamente para reproducir música, mejor. Si no se usa y se puede apagar directamente en la BIOS, mejor aún.

En mi PC, no utilizo controladores VGA / HDMI integrados, controladores SATA integrados, controladores de audio integrados y nada que no sea estrictamente necesario para reproducir música.

Solo mantengo los controladores USB integrados porque uso una memoria USB para enviar Windows a RAM, como explicaré a continuación.

Hay que deshabilitar desde la BIOS todo lo que no vayamos a utilizar.

Cargar el SO en RAM

El Windows cargado en la RAM (RAMDisk) es totalmente funcional y personalizable, pero, al estar en la RAM, es volátil. Una vez que apagamos el PC, todo lo que se ha hecho se pierde y será necesario volver a hacerlo, o deberá cambiarse directamente donde se almacena el sistema operativo.

Después de haber visto muchos vídeos y leído muchos manuales, nada funcionó para mí, con una sola excepción: crear un disco virtual, que sea arrancable y que se pueda cargar en la RAM, además de permitir futuros cambios y actualizaciones, si es necesario. Creo que la diferencia no está en el proceso en sí, sino en el hecho de que instalaremos Windows Server 2019 en modo Core. Aquí es donde encontré diferencias que requerían adaptaciones.

Aplicaciones necesarias

Para tener éxito, se necesitarán cuatro aplicaciones, que recomiendo descargarse de antemano, para que todo esté disponible cuando se ejecute el proceso.

Para mayor comodidad, hemos dispuesto un repositorio de Google Drive donde podrás descargar todo lo necesario.

  • WinNTSetup 4.1 (incluye Bootice 1.3.3)
  • FiraDisk 0.0.1.30
  • Grub4Dos versión 0.4.6a J1900

WinNTSetup nos ayudará a instalar Windows sin tener que iniciarlo desde el disco de instalación y personalizarlo antes del primer uso.

FiraDisk es un controlador que hace que Windows comprenda que se ejecuta desde la RAM. Grub4Dos seleccionará las particiones para el arranque y definirá el método (montar el disco, enviar a la RAM, etc.).

Grub4Dos selecciona la partición para el arranque y define el método (montar, enviar a RAM, etc.)

Bootice permitirá editar los parámetros de inicialización de Windows. Le recomiendo que preste mucha atención en esta parte, porque los pasos son fundamentales para que Windows funcione sin disco virtual y en RAMdisk. Esta aplicación viene integrada en WinNTSetup versión 4.1

Crear disco virtual

Conozco dos formas distintas de hacerlo:

  • Administrador de discos de Windows
  • Ventana CMD y diskpart

La forma más fácil de hacerlo es directamente desde WinNTSetup 4.1

Localizar el fichero WinNTSetup_x64.exe (o _x86 para 32 bits) y ejecutar como administrador.

Pulsar el botón “VHD>>>” de la esquina inferior derecha.

A continuación “Create”

Hay que tener cuidado de que el tamaño no sea demasiado pequeño, de modo que se ajuste al sistema operativo y no sea demasiado grande, hasta el punto de no encajar en la RAM. Tamaño mínimo 8GB, yo usé 16 GB (tengo 32 GB de RAM).

Tardará un poquito en crear el fichero .vhd, en mi caso dos minutos. A continuación volvemos a arrancar el menú VHD y adjuntamos el fichero .vhd que acabamos de crear, pulsando el botón “Attach”.

Ya tenemos lista la unidad virtual.

Cargar SO en disco virtual

Además hay que descargar el archivo NTBOOT.iso, necesario para arrancar el Windows desde la unidad USB (pendrive) a través del Grub4dos.

  1. Ejecutar WinNTSetup como Adminsitrador (seleccionar x86 o x64 dependiendo del sistema operativo en el que se ejecutará); una vez que WinNTSetup está abierto, podemos crear un disco virtual, en caso de que no se haya creado previamente. Simplemente hacer clic en “VHD” y luego seleccionar “crear un VHD particionado y listo para instalar”.
  2. Establecer la ubicación donde se creará el disco virtual, el tamaño (para Server 2019 en modo Core, recomiendo crear un disco virtual de 8-16 GB) y nada más. No tocar nada más. La aplicación hará todo por sí misma, configurará la unidad X: \ como un destino e insertará automáticamente esta información.
  3. Insertar el disco de instalación de Windows o monte la imagen con la instalación, el método que prefieras, y después de eso, en la primera opción de WinNTSetup, seleccionar el archivo .iso correspondiente al disco de instalación. En este punto, el segundo y el tercer campo se deben completar automáticamente

Abrir el notepad y pegar el siguiente texto:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\FiraDisk]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\FiraDisk\0000]
"ConfigFlags"=dword:00000000
"Service"="FiraDisk"
"HardwareID"=hex(7):72,00,6f,00,6f,00,74,00,5c,00,66,00,69,00,72,00,61,00,64,\
  00,69,00,73,00,6b,00,00,00,00,00
"CompatibleIDs"=hex(7):44,00,45,00,54,00,45,00,43,00,54,00,45,00,44,00,49,00,\
  6e,00,74,00,65,00,72,00,6e,00,61,00,6c,00,5c,00,46,00,69,00,72,00,61,00,44,\
  00,69,00,73,00,6b,00,00,00,44,00,45,00,54,00,45,00,43,00,54,00,45,00,44,00,\
  5c,00,46,00,69,00,72,00,61,00,44,00,69,00,73,00,6b,00,00,00,00,00
"ContainerID"="{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
"Capabilities"=dword:00000000
"ClassGUID"="{4d36e97b-e325-11ce-bfc1-08002be10318}"
"Class"="SCSIAdapter"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\FiraDisk\0000\LogConf]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\FiraDisk\0000\Control]
"ActiveService"="FiraDisk"

Guardar el fichero de texto con el nombre y la extensión FiradiskEnum.reg

Volver a WinNTSetup, hacer clic en “Tweaks” y, en “Configuración del registro”, buscar el archivo .reg que acaba de crear.

También es posible realizar varias modificaciones, que son a discreción del usuario.

Hacer clic con el botón dcho. del ratón en VHD y desmarque la única opción existente: “Native VHD boot checks”; haga clic en “Instalar” y espere la finalización.

Aquí, algo que es importante: cuando solicite reiniciar el PC: cancelar y no permitir el reinicio.

Como se supone que el controlador FiraDisk ya está descargado, abrir una ventana CMD como administrador, navegar a la carpeta donde está el archivo .inf de FiraDisk y escribir:

dism /Image:X:\ /Add-Driver /driver:firadisk.inf /ForceUnsigned

Donde “X:” debe ser equivalente a la letra del disco virtual montado

Recordando que para navegar entre MS-DOS, simplemente hay que escribir cd nombrecarpeta para ingresar a una carpeta, y cd .. para salir de ella.

El comando “dir” muestra todo lo que existe dentro de la carpeta actual.

Desde WinNTSetup, abrir Bootice (icono de la esquina superior derecha) y configurar:

a) Easy mode

b) seleccionar las opciones “Modo de prueba (firma de pruebas)” y “Sin verificaciones de integridad”

c) Guardar el sistema actual.

d) Reiniciar la máquina.

Aquí, Windows Server 2019 ya debería aparecer en el menú de selección del sistema operativo con la indicación “disco virtual” en la parte frontal. Seleccione para comenzar desde vdisk;

e) Hecho todo esto, Windows debería comenzar normalmente desde el disco virtual por primera vez, sin interferencias. Sin embargo, es común que aparezca un error que indique que FiraDisk no pudo verificar su firma. Si esto ocurre, debe volver a la pantalla anterior, detener el indicador en el disco virtual y presionar la tecla F8, luego, seleccione la opción “Desactivar la aplicación de firma del controlador”. Con esto, Windows debería comenzar normalmente.

Para que esto no vuelva a suceder aconsejo ejecutar los siguientes comandos en la consola de CMD:

bcdedit.exe /set nointegritychecks off
bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON

Ahora es el momento de instalar todas sus aplicaciones y controladores, como Audiophile Optimizer, Fidelizer, BugHead, HQPlayer; Foobar 2k, etc… controladores del DAC y nada más. No recomiendo instalar ningún controlador que no sea estrictamente necesario para reproducir música y para el perfecto funcionamiento de Windows.

Configurar la carga de Vdisk en RAMdisk

Desde el momento en que todo está en funcionamiento, se puede configurar RAMdisk.

Para que RAMdisk funcione, es necesario remplazar esa “pantalla inicial” de selección del sistema operativo por Grub4Dos.

Este es un cambio irreversible que, para deshacerse, requerirá que TODO SSD / HDD esté formateado, incluida la eliminación de la partición en el lugar donde se encuentra (esa partición de 500 MB que Windows separa antes de instalar, y donde colocaremos Grub4Dos). Para “evitar” esto, lo que hice fue instalar Grub4Dos directamente en un dispositivo USB y configurar el BIOS para que arranque directamente desde él.

La memoria USB debe estar formateada en NTFS, la partición debe ser primaria y activa, para que arranque, después copie todo el archivo .vhd a dicha unidad.

Es más práctico, más barato (no requiere un SSD y un cable SATA “audiófilo”), y permite quitar el pendrive después del arranque, en observancia de mis comentarios iniciales (usa la menor cantidad posible de controladores integrados).

Instalar en la memoria USB es bastante simple. Solo es necesario abrir el archivo de instalación “grubinst_gui.exe”, seleccionar el pendrive como destino y la partición MBR como ubicación de instalación.

Una vez hecho esto, debe copiar los archivos llamados glrdr y menu.lse en pendrive

Entonces, simplemente entrando en la BIOS y configurando la memoria USB como primera opción de arranque, Grub4Dos se abrirá al inicio.

Además, es fundamental transferir el archivo llamado ntboot.iso (http://c-dl.qiniudn.com/dl/NTBOOT.rar), de modo que el acceso al disco virtual esté habilitado independientemente de si se realiza RAMdisk.

El proceso tiene lugar de la siguiente manera:

Recomiendo el dispositivo USB, porque la conexión SATA, aunque a menudo es esencial, no es beneficioso para la calidad de audio. Por lo tanto, como el pendrive se puede quitar después del arranque, tiende a ser mejor (sin conexión USB que no sea el DAC), y esto sin contar todos los beneficios que trae el hecho de que Windows se ejecuta directamente desde la RAMdisk (velocidad, latencia y otros).

Lo último que queda es configurar el archivo menu.lst, abrirlo con el Notepad y pegar el siguiente texto:

color blue/green yellow/red white/magenta white/magenta timeout 10 default/default
title Windows SERVER 2019 AUDIOPHILE SSD TO RAM
find --set-root --ignore-floppies /Server2019.vhd map --mem /Server2019.vhd (hd0)
map --hook root (hd0,0) chainloader /bootmgr
title Windows SERVER 2019 AUDIOPHILE SSD
map --mem /ntboot.iso (0xff)
map --hook
(0xff)/NTBOOT NT6=()/Server2019.vhd boot
title commandline commandline
title quit quit
title reboot reboot
title halt
halt

Aquí, un ajuste es indispensable: cada lugar del texto donde se escribe Server2019.vhd debe sustituirse por el nombre del archivo.vhd que se creó al principio, para que Grub4Dos pueda ubicarlo y montar un dispositivo virtual. Si esto no se hace, no hay pérdida, simplemente no funcionará.

El primero está configurado para cargar todo en la RAM y el segundo está configurado para arrancar normalmente desde el disco virtual. Esto último es muy importante, ya que se usará para llevar a cabo actualizaciones, ediciones y cualquier otro cambio en Windows que se cargará en la RAMDisk.

Otras cosas que se pueden cambiar son el “tiempo de espera”, que configuré en 10 segundos, y el orden del menú. Si quiero que la “regla” sea un arranque desde el disco virtual, necesito colocar los parámetros del disco virtual (Windows SERVER 2019 AUDIOPHILE SSD) por encima de los de RAMdisk. La configuración es simple y ya he insertado todo lo necesario.

Notas

Si no coge los drivers firadisk de la instalación hecha con WinNTSetup,

acceda al archivo que creó con el bloc de notas “FiradiskEnum.reg” y con el botón derecho del ratón ejecute la opción combinar.

Compruebe que los drivers firadisk son funcionantes mediante el administrador de dispositivos (comando devmgmt), pues de no estar bien instalados, Windows Server 2019 Core no arrancará en la RAM.

Comandos útiles

Desactivar Windows Defender (powershell)

 Uninstall-WindowsFeature -Name Windows-Defender

Configurar  PAGEFILE.SYS:

wmic computersystem set AutomaticManagedPagefile=False
wmic pagefileset where name="c:\\pagefile.sys" set InitialSize=A,MaximumSize=B

Referencias

Documentación, herramientas y ficheros necesarios en Google Docs
Forum Reboot
Hilo en Audiophilestyle sobre RAMdisk
Hilo en forum Jplay sobre RAMdisk

Deja una respuesta