[Caso Extraño] Problema con puertos USB 3.0 solo en bios/boot

Hola, buenas.

Ayer compré un SSD NVME M.2 y una case para ponerlo como disco duro externo mediante USB y utilizarlo como el disco duro principal, pero tengo un problema muy grande: ninguno de los puertos USB 3.0 que tengo los detecta el PC al iniciar, por lo que la única manera que tengo de utilizar el disco duro es conectándolo al USB 2.0, lo que me limita la velocidad del disco a unos 50 MB de escritura/lectura.

Cabe decir que únicamente no se detectan los puertos 3.0 en el arranque. Una vez inicio cualquier cosa (ya sea Clonezilla, un SO o la misma instalación de Windows) automáticamente se detectan estos puertos.

He probado tocando un poco de la BIOS (mi placa base es la huananzhi x58-rx3.0), instalando drivers y hasta intentando cambiar el SSD del 2.0 al 3.0 una vez iniciado Windows, pero al desconectarlo del primer puerto instantáneamente se freezea y tira pantalla azul.

Me gustaría saber si hay alguna solución: pensando en ello se me ha ocurrido hasta buscar algún booteable de USB que sirva como selector de disco, ya que una vez iniciada cualquier cosa, me detecta los puertos, pero no he encontrado nada al respecto.

Absolutamente cualquier aporte que creáis que pueda ayudar es bienvenido. De verdad que llevo ya dos días tocando y no tengo ni idea de qué hacer ya 😅


Adjunto algunas imágenes del boot y de la BIOS (creo que no se ven, no sé por qué):
Imagen
Midoriya-Chan escribió:Me gustaría saber si hay alguna solución: pensando en ello se me ha ocurrido hasta buscar algún booteable de USB que sirva como selector de disco, ya que una vez iniciada cualquier cosa, me detecta los puertos, pero no he encontrado nada al respecto.

Básicamente esto es lo que te iba a proponer. En una placa moderna no suele hacer falta, pero yo recuerdo más de una vez haber tenido que hacer "apaños" en la época de ese socket (1366) precisamente porque las BIOS no implementan el arranque desde dispositivos PCIe (como un disco M.2 con un adaptador, por ejemplo). Y probablemente con controladoras USB que no son nativas y BIOS del chinotauro pase lo mismo.

Una posible pero efectiva "ñapa" es utilizar un bootloader desde algún medio que sí pueda arrancar, como un USB2.0 del chipset, y de ahí continuar el arranque.

Si te manejas bien con Linux puedes usar GRUB "a pelo". Yo en el pasado he utilizado esto: https://www.plop.at/en/bootmanager/index.html (veo que hay una versión 6 en pruebas, verás que la 5 es viejita, pero vaya, funciona para arranque legacy de cosas modernas). Y la verdad que muy bien. También me ha salvado alguna vez en máquinas virtuales, cuando el software de virtualización no permitía montar un USB real en el arranque (versiones viejas de virtualbox, por ejemplo)

edito: Por cierto, yo NO te recomiendo hacer eso incluso si consigues que te funcione, porque incluso con las velocidades de USB3 en secuencial, la latencia extra en una plataforma viejita se nota y mucho. Yo lo que usaría es un adaptador de PCIe x1 a M.2 que vale "dos duros" y te va a dar el mejor rendimiento posible. Y arrancas con plbm desde un pendrive USB de los de propaganda, por ejemplo. Una línea PCIe 2.0 da 4GB/s, unos 400MiB/s, que no está mal. Comento esto porque el segundo slot de tu placa aunque sea largo está cableado a x1, y el primero entiendo que lo quieres para la GPU.

Saludos
Pollonidas escribió: Una posible pero efectiva "ñapa" es utilizar un bootloader desde algún medio que sí pueda arrancar, como un USB2.0 del chipset, y de ahí continuar el arranque.
Si te manejas bien con Linux puedes usar GRUB "a pelo". Yo en el pasado he utilizado esto: https://www.plop.at/en/bootmanager/index.html (veo que hay una versión 6 en pruebas, verás que la 5 es viejita, pero vaya, funciona para arranque legacy de cosas modernas). Y la verdad que muy bien. También me ha salvado alguna vez en máquinas virtuales, cuando el software de virtualización no permitía montar un USB real en el arranque (versiones viejas de virtualbox, por ejemplo)

Acabo de intentar lo que me has dicho del plop boot, pero me da "error". Estoy haciendo lo siguiente, corrígeme si hice algún paso mal:

He descargado el zip y he extraído la .iso, la cual he grabado en un USB gracias a Rufus. He iniciado el USB en el puerto 2.0 y todo ha cargado perfectamente, le doy a la opción de "USB" con el SSD conectado en el 3.0 y me sale una pantalla en negro en la que pone lo siguiente:

SYSLINUX 4.07 EDD 2013-07-25 Copyright (C) 1994-2013 H. Peter Anvin et al
Loading plpbt.bin...ready.
_


Después de eso no pasa absolutamente nada, se queda cargando.

Mientras escribía este mensaje, he estado trasteando un poco. Me he dado cuenta de que me salen dos opciones: HDA PARTITION 1 Y HDB PARTITION 1, que son el disco duro HDD interno que tengo, ya que las opciones salen aunque no conecte el SSD externo a ningún puerto.

Lo curioso es si conecto el SSD al puerto 2.0, ya me aparecen dos opciones nuevas: HDC PARTITION 1 y HDC PARTITION 2. Al hacer clic en:

- HDC 1: Me abre el SSD, todo bien.
- HDC 2: Me salta warning diciendo "not valid bootsector signature", si decido saltarme el aviso me lleva a otra pantalla de carga infinita (únicamente sale una "_" parpadeando)

¿Significa que ni siquiera esto me detecta los USB 3.0? No entiendo nada a este punto, llevo desde las 9 de la mañana dándole vueltas y no logro encontrar una solución.

Gracias por ayudarme
Puede que los puertos USB 3.0 hasta que no arranque el S.O. y se carguen los drivers correspondientes, no sea posible usarlos como dispositivos de arranque porque la BIOS no los reconoce bien, sobre todo si los puertos USB 3.0 dependen de un chipset de terceros.

De todos modos, con una placa chinorris de gama ultrabaja es de esperar cualquier cosa, más todavía con un socket tan antiguo y con una BIOS que a saber cómo estará programada por un fabricante pequeño, que no tendrá un equipo de ingenieros como una marca grande como ASUS, Gigabyte, MSI, etc...

Saludos.
Midoriya-Chan escribió:Lo curioso es si conecto el SSD al puerto 2.0, ya me aparecen dos opciones nuevas: HDC PARTITION 1 y HDC PARTITION 2. Al hacer clic en:

- HDC 1: Me abre el SSD, todo bien.
- HDC 2: Me salta warning diciendo "not valid bootsector signature", si decido saltarme el aviso me lleva a otra pantalla de carga infinita (únicamente sale una "_" parpadeando)

¿Significa que ni siquiera esto me detecta los USB 3.0? No entiendo nada a este punto, llevo desde las 9 de la mañana dándole vueltas y no logro encontrar una solución.

Gracias por ayudarme

Prueba con la versión 6 de plpbt a ver si la cosa mejora. Creo que los tiros van por donde dice @javier español (de hecho TODAS las placas de la época que llevan USB3 es que con chips de terceros, ya que el chipset X58 no los soporta nativamente).

Sobre el error:
- HDC 2: Me salta warning diciendo "not valid bootsector signature", si decido saltarme el aviso me lleva a otra pantalla de carga infinita (únicamente sale una "_" parpadeando)

Es porque seguramente esa es la partición EFI que windows suele crear junto con la instalación, así que no puede arrancar tampoco.

También que windows es más "temperamental" a la hora de arrancar desde sitios "raros", como particiones lógicas. Linux no suele poner pegas. Pero aquí no es un problema de windows/linux, es un problema de drivers de la controladora USB3 en arranque. Supongo que no hay actualizaciones de BIOS para esa placa ni mucho menos, ¿no? ¿Lo de poner el SSD con un adaptador a PCIe en lugar de por USB no te convence? Aunque no es seguro al 100% que funcione tiene muchas más papeletas que por USB.

Saludos
Pollonidas escribió: Prueba con la versión 6 de plpbt a ver si la cosa mejora. Creo que los tiros van por donde dice @javier español (de hecho TODAS las placas de la época que llevan USB3 es que con chips de terceros, ya que el chipset X58 no los soporta nativamente)
Al final me he comprado un adaptador a PCIe X1, pero como no está 100% asegurado que este método funcione, de momento hasta que me llegue (5-11 días al parecer) me gustaría probar por USB 3.0 por si llega el tan deseado adaptador y resulta que no es compatible o cualquier otro problema que impida utilizarlo en mi PC.

Ayer probé la versión 6 del boot manager que me comentaste, pero tengo problemas al intentar iniciar el PBM6. Intentaré detallar todo para ver si encuentras solución.

Primero he descargado pbm6-20240301.zip (latest), lo he descomprimido y me he situado en la carpeta "1_native". He intentado con las siguientes carpetas:

- cdrom: He probado con Rufus a meter el cdrom en un USB, pero me tira error diciendo que la imagen ISO no es autoarrancable o usa un método de arranque/compresión que no es soportado por Rufus.

- dos: Con Rufus he escogido MS-DOS y lo he metido en mi memoria USB, después metí el archivo de la carpeta en la raíz. Reinicio y abro MS-DOS mediante el USB, escribo "pbm6-dos.exe" y doy enter, una vez hecho esto, me sale la típica pantalla de carga infinita en la que lo único que puedo hacer es apagar el ordenador.

- floppy: Mediante Rufus pruebo a meter el pbm6.img en la memoria USB, pero al reiniciar con el USB me dice que no se ha encontrado ningún sistema operativo disponible.

Tanto la de linux, como la de pxe y windows no las he probado porque no entiendo muy bien las instrucciones, si ves que he hecho algo mal con las anteriores opciones coméntamelo.
Gracias de nuevo por tu tiempo.

Edito: Estoy probando la de Windows, resulta que en su momento no entendí bien las instrucciones porque era madrugada y estaba medio dormido.

He intentado iniciar PBM6 mediante Windows varias veces ya, la primera vez me arrancó, pero no detectó el teclado y, por tanto, no pude navegar por el menú.
Cambié el teclado de puerto y traté de iniciarlo 3 veces más, pero directamente aunque le diera se quedaba la pantalla en negro y la única solución es reiniciar el PC.
Volví a cambiar el USB del teclado al puerto donde estaba antes y, curiosamente, volvió a arrancar, pero de nuevo sin poder utilizar el teclado.
He iniciado cuatro veces más, con el teclado en puertos USB distintos (tanto 2.0 como 3.0) y nada, arranca, pero lo que es el teclado se desconecta automáticamente al entrar al menú.
@Midoriya-Chan

Se me ocurre que pruebes solo en los USB traseros, que van directos a placa, pero pienso que no ha sido buena idea por lo que te han comentado, son placas chinas que ni funcionan ni tienen los mismos soportes que las taiwanesas. Si algo te puede fallar, te fallará. Recuerda que tienes un hilo específico para esta marca.
@lerelerele
Gracias por el hilo, desconocía de él.

He probado en los 3 puertos USB 3.0 que tengo en todo el PC y ninguno detecta nada en la bios.
@Midoriya-Chan No sé si voy a poder dar una respuesta tan detallada como debería, pero al menos algunas cuestiones por si te ayudan.

El archivo que has bajado es el correcto, ya que tu placa supongo que no soporta arranque UEFI, solo BIOS/legacy/CSM (son varios nombres que se suelen usar indistintamente, aunque a mí el de BIOS no me parece demasiado correcto).

Cuando pueda probaré a ver si puedo montar alguna de las imágenes en proxmox. Probablemente la .iso del CDROM tenga que ser grabada a un CDRom "de verdad", tiene sentido que Rufus no sepa qué hacer con ella porque Rufus usa un cargador de arranque dependiendo del sistema operativo de la ISO (y si no sabe qué hacer o está grabando un linux, usa syslinux, aquí lo explica el propio desarrollador de Rufus), pero es que aquí lo que quieres arrancar ES un cargador de arranque.

La que más esperanzas tendría de que funcione grabada en un pendrive es la de floppy sin usar Rufus, pero si comentas que se queda en bucle... mal asunto. Puedes probar a grabarla con win32diskimager a ver si hay más suerte.

La de windows veo que has hecho pruebas y has conseguido algún avance, pero realmente no creo que por ese "camino" podamos llegar a nada, porque si puede leer "cosas" en el disco de windows (el propio tutorial dice que dejes el ejecutable en C:) es que ya tenemos el problema resuelto. El problema que tenemos es que por USB3 el disco de windows no está en etapas tempranas del arranque.

Mañana edito si consigo algo.

