Download Particiones MBR
Document related concepts
Transcript
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS ESTADO DE MÉXICO Disco Duro y Sistemas de Archivos. (o... Cómo manipular el disco y no morir en el intento) Ing. Jose Manuel Franco Dr. Roberto Gómez Cárdenas Recopilado por: María de la Luz Grande Vega 450250 26.02.01 Introducción La mayor parte de los conceptos expresados aquí estan ligados con la arquitectura PC y el sistema operativo DOS. Es importante tomar en cuenta estos conceptos ya que Linux reposa sobre una arquitectura PC. El Disco Duro Un disco duro es una superficie plana circular cubierta por un material ferromagnético sensible a los campos magnéticos, además existe un brazo que cuenta con una dispositivo de lectura/escritura llamado cabeza. El disco gira sobre su eje a velocidad constante, el brazo puede moverse únicamente en una dirección, acercándose o alejándose del centro del disco. Para grabar información se situa la cabeza en un sitio determinado y se le envia un flujo impulsos eléctricos que representan a una información binaria creando un campo electromagnético que afecta la orientación del material ferromagnétco, conforme el el disco gira. Para leer información se situa la cabeza en un sitio determinado y se sensa el campo electromagnético bajo la cabeza induciendo un flujo de impulsos electricos que son traducidos a datos binarios. Evolución disco duro Evolución disco duro ¿Cuantos bytes hay en 1 Megabyte? 1G=¿ Prefijos del S.I. : Kilo Mega Giga Tera Peta Exa x 103 x 106 x 109 x 1012 x 1015 x 1018 1024 x 1024 ó 1 000 000 bytes? Prefijos binarios: IEC 210 = kibi 220 = mebi 230 = gibi 240 = tebi 250 = pebi 260 = exbi KNUTH KK = large kilobyte MM = large megabyte GG = large gigabyte TT = large terabyte PP = large petabyte EE = large exabyte Características Los discos flexibles están protegidos en una caja con un revestimiento de algodón, para así poder mantenerlos limpios y lo más alejado posible de partículas de polvo, ya que estos son de 10 a 20 veces más grandes que la pista de un disco, lo cual nos puede llevar a perdidas de información Cuando hablamos de un disco tenemos que hablar de coordenadas. Posicionar las cabezas. Cilindros Tracks Los discos flexibles de 3 ½ tienen 80 TPI (tracks per inch) lo cual quiere decir que tenemos 80 pistass en cada pulgadas. Un disco duro es metálico y son varias pistas dispuestas geométricamente. Track -> diskette Cilindros-> disco duro Tracks, cilindros y sectores Cabezas Cilindro 2 3 Cabeza 0 Cabeza 1 1/escritura 1 4 Sector Un disco de 1440 tiene: 18 sectores físicos 80 tracks 2 heads (cabezas) La numeración de las cabezas empieza desde 0 La numeración de los cilindros empieza desde 0 La numeración de los sectores empieza desde 1 LBA El sistema operativo realiza una representación lineal de la información 2879 0 1 2 3 4 5 Ultimo sector lógico Hay una transformación fórmulas Cabezas Cilindros Sectores BIOS busca cabeza 0 cilindro 0 sector 1 0 1 2 3 4 5 Sector de arranque 512 bytes 2879 CHS vs LBA CHS LBA Cylinder, Head, Sector Linear Block Addressing Bloques= 512 Bytes Coordenadas de disco Se utilizan los sectores lógicos •La tabla de particiones nos dice que información se almacena •El FLAG de la tabla de particiones es booteable o no booteable •Se deben de tener 4 particiones primarias como máximo Las ventajas del CHS y el LBA: CHS No necesita traducir el controlador de disco De esta forma lo prefiere el BIOS LBA Simple de manejar Más fácil para el sistema operativo El concepto de Volumen Un volumen es el nombre que DOS le da a una partición. A un volumen se le asigna una letra para que el Sistema de Archivos pueda tener acceso a el como una entidad independiente Los volúmenes pueden crearse para optimizar organizar la información o bien para acceder a zonas del disco duro que rebasan la capacidad de acceso del sistema operativo El cluster La unidad más pequeña a la que se puede tener acceso es el sector (512 bytes). los sectores son agrupados en clusters o unidades de asignación. El tamaño del cluster es proporcional al tamaño del volumen del disco: mayor es el volumen, mayor es el tamaño del cluster discos duros: clusters desde 4 sector a 64 sectores (en algunos casos hasta 128 sectores) discos flexibles: 2 sectores (en algunos casos puede ser sólo un sector) Los sectores que forman cluster están contiguos. El tamaño del cluster es determinado cuando el volumen del disco es formateado. A un archivo se le asigna un número entero de clusters Sector, track y cluster Sistema de archivos(File system) Es el conjunto de estructura lógicas y rutinas de software usadas para controlar acceso a lo almacenado en un disco duro. Algunos sistemas archivos File Allocation Table (FAT) 12/16/32 bits. DOS/Win 9x/Win Me New Technology File System (NTFS). Windows NT/2000/XP High Performance File System (HPFS). OS/2 BeOS File System (BFS). BeOS minix, xiafs, extfs, ext2fs, ext3fs, reiserfs, enh-fs. Linux Hierarchical File System (HFS). MacOS Sistema de Arhivos en Red (NFS, AFS, Coda, nbd, GFS) Especiales (tmpfs, swapfs, devfs, procfs, usbfs) Otros : ISO9660, High Sierra, Rock Ridge, Romeo, Joliet, UDF El sistema de archivos FAT ATRIBUTO Uso Tamaño entrada FAT 12 discos flexibles y volumenes disco duro pequeños FAT 16 chicos a moderados volumenes disco duro FAT 32 volumnes medianos a muy grandes 12 bits 16 bits 32 bits Max. número 4,086 clusters Tamaño cluster 0.5Kb a 4Kb Máximo tamaño volumen 16,736,256 65,526 2Kb a 32 Kb 4Kb a 32 Kb 2,147,123,200 aprox 2 41 Características FAT Tabla donde se encuentran información acerca de los clusters. hay una entrada por cada cluster usado en el disco se tiene un número por entrada que representa como se usa el cluster los clusters de un archivo estan encadenados La tabla se encuentra en el área del disco que sigue al disk boot sector cada volumen tiene dos copias identicas (una es el respaldo de la otra) Estructura de un sistema de archivos FAT El Sector de Arranque (Boot Sector) El FAT (2 o mas tablas idénticas) El directorio raíz El área de datos El MBR (Master Boot Record) Primer sector del disco o sector de arranque principal En esta área podemos identificar: El código de booteo: La tabla de particiones del disco: del byte 1 al 446 (es lo que ejecuta el BIOS) lista de las particiones del disco El número mágico AA55: byte 511: 55 byte 512: AA identifica a este sector como un sector de arranque Sector de arranque de un floppy OFFSET 000000 000010 000020 000030 000040 000050 000060 000070 000080 000090 0000a0 0000b0 0000c0 0000d0 0000e0 0000f0 000100 0 1 2 3 eb3c904d 02e00040 00000000 4d452020 c08ed0bc 1653bf3e 0f8b0e18 cd137279 890e207c 161e7c03 7ca3497c 1e0b7c03 00bb0005 b001e8ac a6750a8d e85f0033 585858eb 4 5 6 7 53444f53 0bf00900 0000295a 20204641 007c1607 7cb90b00 7c884df9 33c03906 a0107cf7 060e7c83 89164b7c c348f7f3 8b16527c 0072168b 7f20b90b c0cd165e e88b471a 8 9 A B 352e3000 12000200 5418264e 54313220 bb780036 fcf3a406 894702c7 137c7408 26167c03 d200a350 b82000f7 0106497c a1507ce8 fbb90b00 00f3a674 1f8f048f 48488a1e C D E F 02010100 00000000 4f204e41 2020fa33 c5371e56 1fc645fe 073e7cfb 8b0e137c 061c7c13 7c891652 26117c8b 83164b7c 9200721d bee67df3 18be9e7d 4402cd19 0d7c32ff *0123456789ABCDEF* *...MSDOS5.0.....* *...@............* *......)ZT..NO NA* *ME FAT12 .3* *.....|...x.6.7.V* *.S..|.........E.* *....|.M..G....|.* *..ry3.9..|t....|* *.. |..|...|...|.* *..|...|....P|..R* *|.I|..K|. ....|.* *..|..H....I|..K|* *......R|.P|...r.* *.....r........}.* *.u... .....t...}* *._.3...^....D...* *XXX...G.HH...|2.* Sector de arranque de un floppy (...cont) 000110 000120 000130 000140 000150 000160 000170 000180 000190 0001a0 0001b0 0001c0 0001d0 0001e0 0001f0 f7e30306 505251e8 72bb0501 157c8a16 7000ac0a 3b16187c 33d2f736 c3b4028b ca86e98a 4e6f6e2d 6f722064 65706c61 20616e79 6164790d 534d5344 497c1316 3a0072d8 0083d200 247c8b1e c07429b4 7319f736 1a7c8816 164d7cb1 16247c8a 53797374 69736b20 63652061 206b6579 0a00494f 4f532020 4b7cbb00 b001e854 031e0b7c 497ca14b 0ebb0700 187cfec2 257ca34d 06d2e60a 36257ccd 656d2064 6572726f 6e642070 20776865 20202020 20535953 07b90300 00595a58 e2e28a2e 7cea0000 cd10ebf2 88164f7c 7cf8c3f9 364f7c8b 13c30d0a 69736b20 720d0a52 72657373 6e207265 20205359 000055aa *....I|..K|......* *PRQ.:.r....T.YZX* *r..........|....* *.|..$|..I|.K|...* *p....t).........* *;..|s..6.|....O|* *3..6.|..%|.M|...* *.....M|.....6O|.* *.....$|.6%|.....* *Non-System disk * *or disk error..R* *eplace and press* * any key when re* *ady...IO SY* *SMSDOS SYS..U.* El sector de arranque de un disco duro. OFFSET 000000 000010 000020 000030 000040 000050 000060 000070 000080 000090 0000a0 0000b0 0000c0 0000d0 0000e0 xxxxxx 0001b0 0001c0 0001d0 0001e0 0001f0 0 1 2 3 fa33c08e bf0006b9 b304803c cb75efcd cb741a80 56bb0700 bb007cb8 4f75edbe 55aa75c7 69642070 6c650045 206f7065 6d004d69 696e6720 00000000 XXXXXXXX XXXXXXXX 0100060d 00000000 00000000 00000000 4 5 6 7 d0bc007c 0001f2a5 80740e80 188b148b 3c0074f4 b40ecd10 010257cd a306ebd3 8bf5ea00 61727469 72726f72 72617469 7373696e 73797374 00000000 XXXXXXXX XXXXXXXX fef83e00 00000000 00000000 00000000 8 9 A B 8bf45007 ea1d0600 3c00751c 4c028bee be8b06ac 5eebf0eb 135f730c bec206bf 7c000049 74696f6e 206c6f61 6e672073 67206f70 656d0000 00000000 XXXXXXXX XXXXXXXX 00000678 00000000 00000000 00000000 C D E F 501ffbfc 00bebe07 83c610fe 83c610fe 3c00740b febf0500 33c0cd13 fe7d813d 6e76616c 20746162 64696e67 79737465 65726174 00000000 00000000 XXXXXXXX XXXX8001 0d000000 00000000 00000000 000055aa *0123456789ABCDEF* *.3.....|..P.P...* *................* *...<.t..<.u.....* *.u......L.......* *.t..<.t.....<.t.* *V.......^.......* *..|...W.._s.3...* *Ou...........}.=* *U.u.....|..Inval* *id partition tab* *le.Error loading* * operating syste* *m.Missing operat* *ing system......* *................* *................* *......>....x....* *................* *................* *..............U.* Estructura del Sector de Arranque (floppy) Espacio reservado para etiqueta disco (volumen) JMP XXX # de sectores Número de serie Información del disco y de su Sistema Operativo Instrucciones a ejecutar 55AA Aquí hay un programa e información del disco Ensamblador •Programas .com •Código no relocalizable •Programa válido en sector de arranque Sector ya inicializado con un programa que puede cargarse. si el BIOS no lo encuentra despliega un mensaje de error: Disco no usable (Esto no es un disco de arranque) Estructura del sector de arranque (disco duro) JMP XXX •Existen otros tipos de particiones que no son parte del sistema operativo pero que tienen información del mismo, como son el IBM Hybernate (el cual guarda el estado o imagen cuando se apaga, laptops), o el COMPAQ Diagnostics. xxx Tabla de particiones 55AA Podemos encontrar otro tipo de particiones con un número entre 0 ... 255, algunos son: •FAT12 •Linux EXT2 •Linux SWAP •FAT16 > 32 M •Minix •FAT 16 discos menores a 32 M •AIX •FAT 32 •Free BSD •Partición extendida La tabla de particiones 16 bytes Bandera Activación Inicio Particion Tipo Fin Particion CHS Partición CHS bit 7 es la bandera bits 6-0 son cero El tamaño de la bandera es de 1 byte: 0 No arranca 80h Puede arrancar Número entre 0 ... 255: 0b 83 82 07 FAT 32 EXT2 LINUX SWAP LINUX HPFS / NTFS Inicio LBA Tamaño en sectores Si CHS tiene 1023 / 255 / 63 entonces el SO utiliza el LBA Detalles: • Si el sector de arranque,FAT o Directorio principal se daña el disco será inservible • Si otro sector está dañado, la información de los otros sectores esta disponible • A nivel de BIOS se pueden manejar hasta 8 G con CHS, para discos mayores se utiliza el LBA Ejemplo tabla particiones 0. DL 80 00 00 1. DH 01 00 00 2. CL 01 81 00 3. CH 00 95 00 4. TB 06 05 00 5. DH 0e 0e 00 6. CL be fe 00 7. CH 94 7d 00 8.9.A.B. LBA..... 3e000000 4a610900 00000000 C.D.E.F. SIZE.... 0c610900 724e0300 00000000 1st entry 2nd entry 3rd entry 00 00 00 00 00 00 00 00 00000000 00000000 4th entry La primera partición, una partición DOS FAT empieza en CHS 0H,1H,1H (LBA 3EH) y termina en CHS 294h, Eh, 3Eh con un tamaño de 9610Ch sectores La segunda partición, una partición extendida, empieza en CHS 295h, 0h, 1h (LBA 9614Ah) y termina en CHS 37Dh, Eh, 3Eh con un tamaño de 34E72h sectores La tabla de asignación de archivos (File Aallocation Table) Despues del MBR sigue la tabla de asignación de archivos (FAT) Generalmente hay dos tablas, una es de respaldo Consiste de una tabla de números tiene 65,536 entradas cada entrada contiene información acerca de un cluster en forma de un número. Boot sector boot tabla de code particiones FAT 1 zona de datos FATDirectorio 2 Directorio Los posibles valores de los clusters Valor en la entrada de la Table Significado FFFFh El cluster es parte de un archivo y el último xxxx (p.e. 18FAh) El cluster es parte de un archivo, el siguiente cluster es el xxxx (18FA) El cluster esta vacío y por lo tanto disponible. 0000h FFFEh (NOT 0001h ó –1d) El cluster contiene sectores defectuosos, es marcado como malo. Ejemplo 000 001 002 003 004 005 006 007 008 009 00a 00b 00c 00d 00e 00f 001 El tamaño de FAT Cada cluster tiene una entrada en la FAT, el tamaño del área de FAT depende del tamaño del disco. Considermos un disco de 160 MB El tamaño máximo del FAT es de 128KB, cada entrada en el FAT ocupa 16 bits 16 archivos, 2 bytes c/u: 65,536x2 = 131,072 bytes (128 KB) Hay 40,400 clusters, ya que la partición es de 160 MB Se tienen dos FATs: 40,400 x 2 bytes esto nos da un total de 161,600 y eso ocupará 316 sectors El Directorio Es la última área administrativa en el disco. Siempre hay 512 entradas de archivos en el directorio es del mismo tamaño para todos los discos duros. La estructurra del directorio consiste de un número de entradas de directorio. cada entrada ocupa 32 bytes las entradas son identicas ya sea que esten en el directorio raíz o en algun subdirectorio contienen información como: el nombre del archivo (en el formato 8.3) tamaño del archivo en bytes fecha y hora de la última revisión Estructura del directorio Los 32 bytes estan agrupados en secciones Se cuenta con el número del primer cluster válido para todas las secciones, ya sea que se trate de archivos o directorios (directorio raíz y subdirectorios) importante ya que a partir de eso empieza a buscar al archivo el primer cluster es leido de la entrada del directorio, los siguientes números de clusters son leídos del FAT En discos duros formateados como FAT16 el directorio raíz ocipa 512 entradas, las cuales son de 32 bytes cada una. entonces ocupa 16 KB El área de datos El resto del disco alberga la parte más importante, el área de datos, donde todos los archivos y sub directorios son almacenados. El área de datos es la parte más grande del disco Los sectores del área de datos estan conjuntados en clusters. Como se dijo antes, el máximo número de clusters para datos es 216 =65,535 Si el disco duro es de 160 Mb: se tienen 40,400 clusters de 8 sectores cada uno Completando el cuadro: 160Mb Area Cantidad de Sectores Número de Sector Boot Sector 1 0 FAT 1 158 1-158 FAT 2 158 159-316 Directorio 32 317-348 Area Datos con 40,000 clusters de 4 Kb c/u 323,200 349 - 323,548 Un ejemplo de relación tabla particiones y FAT Particiones primarias, extendidas y lógicas Las reglas que determinan como pueden ser usadas las particiones datan del origen de la PC y continuan igual hoy en día. Un disco duro puede contar con un máximo de cuatro particiones Solo una partición puede designarse como activa. algunas veces son llamadas particiones primarias limitación debido a la forma en que el MBR esta especificado esta partición será la que será usada para el arranque del el sistema. Una de las particiones puede ser designada como una partición extendida (extended DOS partition) esta partición puede ser subdividido en varias particiones lógicas La partición extendida de DOS Funciona como un contenedor para las particiones DOS, a excepción del primer (primaria) volumen. La estructura que fue usada en el diseño original (que impone el límite de cuatro particiones) era muy estricta. A: 1er. disco flexible B: 2do. disco flexible C: disco duro unidad lógica El sistema de extensión de DOS permite tener hasta 24 particiones de disco en un solo sistema D: La tabla de partición extendida La información de la partición extendida esta contenida en la tabla de particiones del MBR La tabla del MBR contiene una liga a una tabla de partición extendida. La tabla contiene información acerca de la primera partición y una liga a la siguiente tabla de partición extendida que describe la siguiente partición en el disco las tablas de particiones extendidas están ligadas en una cadena que empieza en el tabla de particiones del MBR ejemplos sistemas Partición simple con Windows PC todo el espacio en disco en una sola partición usando alguno de los sistemas FAT. esta máquina solo tiene una partición primaria FAT y nada mas los otros tres slots para particiones estan vácios. Particiones Multiples Windows PC se tienen dos particiones una es una partición primaria DOS ( drive C: ) la otra es una partición de extensión DOS dentro de esta partición el resto de los drives lógicos son creados si tuviera tres volumenes lógicos estos estarían asignados por las letras D, E y F y se encontarían dentro de la partición extendida. Mas ejemplos Varios sistema operativos en una PC Un ordenador con varios sistemas operativos puede usar una partición primaria para hasta cuatro sistemas de archivos se pueden combinar diferentes particiones con diferentes sistemas operativos por ejemplo se puede tener una partición primaria DOS, una partición extendida DOS y una partición Linux Ejemplo: Particiones extendidas El master boot record (MBR) tiene 4 particiones. Si se necesitan más, lo que hacemos es marcar la última partición como una partición extendida 0x05. Para DOS puede haber como máximo 24 Unidades lógicas (letras A, B, C .. Z) SWAP de Linux Tabla de particiones del MBR 0x82 0x05 0x0b 0x07 0x0b 0x83 0x05 MBR Apuntador a otra tabla de particiones Ext=Tipo 5 El cual apunta a todo el espacio libre que queda 55AA (Igual que la primera) Sólo va a tener 2 entradas, inicio, fin y tipo, un 0 en caso de que no haya más y un 0x5 si hay otra partición Ejemplo de particiones: 0: Win 1: OS2 2: Linux Swap Linux 3: Ext FAT32 Algunos comentarios sobre particiones En linux no existe el concepto de Unidades lógicas Las 4 primeras particiones del primer disco IDE se nombran: /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4 si, por ejemplo,la partición extendida aloja tres particiones estas se denotan en linux por /dev/hda5, /dev/hda6 y /dev/hda7 respectivamente En terminos de como se usa el disco solo hay dos una diferencias entre una partición primaria y una extendida: Una partición primaria puede activiarse como booteable (activa) mientras que una partición lógica no. Por cada partición extra que se use, existe una tabla de particiones en la que el primer registro contiene la información de la partición y el segundo registro es un apuntador a la siguiente tabla de particiones o está vació si se trata de la última partición. Para que un sistema operativo se pueda inicializar, la partición que contenga el archivo de inicio debe marcarse como activa. En los computadores Intel x-86, la partición activa es una partición primaria que contiene los archivos de arranque del sistema. La partición activa está ubicada en el disco duro al que el computador accede cuando se inicializa. Si se tiene instalado más de un sistema operativo, y este otro sistema operativo se encuentra instalado en una partición diferente a la que se encuentra marcada como activa, sólo hay que marcar la partición correspondiente como activa. Marcando la partición como activa Solo particiones primarias pueden ser usadas para bootear el sistema operativo. Si se particiona un nuevo disco duro y se crea una partición primaria DOS, usando la utilidad FDISK, pero se le olvida activar la partición primaria: solo una puede ser booteable, de otra forma el MBR no sabra a que código de booteo (de los diferentes volumenes) le debe pasar el control DOS llama a la partición booteable como la partición activa BIOS no podra bootear el sistema operativo Esto puede provocar un error del estilo: No boot device available Algunos BIOS despliegan mensajes más cripticos: AMI BIOSes son conocidas por el mensaje: “NO ROM BASICSYSTEM HALTED cuando no se puede encontrar un dispositivo de arranque.