Ubuntu y Debian eliminan ms-sys de sus repositorios
Ya me di cuenta hace unos meses de que el ms-sys, esa utilidad que tantas veces hemos usado en el pasado para escribir sectores de arranque de Microsoft en memorias USB, no venía en Ubuntu 8.04 Hardy Heron. ms-sys sí que fue parte, en cambio, de la 6.06 Dapper Drake, 7.04 Feisty Fawn y Ubuntu 7.10 Gutsy Gibbon.
De igual forma, aunque yo he podido usarlo con Debian 4.0 Etch y anteriores, la Debian 5.0 Lenny ya no incluirá el ms-sys.
¿Por qué ambas distribuciones han decidido eliminar este paquete tan útil de sus repositorios?
Pues por problemas de licencia, ya que a pesar de ser GPL, el ms-sys lleva código que es directamente un volcado de los sectores de arranque de Microsoft (Why ms-sys was removed on hardy?, ms-sys — RoSponsor; contains non-free code, ms-sys contains MBRs which are copyrighted by Microsoft, ms-sys boot loader license).
Si queremos usarlo -a pesar de las dudas que hay sobre su licencia-, tendremos que descargarlo y compilarlo. Sólo es necesario descomprimirlo, un make y un make install para tenerlo funcionando en apenas unos segundos.
Y la verdad es que creo que coincidiréis conmigo en que esto no parece que lo haya programado así, directamente en hexadecimal, el autor del ms-sys, ¿verdad?
/usr/src/ms-sys-2.1.3/inc $ cat mbr_2000.h
/* First 446 bytes of MBR from Windows 2000, XP and 2003 */
/* This is English version. Bytes 0x12c onwards vary with language. */
/* Last two bytes 1b6 and 1b7 point to language-specific messages. */
/* Support of other languages is an exercise for the reader! */
unsigned char mbr_2000_0x0[] = {
0x33, 0xc0, 0x8e, 0xd0, 0xbc, 0x00, 0x7c, 0xfb, 0x50, 0x07, 0x50, 0x1f,
0xfc, 0xbe, 0x1b, 0x7c, 0xbf, 0x1b, 0x06, 0x50, 0x57, 0xb9, 0xe5, 0x01,
0xf3, 0xa4, 0xcb, 0xbd, 0xbe, 0x07, 0xb1, 0x04, 0x38, 0x6e, 0x00, 0x7c,
0x09, 0x75, 0x13, 0x83, 0xc5, 0x10, 0xe2, 0xf4, 0xcd, 0x18, 0x8b, 0xf5,
0x83, 0xc6, 0x10, 0x49, 0x74, 0x19, 0x38, 0x2c, 0x74, 0xf6, 0xa0, 0xb5,
0x07, 0xb4, 0x07, 0x8b, 0xf0, 0xac, 0x3c, 0x00, 0x74, 0xfc, 0xbb, 0x07,
0x00, 0xb4, 0x0e, 0xcd, 0x10, 0xeb, 0xf2, 0x88, 0x4e, 0x10, 0xe8, 0x46,
0x00, 0x73, 0x2a, 0xfe, 0x46, 0x10, 0x80, 0x7e, 0x04, 0x0b, 0x74, 0x0b,
0x80, 0x7e, 0x04, 0x0c, 0x74, 0x05, 0xa0, 0xb6, 0x07, 0x75, 0xd2, 0x80,
0x46, 0x02, 0x06, 0x83, 0x46, 0x08, 0x06, 0x83, 0x56, 0x0a, 0x00, 0xe8,
0x21, 0x00, 0x73, 0x05, 0xa0, 0xb6, 0x07, 0xeb, 0xbc, 0x81, 0x3e, 0xfe,
0x7d, 0x55, 0xaa, 0x74, 0x0b, 0x80, 0x7e, 0x10, 0x00, 0x74, 0xc8, 0xa0,
0xb7, 0x07, 0xeb, 0xa9, 0x8b, 0xfc, 0x1e, 0x57, 0x8b, 0xf5, 0xcb, 0xbf,
0x05, 0x00, 0x8a, 0x56, 0x00, 0xb4, 0x08, 0xcd, 0x13, 0x72, 0x23, 0x8a,
0xc1, 0x24, 0x3f, 0x98, 0x8a, 0xde, 0x8a, 0xfc, 0x43, 0xf7, 0xe3, 0x8b,
0xd1, 0x86, 0xd6, 0xb1, 0x06, 0xd2, 0xee, 0x42, 0xf7, 0xe2, 0x39, 0x56,
0x0a, 0x77, 0x23, 0x72, 0x05, 0x39, 0x46, 0x08, 0x73, 0x1c, 0xb8, 0x01,
0x02, 0xbb, 0x00, 0x7c, 0x8b, 0x4e, 0x02, 0x8b, 0x56, 0x00, 0xcd, 0x13,
0x73, 0x51, 0x4f, 0x74, 0x4e, 0x32, 0xe4, 0x8a, 0x56, 0x00, 0xcd, 0x13,
0xeb, 0xe4, 0x8a, 0x56, 0x00, 0x60, 0xbb, 0xaa, 0x55, 0xb4, 0x41, 0xcd,
0x13, 0x72, 0x36, 0x81, 0xfb, 0x55, 0xaa, 0x75, 0x30, 0xf6, 0xc1, 0x01,
0x74, 0x2b, 0x61, 0x60, 0x6a, 0x00, 0x6a, 0x00, 0xff, 0x76, 0x0a, 0xff,
0x76, 0x08, 0x6a, 0x00, 0x68, 0x00, 0x7c, 0x6a, 0x01, 0x6a, 0x10, 0xb4,
0x42, 0x8b, 0xf4, 0xcd, 0x13, 0x61, 0x61, 0x73, 0x0e, 0x4f, 0x74, 0x0b,
0x32, 0xe4, 0x8a, 0x56, 0x00, 0xcd, 0x13, 0xeb, 0xd6, 0x61, 0xf9, 0xc3,
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x00,
0x45, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e,
0x67, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20,
0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x00, 0x4d, 0x69, 0x73, 0x73, 0x69,
0x6e, 0x67, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67,
0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x44, 0x63
};
/* Next four bytes used for Windows Disk Signature / Drive serial number */
/*
unsigned char mbr_2000_0x1b8[] = {
0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
*/
Siendo estrictos, es verdad que el ms-sys lleva código de Microsoft, aunque sólo sean varios trozos de menos de 512 bytes, por lo que es razonable la decisión que han tomado los desarrolladores de Debian y Ubuntu. Pero, ¡qué lastima dejar de tener a mano una herramienta tan útil! Ya podría Microsoft liberar estos míseros bytes de código por el bien de la interoperabilidad…
:wq