Saludos
@Pollonidas Ya tengo el adaptador a pcie x1, pero hay algo que no me termina de cuadrar... He usado el CrystalDisk para comprobar la velocidad del SSD y solo me da unos 200 MB/s, mientras que por USB 3.0 me daba 150 MB/s.

No sé si hay algo que falla, porque según tengo entendido por un PCIe 2.0 X1 me debería dar unos 500 MB/s
Midoriya-Chan escribió:@Pollonidas Ya tengo el adaptador a pcie x1, pero hay algo que no me termina de cuadrar... He usado el CrystalDisk para comprobar la velocidad del SSD y solo me da unos 200 MB/s, mientras que por USB 3.0 me daba 150 MB/s.

No sé si hay algo que falla, porque según tengo entendido por un PCIe 2.0 X1 me debería dar unos 500 MB/s

Si te soy totalmente sincero es más o menos la velocidad que esperaría ver, pero no deja de ser una mejora drástica frente a usar USB2.0 en esa misma plataforma (e incluso USB3.0 usando controladoras de terceros).

La mejora no es tan evidente en secuencial, coincido en que pasar de 150MB/s a 200MB/s no parece una gran mejora, pero si pasas otros tests que tienen en cuenta la latencia (por ejemplo AS SSD, que da una puntuación que tiene en cuenta velocidad secuencial en varios supuestos) puedes ver 50% o más de ganancia. Y “de regalo” probablemente puedas solventar lo del arranque.

Sobre por qué no se llega a la velocidad que se debería… en plataformas tan antiguas hay muchos posibles cuellos de botella que no es sencillo identificar. Primero porque hay muchas pérdidas de rendimiento al compartir buses, y el intercambio de información del chipset (X58) con el southbridge (ICH10) y todo lo que hay detrás (puertos SATA, puertos PCIe 1x, puertos USB 2.0 y 3.0, etc) va por una conexión DMI a 2GB/s. Bus que comparten todos claro.

Igualmente yo creo que es más una cuestión de poca potencia por núcleo y bajo IPC que no le permite aprovechar el ancho de banda del bus al completo. Si te consuela yo en plataformas más modernas con PCIe 3.0 (8Gb/s por línea) no he conseguido velocidades de más de 4-5GB/s con un enlace 1x en una tarjeta de red, necesitando casi el doble teórico (16Gb/s con 2x) para llegar a 10Gb/s reales de la tarjeta de red. Que es “solo” un 60-70% del valor teórico, que no es mucho más “aprovechamiento” de lo que estás viendo en tu PC.

¿Conclusión? Yo creo que ya tienes el mejor rendimiento que puedes tener con esa placa base. Si usas el AS verás que has ganado más de lo que piensas. Si incluso así no es suficiente… jubila la placa base. Incluso una de Xeon de 40€ con DDR4 te va a dar todo lo que permite el disco duro.

Saludos
@Pollonidas Lo he entendido perfectamente, gracias por la aclaración.

Ahora mismo tengo otro problema (todo indica y espero que sea el último ya): He clonado el HDD al SSD, todo ha salido a la perfección parece. Después traté de meter Clover a un USB que tengo, inicié el PC con el USB y salió la tan mencionada pantalla de carga interminable.

Como segunda opción opté por el duet + refind de 2015, resultando en un error al iniciar: "MBR Start! No se encontró un sistema operativo". También probé la versión de 2020, con exactamente el mismo resultado.

Voy a aclarar ciertas cosas para dar más información y por si estoy haciendo algo mal:

- Tengo el nvme conectado vía PCIe X1 2.0, Windows me lo detecta perfectamente y hasta pude clonar mi HDD a éste.

- Estoy utilizando un pendrive de 1 GB únicamente con el duet_edk_refind metido.

- He probado a limpiar y formatear el pendrive mediante el USBSetup.exe y manualmente mediante diskpart, ambos con el mismo resultado).

- No tengo puesto ningún otro pendrive con los archivos de instalación de Windows 10, ya que he clonado el disco y no los necesito, supongo.

- Cuando intenté bootear mediante el USB 3.0, llegué a probar este método y el duet me abría perfectamente, pero sin detectar el nvme al estar por USB. No logro entender por qué ahora no me abre y me da este error.

Edit: He metido el duet al pen mediante cmd al final, pero al iniciar está bastante bugeado (pantallas más pequeñas de lo que deberías ser, no hay ningún SO, ni siquiera el del HDD que tengo...). He llegado a la conclusión de que se está instalando mal, de ahí el por qué la primera vez me funcionó, varias no y esta última sí, aunque sea con cmd. Si se te ocurre algo dime, de momento estaré tocando un poco a ver si soluciono el tema.

