viernes, 15 de enero de 2010

Unidades de disco duro en Unix/Linux. Pt 1

En esta entrada quiero dar unas pinceladas básicas sobre como tratan  los sistemas Unix/linux los discos duros.
Una de las particularidades de estos sistemas es que los dispositivos se tratan como archivos; esto quiere decir que se encuentran representados como un archivo en el disco duro.
Estos archivos se encuentran en el directorio /dev, podemos ver su contenido con:
victor@PC247:~$ ls /dev/
adsp             loop4               ram6        tty13  tty41  ttyS3
agpgart          loop5               ram7        tty14  tty42  urandom
audio            loop6               ram8        tty15  tty43  usbmon0
binder           loop7               ram9        tty16  tty44  usbmon1
block            mapper              random      tty17  tty45  usbmon2
bus              mcelog              rfkill      tty18  tty46  usbmon3
cdrom            mem                 rtc         tty19  tty47  usbmon4
cdrw             mixer               rtc0        tty2   tty48  vcs
char             net                 scd0        tty20  tty49  vcs1
console          network_latency     sda         tty21  tty5   vcs2
core             network_throughput  sda1        tty22  tty50  vcs3
cpu_dma_latency  null                sda2        tty23  tty51  vcs4
disk             oldmem              sda5        tty24  tty52  vcs5
dri              pktcdvd             sequencer   tty25  tty53  vcs6
dsp              port                sequencer2  tty26  tty54  vcs7
dvd              ppp                 sg0         tty27  tty55  vcs8
ecryptfs         psaux               sg1         tty28  tty56  vcsa
fb0              ptmx                shm         tty29  tty57  vcsa1
fd               pts                 snapshot    tty3   tty58  vcsa2
full             ram0                snd         tty30  tty59  vcsa3
fuse             ram1                sndstat     tty31  tty6   vcsa4
hidraw0          ram10               sr0         tty32  tty60  vcsa5
hidraw1          ram11               stderr      tty33  tty61  vcsa6
hpet             ram12               stdin       tty34  tty62  vcsa7
input            ram13               stdout      tty35  tty63  vcsa8
kmsg             ram14               tty         tty36  tty7   zero
log              ram15               tty0        tty37  tty8
loop0            ram2                tty1        tty38  tty9
loop1            ram3                tty10       tty39  ttyS0
loop2            ram4                tty11       tty4   ttyS1
loop3            ram5                tty12       tty40  ttyS2

Aquí se pueden ver todos dispositivos de sistema, pero si queremos ver solo las unidades de disco podemos hacerlo con:
victor@PC247:~$ sudo su
root@PC247:/home/victor# fdisk -l

Disco /dev/sda: 40.0 GB, 40007761920 bytes
255 cabezas, 63 sectores/pista, 4864 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador de disco: 0xb41db41d

Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1   *           1        4742    38090083+  83  Linux
/dev/sda2            4743        4864      979965    5  Extendida
/dev/sda5            4743        4864      979933+  82  Linux swap / Solaris

En este sistema linux solo hay un disco, el del sistema, vemos que está identificado como /dev/sda y que tiene una partición primaria (/dev/sda1) y una extendida (/dev/sda5). Por tando sda se corresponde al dispositivo completo y sda1,sda2... a las distintas particiones dentro del disco.
Si hubiese mas discos conectados estos estarían identificados como /dev/sdb, /dev/sdc /dev/sdd ...
Los discos sata,scsi,y dispositivos externos se suelen identificar por sdX como en el caso del ejemplo mientras que los discos IDE se identifican como hdX. p ej: /dev/hda

En Mac OSX los dispositivos se identifican de una manera un poco distinta.
Los discos completo se identifican como /dev/mmcblk0,/dev/mmcblk1... y las distintas particiones /dev/mmcblk0p1 /dev/mmcblk0p2...

No hay comentarios: