Buenas :-) Me regalaron (mejor en mis manos que en la basura) un laptop Pentium MMX 200 MHz, con 32 Megas de RAM. "SIRE AIO 6200". Marca desconocida pero un juguete con el que entretenerse un rato. Resulta chulo hasta de pantalla (12.1). Pues el asunto es que con semejante cantidad de memoria (32 Megas), y limitación del cilindro 1024 (arquitectura x86), un disco duro de 2067 Megas, arranque soportado por la BIOS de unidad A y C, pero no desde el CD-ROM, se me planteaba cómo instalar ahí SuSE, pues no podía soportar que el Sr. Puertas se saliera con la suya con el win9x instalado (Que conste que me da pena, pues sabemos que - marketing para incautos -, tiene la intención de donarlo todo cuando se muera, pero no antes). ¿Cómo le instalo el linux? (Intentaré adquirir más memoria, seguramente el tendero se pasará pidiendo, y eso en el caso de que la encuentre..., pero para cuando llegue ese momento el sistema ya estará funcionando. Y mientras, me dedico a probar entornos de escritorio no pesados (Window Manager, etc.), y a practicar con la línea de comandos. Que conste que el KDE arranca, claro, pero se eterniza). Bueno, pues el asunto lo resolví así, por si a alguien puede servirle. Le instalé la distro 9.2. 1º) Cree los discos de arranque de linux (3 disquetes, y 4 más de módulos, por si las moscas). Ahí estaban, en el directorio /boot del cdrom. La cosa fue sencilla, con la unidad fd0 desmontada: # dd if=/directorio/ruta/cdrom/boot/nombredisquete/o/modulo of=/dev/fd0 2º) Previamente, y como había que formatear el disco (hda1: /boot -por la limitación del cilindro 1024-, hda2: raíz (/), hda3: intercambio (swap)) me bajé de la red un par de minidistros de esas que caben en un disquete o poco más (AlfaLinux -2-, y Tom's Root Boot -1-, también probé con el TinyLinux, que tenía bajado de una ocasión anterior, pero por alguna razón daba fallo -creo que no debido a mis manazas, pues conseguí instalarla en un 486). Pues bien, con el tomsrtbt en marcha -"casi todo el linux en un disquette" (sic) le llaman-, a) Cree las particiones, con ese bonito programa llamado fdisk: # fdisk /dev/hda <_| b) No basta con crear las particiones, pues cada partición debe tener un sistema de archivos, así que indiqué con fdisk el tipo de sistemas de archivos que iban en cada partición. Y a crear los sistemas de archivos correspondientes. En hda1 el ext2, en hda2 el ext2 también (posteriormente lo cambie por reiserfs durante la instalación de la distro; no sabía yo en ese momento que se podía dar una opción al mke2fs para que la hubiera formateado en ext3 y paso ahorrado), y en hda3 le puse la swap, esta última con el mkswap con alguna opción, -v1 o similar (man mkswap <_|) c) Después activé la partición de intercambio con swapon <_|. La cuestión es que linux está tan documentado que con alguna cosa que te suena de por aquí y otra que te suena de allá, encuentras ayuda para solucionar tus problemas si sabes buscar en el lugar adecuado y moverte por la web. Se acostumbra uno a hacerlo todo en modo "gráfico-automático", y después pasa lo que pasa: que se pierde uno en la línea de comandos, o en los conceptos y procedimientos. Por cierto, en el último Todo Linux que he recibido, nº 63, recomendaban la lectura de un manifiesto del programador Neal Stephenson, "En el principio...fue la línea de comandos" (Editorial Traficantes de Sueños, 10,80 €), un afamado programador y autor de novelas de ciencia-ficción como "Crash". 3º) Ya lo tercero fue instalar la distro: disquetes de arranque y cdrom a continuación. Y como siempre, darle a Aceptar, pues sino n funciona. Un poco de paciencia y listo para funcionar. Pues ya con lo básico hecho, ahora me estoy entreteniendo con otras cosas. Por ejemplo, me estoy informando para conseguir que funcione un adaptador inalámbrico (WIFI, D-Link) en el laptop (En la distro 10.0 funciona sin problemas). Con el adaptador de red alámbrico (PCMCIA) funciona la red si problemas. Pues nada, que para leer el correo en vacaciones o un finde, desde algún hotel de estos modernos que tienen conexión de red en las habitaciones, suficiente. Linux es entretenido y divertido. Por diversión que no quede. Con las redes inalámbricas podemos "ir de pesca" (haces deporte por lo tanto). Serán inseguras (siempre puedes dejar la entrada libre; o únicamente a las MAC que tú quieras y/o prohibir cuando no te interese dar acceso; o inhabilitar el acceso por wifi), pero es divertido: con la caña por delante siempre pica alguien y entra en tu red, y puedes curiosear. En eso estamos. Para los que no tienen paciencia (lentitud por las limitaciones del HW), también se puede hacer funcionar con ltsp, contra un servidor (nos sobran 16 MBytes de RAM!). Pero una cosa no quita para la otra. Son dos cosas compatibles. Y por último, funciona mucho mejor el linux en el laptop, que el sistema win9x que llevaba preinstalado (ahora ya no!) (Para el milenium no había drivers para algunos dispositivos periféricos; y el XP no se podía ni instalar: mínimo 64 Megas). En la línea de comandos con linux tenemos hasta navegadores web, no será por falta de conectividad; y entornos gráficos con mínimos requerimientos de memoria. Pues lo dicho, quizá a ese equipo que otros tiran por "obsoleto" tú puedas sacarle algún aprovechamiento. Al menos te divertirás un rato, que no es poca cosa. Un saludo, JOSANable
El Miércoles, 1 de Febrero de 2006 21:06, JOSANable escribió:
1º) Cree los discos de arranque de linux (3 disquetes, y 4 más de módulos, por si las moscas). Ahí estaban, en el directorio /boot del cdrom. La cosa fue sencilla, con la unidad fd0 desmontada: # dd if=/directorio/ruta/cdrom/boot/nombredisquete/o/modulo of=/dev/fd0
2º) Previamente, y como había que formatear el disco (hda1: /boot -por la limitación del cilindro 1024-, hda2: raíz (/), hda3: intercambio (swap)) me bajé de la red un par de minidistros de esas que caben en un disquete o poco más (AlfaLinux -2-, y Tom's Root Boot -1-, también probé con el TinyLinux, que tenía bajado de una ocasión anterior, pero por alguna razón daba fallo -creo que no debido a mis manazas, pues conseguí instalarla en un 486).
* A ver, esta limitacion existe si situas el mecanismo de arranque fuera del cilindro 1024, si instalas el cargador en el MBR del disco (sector 0) o en el primer sector de la particion / y no hay otro sistema instalado estas 1023 cilindros por debajo del limite.
Pues bien, con el tomsrtbt en marcha -"casi todo el linux en un disquette" (sic) le llaman-,
a) Cree las particiones, con ese bonito programa llamado fdisk: # fdisk /dev/hda <_|
b) No basta con crear las particiones, pues cada partición debe tener un sistema de archivos, así que indiqué con fdisk el tipo de sistemas de archivos que iban en cada partición. Y a crear los sistemas de archivos correspondientes.
* La limitacion en la instalacion es de Yast que precisa mas de 32 MB para rular, asi que lo unico que hay que hacer es crear una particion de swap previa y formatearla con mksap, para no dejarla sola mejor crear el resto de particiones pero no es preciso formatearlas, yast en modo texto detectara la necesidad de mas memoria y detectara la swap y la montara, a partir de aqui puedes formatear las particiones hechas desde yast. * Con 32 MB no podras hacer nada en modo grafico.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2006-02-01 a las 22:34 +0100, jose maria escribió:
* A ver, esta limitacion existe si situas el mecanismo de arranque fuera del cilindro 1024, si instalas el cargador en el MBR del disco (sector 0) o en el primer sector de la particion / y no hay otro sistema instalado estas 1023 cilindros por debajo del limite.
Necesita también que "/boot" esté debajo del límite, porque el kernel se lee con ayuda de la bios, al menos con el lilo; con el grub no estoy seguro de que parte se lee con la bios, puede ser el stage1_5. Tengo un 386SX, que en sus tiempos vino con un disco de 84MB, y que no soporta más de 512Mb, con un disco de algo más de dos gigas - que por supuesto no reconoce - pero que funciona perfectamente bajo linux.
* Con 32 MB no podras hacer nada en modo grafico.
Mmm :-? Tengo un Pentium-120 con 32 megas de ram precisamente, y si soporta modos gráficos, con suse 7.3 - -- Saludos Carlos Robinson -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) Comment: Made with pgp4pine 1.76 iD8DBQFD4U7wtTMYHG2NR9URAq+uAKCPqdKg7NoOvfWMd2fXyvEOGvsOUwCfeR7i 2QxCnOpU8KJ8GroRiu4M6Jg= =ASKW -----END PGP SIGNATURE-----
El Jueves, 2 de Febrero de 2006 01:14, Carlos E. R. escribió:
Necesita también que "/boot" esté debajo del límite, porque el kernel se lee con ayuda de la bios, al menos con el lilo; con el grub no estoy seguro de que parte se lee con la bios, puede ser el stage1_5.
* Doy por sentado que si solo hay un sistema la raiz (no hace falta que haga una particion /boot) no la ponga al final del disco, pero esta bien la puntualizacion.
Tengo un 386SX, que en sus tiempos vino con un disco de 84MB, y que no soporta más de 512Mb, con un disco de algo más de dos gigas - que por supuesto no reconoce - pero que funciona perfectamente bajo linux.
* Con 32 MB no podras hacer nada en modo grafico.
Mmm :-?
Tengo un Pentium-120 con 32 megas de ram precisamente, y si soporta modos gráficos, con suse 7.3
* Soportar es casi lo mismo que soportar .... , tendra que usar programas muy ligeros, twm, links grafico, abiword, en fin esas cosas, que en suse 9.3 con un kernel 2.6 las va a pasar moradas, tengo ya no menos de 25 PI y obviamente son terminales sin disco, solamente uno con una distribucion en modo texto ejerce de servidor de impresion, fax y scanner, otras cosas con ese hierro tienen poco sentido, yo desde luego le meteria beos o qnx.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2006-02-02 a las 15:58 +0100, jose maria escribió:
El Jueves, 2 de Febrero de 2006 01:14, Carlos E. R. escribió:
Necesita también que "/boot" esté debajo del límite, porque el kernel se lee con ayuda de la bios, al menos con el lilo; con el grub no estoy seguro de que parte se lee con la bios, puede ser el stage1_5.
* Doy por sentado que si solo hay un sistema la raiz (no hace falta que haga una particion /boot) no la ponga al final del disco, pero esta bien la puntualizacion.
Depende, depende... en una maquina antigua, bios antigua, si pones partición única y al copiar el kernel este pilla por encima de la pista 1024, no arranca. Por eso se hacía el truco de tener una partición diminuta (una o dos pistas) por debajo de la 1024, y luego el resto ya no importaba donde estuviera, porque al kernel le importa un bledo, no tiene esa limitación de pistas.
Tengo un 386SX, que en sus tiempos vino con un disco de 84MB, y que no soporta más de 512Mb, con un disco de algo más de dos gigas - que por supuesto no reconoce - pero que funciona perfectamente bajo linux.
* Con 32 MB no podras hacer nada en modo grafico.
Mmm :-?
Tengo un Pentium-120 con 32 megas de ram precisamente, y si soporta modos gráficos, con suse 7.3
* Soportar es casi lo mismo que soportar .... ,
X-)
tendra que usar programas muy ligeros, twm, links grafico, abiword, en fin esas cosas, que en suse 9.3 con un kernel 2.6 las va a pasar moradas, tengo ya no menos de 25 PI y obviamente son terminales sin disco, solamente uno con una distribucion en modo texto ejerce de servidor de impresion, fax y scanner, otras cosas con ese hierro tienen poco sentido, yo desde luego le meteria beos o qnx.
Obviamente. El kde lo "soporta" malamente, el gnome algo mejor, y cosas como el fwmn bastante mejor. Netscape 4.7 es usable, pero el mozilla es infumable, media hora en arrancar y llegar a preferencias - y no exagero. El staroffice es usable, el OO no lo he probado ahí, no viene en el 7.3 que le tengo puesto. Pero incluso en modo texto como servidor de correo tiene problemas, si le pongo spamassassin, porque tarda como medio minuto en procesar cada correo La limitación es la memoria, no la cpu. - -- Saludos Carlos Robinson -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) Comment: Made with pgp4pine 1.76 iD8DBQFD4iwDtTMYHG2NR9URAjVQAJ9kmPROsgXIdqjaBS2f8cQAJv7RsQCfei4a rVSOA4bJ4VuIyf3n1ZAQ/2k= =7j6/ -----END PGP SIGNATURE-----
El Jueves, 2 de Febrero de 2006 16:57, Carlos E. R. escribió:
Depende, depende... en una maquina antigua, bios antigua, si pones partición única
* Esto no pasa del segundo cilindro en el peor de los casos, 1024 estamos hablando de muchos cilindros.
y al copiar el kernel este pilla por encima de la pista 1024, no arranca.
Por eso se hacía el truco de tener una partición diminuta (una o dos pistas) por debajo de la 1024, y luego el resto ya no importaba donde estuviera, porque al kernel le importa un bledo, no tiene esa limitación de pistas.
* El truco era por que generalmente por delante iva siempre wilson comiendose el espacio.
2006/2/1, jose maria
El Miércoles, 1 de Febrero de 2006 21:06, JOSANable escribió:
* A ver, esta limitacion existe si situas el mecanismo de arranque fuera del cilindro 1024, si instalas el cargador en el MBR del disco (sector 0) o en el primer sector de la particion / y no hay otro sistema instalado estas 1023 cilindros por debajo del limite.
Si la (única) partición raíz va más allá del cilindro 1024 y se extiende hasta los últimos cilindros hasta donde comienza la swap, lo normal es que no arranque el sistema (Caso: dos particiones / y swap). Por eso conviene instalar la partición /boot al comienzo del disco (Caso: /boot, / y swap; y por ese orden, puesto que la swap ahí será más rápida -eso lo aprendí de tí-). En mis ordenadores viejos (pentium1), es así como funcionaba; excepto en uno de ellos (regalado por el otro josé maría que tú conoces) que -sino recuerdo mal y ni idea de porqué- se saltaba la limitación del cilindro 1024,a pesar de que su arquitectura era x86. De hecho en el laptop con dos particiones se instaló el sistema, pero no quiso arrancar.
* La limitacion en la instalacion es de Yast que precisa mas de 32 MB para rular, asi que lo unico que hay que hacer es crear una particion de swap previa y formatearla con mksap, para no dejarla sola mejor crear el resto de particiones pero no es preciso formatearlas, yast en modo texto detectara la necesidad de mas memoria y detectara la swap y la montara, a partir de aqui puedes formatear las particiones hechas desde yast.
Ciertamente, no es necesario formatear previamente las particiones /boot y raíz. Pero es una buena práctica (para aprender a hacerlo) el crear las particiones (con fdisk o parted por ejemplo), y después crearles el sistema de archivos con las herramientas mk*. No hay ninguna razón, exceptuando la de aprender el procedimiento para hacerlo (esto me parece importante). En cuanto a la partición swap no sólo tuve que crearla con mkswap, sino también activarla (si no la activaba previamente desde el tomsrtbt, SuSE era incapaz de hacerlo durante la instalación, fallaba en la activación).
* Con 32 MB no podras hacer nada en modo grafico.
Poca cosa se puede hacer con esa memoria y con el KDE, a menos que uno sea masoquista, pero algunos entornos poco pesados sí funcionan (como mínimo tan bien como el win98 que llevaba instalado "de fábrica", y el funcionamiento de este era ya de por sí muy limitado. Pero sinceramente, lo hace mucho mejor el linux con cualquier entorno gráfico no pesado). Lo bueno que tiene es precisamente eso (mientras no hay má memoria): no queda más remedio que darle a la línea de comandos y poco más.
El Jueves, 2 de Febrero de 2006 20:03, JOSANable escribió:
Si la (única) partición raíz va más allá del cilindro 1024 y se extiende hasta los últimos cilindros hasta donde comienza la swap, lo normal es que no arranque el sistema (Caso: dos particiones / y swap).
* ¿por que? tu haz una particion / que la bios vea , los ficheros de /boot estan en los primeros cilindros, despues el kernel no tiene limitaciones en la extension, no hace caso de la bios si no que escanea el hardware por su cuenta.
2006/2/2, jose maria
* ¿por que? tu haz una particion / que la bios vea , los ficheros de /boot estan en los primeros cilindros, despues el kernel no tiene limitaciones en la extension, no hace caso de la bios si no que escanea el hardware por su cuenta.
Lo de que linux descarta la bios en cuanto puede ya lo tenía claro, pero en cuanto a lo de dos únicas particiones ( / y swap) si no recuerdo mal en muchos casos no me ha funcionado. La razón no la sé, pero mi experiencia es esa, que en algunos equipos (la mayoría de los que yo he visto) eso no funciona; y sin embargo en otros (uno en mi caso) sí funcionó. Igual es que, en algún momento de la tecnología x86, la cosa "evolucionó" y consiguieron que lo que en un primer momento no funcionaba posteriormente sí lo hizo, (tal vez idearan "algo" para saltarse lo de la limitación del cilindro 1024 a partir de un determinado momento). Aunque es hablar por hablar, y por lo tanto conjetura, pues yo no tengo conocimientos de eso.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2006-02-02 a las 21:14 +0100, JOSANable escribió:
Lo de que linux descarta la bios en cuanto puede ya lo tenía claro, pero en cuanto a lo de dos únicas particiones ( / y swap) si no recuerdo mal en muchos casos no me ha funcionado. La razón no la sé, pero mi experiencia es esa, que en algunos equipos (la mayoría de los que yo he visto) eso no funciona; y sin embargo en otros (uno en mi caso) sí funcionó. Igual es que, en algún momento de la tecnología x86, la cosa "evolucionó" y consiguieron que lo que en un primer momento no funcionaba posteriormente sí lo hizo, (tal vez idearan "algo" para saltarse lo de la limitación del cilindro 1024 a partir de un determinado momento). Aunque es hablar por hablar, y por lo tanto conjetura, pues yo no tengo conocimientos de eso.
Si, es así. La explicación es muy simple: las bios antiguas sólo permitían direccionar hasta la pista 1024, el resto simplemente era inexistente; no por nada, sino porque cuando diseñaron la instrucción (int xx) para leer del disco lo dimensionaron de esa forma porque pensaron que era más que suficiente. El kernel del linux no tiene esa limitación de la bios para acceder por encima de la pista 1024; pero el kernel no arranca sólo, hay que leerlo del disco y cargarlo en memoria, y alguien tiene que leerlo. ¿Quien? Pues el cargador, por ejemplo el lilo; y para leer del disco no tiene más remedio que usar las rutinas de lectura de disco que proporciona la bios... por tanto, es necesario garantizar que los ficheros necesarios para arrancar el sistema (el kernel, el initrd...) residan en la parte baja del disco por debajo de la pista 1024, que es la única que la bios de esos ordenadores puede leer. O lo que es lo mismo, en esos ordenadores con bios antiguas (no se hasta que fecha) necesitan que el contenido del directorio /boot esté por debajo de la pista 1024. Lo puedes hacer como te de la gana, una partición o veinte, en cualquier orden, mientras el contenido de /boot esté en la zona que la bios puede leer. El resto, puede estar en cualquier sitio. Entonces, muchas veces ocurría que el principio del disco ya estaba ocupado, por el windows. Pues bastaba con achicar un par de pistas el disco C, crear ahí una pequeña partición para el linux, y luego al final del disco, el resto. No hacía falta desplazar el windows. O dicho de otra forma: puedes poner la raiz (/), /home, la swap, etc, etc en la pista 3000 si quieres; pero /boot tiene que estar por debajo de la 1024 - esa es la única limitación. (Referencias: manuales de instalación del linux de la época, documentación del lilo) Y, si la bios es más moderna y puede leer por encima de la pista 1024, puedes perfectamente distribuir las particiones de cualquier forma, en una única partición, o en doscientas. - -- Saludos Carlos Robinson -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) Comment: Made with pgp4pine 1.76 iD8DBQFD4plotTMYHG2NR9URAmKcAKCRWxfkjHyS4seO63GS9/+KamooCgCgin2C JW9MpswoaiueK3wNe8ZOEhk= =F3kk -----END PGP SIGNATURE-----
Pues gracias por la explicación, ya que esta mañana estaba dándole vueltas
al asunto, y no sé porqué razón me preguntaba si eso no tendría más bien que
ver con el tamaño del disco duro.
El día 3/02/06, Carlos E. R.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
El 2006-02-02 a las 21:14 +0100, JOSANable escribió:
Lo de que linux descarta la bios en cuanto puede ya lo tenía claro, pero en cuanto a lo de dos únicas particiones ( / y swap) si no recuerdo mal en muchos casos no me ha funcionado. La razón no la sé, pero mi experiencia es esa, que en algunos equipos (la mayoría de los que yo he visto) eso no funciona; y sin embargo en otros (uno en mi caso) sí funcionó. Igual es que, en algún momento de la tecnología x86, la cosa "evolucionó" y consiguieron que lo que en un primer momento no funcionaba posteriormente sí lo hizo, (tal vez idearan "algo" para saltarse lo de la limitación del cilindro 1024 a partir de un determinado momento). Aunque es hablar por hablar, y por lo tanto conjetura, pues yo no tengo conocimientos de eso.
Si, es así.
La explicación es muy simple: las bios antiguas sólo permitían direccionar hasta la pista 1024, el resto simplemente era inexistente; no por nada, sino porque cuando diseñaron la instrucción (int xx) para leer del disco lo dimensionaron de esa forma porque pensaron que era más que suficiente.
El kernel del linux no tiene esa limitación de la bios para acceder por encima de la pista 1024; pero el kernel no arranca sólo, hay que leerlo del disco y cargarlo en memoria, y alguien tiene que leerlo. ¿Quien? Pues el cargador, por ejemplo el lilo; y para leer del disco no tiene más remedio que usar las rutinas de lectura de disco que proporciona la bios... por tanto, es necesario garantizar que los ficheros necesarios para arrancar el sistema (el kernel, el initrd...) residan en la parte baja del disco por debajo de la pista 1024, que es la única que la bios de esos ordenadores puede leer.
O lo que es lo mismo, en esos ordenadores con bios antiguas (no se hasta que fecha) necesitan que el contenido del directorio /boot esté por debajo de la pista 1024. Lo puedes hacer como te de la gana, una partición o veinte, en cualquier orden, mientras el contenido de /boot esté en la zona que la bios puede leer. El resto, puede estar en cualquier sitio.
Entonces, muchas veces ocurría que el principio del disco ya estaba ocupado, por el windows. Pues bastaba con achicar un par de pistas el disco C, crear ahí una pequeña partición para el linux, y luego al final del disco, el resto. No hacía falta desplazar el windows.
O dicho de otra forma: puedes poner la raiz (/), /home, la swap, etc, etc en la pista 3000 si quieres; pero /boot tiene que estar por debajo de la 1024 - esa es la única limitación.
(Referencias: manuales de instalación del linux de la época, documentación del lilo)
Y, si la bios es más moderna y puede leer por encima de la pista 1024, puedes perfectamente distribuir las particiones de cualquier forma, en una única partición, o en doscientas.
- -- Saludos Carlos Robinson -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) Comment: Made with pgp4pine 1.76
iD8DBQFD4plotTMYHG2NR9URAmKcAKCRWxfkjHyS4seO63GS9/+KamooCgCgin2C JW9MpswoaiueK3wNe8ZOEhk= =F3kk -----END PGP SIGNATURE-----
-- Para dar de baja la suscripción, mande un mensaje a: suse-linux-s-unsubscribe@suse.com Para obtener el resto de direcciones-comando, mande un mensaje a: suse-linux-s-help@suse.com
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2006-02-03 a las 17:42 +0100, JOSANable escribió:
Pues gracias por la explicación, ya que esta mañana estaba dándole vueltas al asunto, y no sé porqué razón me preguntaba si eso no tendría más bien que ver con el tamaño del disco duro.
Mira, según una info de Seagate, existen estas limitaciones - la del cilindro 1024 es la de la INT13: es la función o interrupción 13, perteneciente al código de la BIOS, la que sólo soporta hasta el cilindro 1024: | Some systems BIOS have capacity limitations. Types that have | been identified are: | | a 2.11GB or 4095 cylinder limitation | a 3.26GB or 6322 cylinder limitation | a 4.22GB or 8192 cylinder limitation | a 8.45GB Standard INT13 limitation (CHS[1024x256x63]x512) | a 33.8GB or 66,060,287 LBAs limitation | a 137.4GB or 268,435,455 LBAs limitation (28-bit limit) | | (...seagate/barracuda/st3160021a.html) Yo tengo la última, la de los 28 bits. *** Nota histórica sobre lo de la int 13h. *** El IBM PC - y sus herederos, o sea, nuestros PCs, tienen un sistema de funciones accesibles mediante la instrucción "INT" del procesador; en realidad, aunque se les llame interrupciones no lo son realmente, sino más bien funciones o subrutinas que se les llama con una instrucción directa sin saber realmente donde residen. Bueno, no exactamente, porque las interrupciones hardware (IRQs) están también mapeadas ahí. Por ejemplo, la IRQ 0 es la INT 08, la 1 en la 9, etc. Las funciones de la bios empiezan en la INT 10h, y las del MsDOS empiezan en la 20, hasta la 3F. Las "interrupciones" de la bios, residen en la rom, y por tanto están disponibles durante el arranque, y se usan para pintar en pantalla, leer de los discos, imprimir, puertos serie, la hora,etc. (Curiosamente, desde la bios se podía imprimir la pantalla, porque la int 5 hacía eso, y era invocada mediante las teclas mayusc-print-screen. Eso facilitaba el soporte cuando el cacharro no arrancaba) Según una documentación que conocíamos como la "Lista Ralf Brown" (Release 60, Last change 03jan99), que al principio obtenía mediante fidonet, y que aún conservo, la int 13h, subfunción leer disco, tiene éste formato de llamada: - --------B-1302------------------------------- INT 13 - DISK - READ SECTOR(S) INTO MEMORY AH = 02h AL = number of sectors to read (must be nonzero) CH = low eight bits of cylinder number CL = sector number 1-63 (bits 0-5) high two bits of cylinder (bits 6-7, hard disk only) DH = head number DL = drive number (bit 7 set for hard disk) ES:BX -> data buffer Return: CF set on error if AH = 11h (corrected ECC error), AL = burst length CF clear if successful AH = status (see #00234) AL = number of sectors transferred (only valid if CF set for some BIOSes) Observad la forma enrevesada de codificar el número de cilindro: los 8 bits bajos se ponen en el registro CH del procesador, y sólo dos bits altos en los bits 6 y 7 del registro CL, puesto que los bits 0 al 5 del CL se usaban para el número de sector. Esto es, tenemos 10 bits para el cilindro, y 6 para el sector, o sea: 1024 cilindros y 64 sectores. Como dice Seagate: | a 8.45GB Standard INT13 limitation (CHS[1024x256x63]x512) Para las cabezas parece que tenemos un registro completo (DH, 8 bits, 256 cabezas), pero no es así en todas las máquinas: the IBM AT BIOS and many other BIOSes use only the low four bits of DH (head number) since the WD-1003 controller which is the standard AT controller (and the controller that IDE emulates) only supports 16 heads Claro, luego vinieron las modificaciones para poder accesar más cilindros; las notas de esa documentación de Ralph dicen, por ejemplo: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more than 1024 cylinders by placing bits 10 and 11 of the cylinder number into bits 6 and 7 of DH con lo cual esas bioses podían accesar 4096 pistas, a costa de limitarse a 64 cabezas. Ah, otras limitaciones: ... all versions of MS-DOS (including v7 [Win95]) have a bug which prevents booting on hard disks with 256 heads, so many modern BIOSes provide mappings with at most 255 heads Y después de todo eso, que es información del año 2000 o poco antes, tuvieron que inventar alguna otra manera de leer más allá. Habrán modificado la int 13h, y no quiero ni imaginarme como lo habrán conseguido manteniendo compatibilidad hacia atrás. Ugh. Os podeis imaginar lo complicado que es programar cosas usando la bios, ¿no? Bueno, pues los arrancadores de sistema, como el lilo o el grub, tienen que usarlo. La única manera de leer del disco cuando todavía no has cargado el kernel, es usando la bios. Una vez que ya está ejecutándose el kernel, éste no tiene porqué usar la bios y lee el disco por sus propios medios, y saltándose todos esos problemas y limitaciones. - -- Saludos Carlos Robinson -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) Comment: Made with pgp4pine 1.76 iD8DBQFD4/tYtTMYHG2NR9URAoOxAKCKaxq2wNXEUmWD/GUfm5GBfBSCSgCgiZNn Gzo0e9P2VSZKBaOEEOafFl4= =UeNT -----END PGP SIGNATURE-----
participants (3)
-
Carlos E. R.
-
JOSANable
-
jose maria