Se me hace esto muy raro porque he probado ya a meter el duet el pen hasta en varios puertos USB distintos y siempre que intentó hacerlo con la aplicación me sale el error este

Edit2: Con tanto error me estoy empezando a plantear si sería posible modificar la bios... He visto por ahí que gente ha logrado modear la x58 para que pueda bootear discos nvme por pcie, pero no he encontrado ninguna bios de mi placa base ya modificada (normal, es china).
Me preguntaba si hay alguna manera de hacerlo yo manualmente y quitarme ya todo el peso de encima.
@Midoriya-Chan Lo de moddear la BIOS sería sin duda la opción mejor y más "elegante" pero no es un proceso fácil.

Como posible luz al final del tunel veo que al menos el fabricante dice que es "UEFI BIOS" lo que da alguna posibilidad de moddearla con UEFITool, porque yo pensaba que tu placa ni siquiera soportaba arranque UEFI y era todo CSM. ¿Hay alguna mención a la palabra CSM en la sección "boot" de la BIOS?.

Si es que sí y está desactivada (luego tienes windows instalado con arranque UEFI) aquí tienes un vídeo del proceso para añadir arranque por NVMe con la BIOS de una placa Asus:


Desconozco cómo de adaptable será el proceso a placas de otra marca. Aunque la web está un tanto desactualizada los foros siguen activos, por si quieres echar un ojo a posts similares o quieres probar suerte haciendo la consulta o pidiendo el mod directamente: https://www.bios-mods.com/forum/forumdi ... hp?fid=151

Igualmente yo creo que con duet o plop debería funcionar tal como lo tienes ahora. También puedes usar una .iso booteable de cualquier distribución de linux moderna, por ejemplo ubuntu, que suele haber una opción, antes de lanzar el instalador, de arrancar desde alguno de los dispositivos conectados. Yo probaría no para dejarlo así, sino para ver si el problema del no-arranque es cosa del bootloader (lo que creo yo) o de la instalación como tal.

edito: Voy a intentar moddearla... no prometo nada y yo personalmente no me arriesgaría a flashear nada si no tienes un CH341A o similar para flashear el chip de BIOS con la original si algo fallara.

edito2: Nada, no es tan sencillo, ni el UEFItool lo lee correctamente ni parece que tenga muchas posibilidades de funcionar. Yo me centraría en la opción del USB y hacer funcionar DUET/Refind o similar.

Saludos
@Pollonidas Lo primero quiero darte las gracias por estar siempre ayudándome con el tema.

Ahora, he conseguido iniciar Clover gracias a un usuario de Github, pero sigo con problemas y no puedo iniciar nada desde ahí. Lo explico detalladamente, como costumbre:

Inicio Clover con el USB, me abre y me salen 3 sistemas operativos. No entiendo muy bien cuáles son, supongo que el Windows del HDD, el del USB y otro más (puede que el BCD que aún tengo por si las moscas).

Al intentar abrir cualquiera de ellos salta error, lo que me extraña, ya que supongo que uno de ellos es el Windows que uso corrientemente.

Aclaro que he metido los drivers del nvme en el Clover y todo para que lo detecte.

imágenes

EDIT: He logrado conseguir una versión con Clover funcional gracias a Aio Boot. Me carga el HDD principal perfectamente, pero el nvme nada, me tira error. Tengo el SSD en MBR, no sé si podría ser eso. También tengo los drivers del nvme metidos en sus respectivas carpetas para que lo reconozcan.
Volví a instalar Windows en el SSD por si la clonación estaba mal y tampoco, no funciona.
También he probado a instalar los archivos de arranque de Windows con cmd y nada.

Adjunto imágenes: imágenes 2

Edit 2: He formateado el SSD y convertido a GPT, vuelto a instalar Windows y nada. No parece que salga en Clover a pesar de tener los drivers.
Me he quedado bloqueado, ya no sé qué más hacer para conseguir que funcione.

Edit 3: Acabo de probar a convertir el USB a GPT por si acaso y directamente no inicia. Descarto que sea por no tenerlo en GPT.

Supongo que al tener legacy es más complicado lograr que funcione, de gente que tiene uefi no he visto ni una sola queja
13 respuestas