ReiRok dijo:
Pero claro maestro, totalmente de acuerdo.
Igualmente es lógico que .h sea una copia de los 446 bytes del MBR si lo que queremos es eso mismo, volver a escribirlo.
Si hasta el diskpart.exe del XP lleva una copia dentro del mismo, verifiquen, offset 1FC58h al 1FE0Fh en XP sp2 y 1B818h al 1B9D6h XP.
La verdad no voy a entender nunca este tipo de situaciones.
Saludos Reirok.
Sagman dijo:
Pues tienes toda la razón super, podrían liberar esa porción de código, pero para Microsoft eso no es importante
Uqm dijo:
A Microsoft le quedan dos teled…. dos sistemas operativos ‘for the masses’. Esa será una de las cosas que liquiden las BIOS libres.
Jorge dijo:
Ubuntu (y Debian) incluyen el paquete “mbr” con el comando “install-mbr”. No sé si ms-sys hace algo diferente, pero yo siempre he usado esto para arreglar problemas de arranque y me ha ido bien.
Saludos.
Super Coco dijo:
@Jorge Gracias por tu comentario. No conocía el paquete
mbrni elinstall-mbrpero me parece muy útil.Por lo que veo, el
ms-syshace más cosas que elmbr, porque este último sólo escribe MBRs, mientras que elms-syses capaz, además, de escribir sectores de arranque de particiones, que es lo que nos interesa en muchos casos cuando trabajamos con memorias USB.