Certificat | LPIC-1 |
Examen: | 101 (torneu a la resta de temes) |
Fitxers: | LPI104.1_104.2_104.3_ParticionsSistemesFitxersIMuntatge.pdf (LPI104.1_104.2_104.3_ParticionsSistemesFitxersIMuntatge.odp) |
Objectius: | http://www.lpi.org/eng/certification/the_lpic_program/lpic_1/exam_101_detailed_objectives |
Dipòsit SVN: | https://svn.projectes.lafarga.cat/svn/lpi/Materials/Examen_101/104.2 |
Usuari: | anonymous |
Paraula de pas: | qualsevol paraula de pas |
104.2. Mantenir la integritat dels sistemes de fitxers | |
---|---|
![]() |
|
![]() |
Àrees Clau de Coneixement: |
![]() |
La següent és una llista parcial de fitxers, termes i utilitats utilitzades: |
![]() |
Apunts: LPI 104.2. Mantenir la integritat dels sistemes de fitxers |
Disposem de les ordres:
per tal de gestionar l'ús de l'espai dels sistemes de fitxers del sistema.
Consulteu block_size.
Consulteu:
Fdisk#Mida_dels_fitxers._Ordres_ls_i_du
IMPORTANT: Per defecte només mostra les mides de les carpetes! Amb -a també mostra els fitxers. Vegeu també baobab
Són les inicials de disc usage. Segons el manual.
$ man du
Estima la mida que utilitza un fitxer. Li podem indicar que calculi la mida d'un fitxer:
$ du /home/sergi/ProvesDiscs/images/1GB.img 1025012 /home/sergi/ProvesDiscs/images/1GB.img
La mida total es mostra en kbytes. Li podem indicar que mostri els resultats en valors "més humans" amb l'opció -h (--human-readable):
$ du -h /home/sergi/ProvesDiscs/images/1GB.img 1001M /home/sergi/ProvesDiscs/images/1GB.img
Que és sempre arrodonit a un valor enter : 1025012/1024=1000,98828125 10001
O si l'indiquem un directori calcularà la mida de tots els fitxers que hi ha al directori:
$ du -h /home/sergi/Documents/imatges/ 328K /home/sergi/Documents/imatges/
Si volem que mostri els fitxers (per defecte només mostra els subdiretoris):
$ du -h -a /home/sergi/Documents/imatges/ 68K /home/sergi/Documents/imatges/cfdisk.png 152K /home/sergi/Documents/imatges/GNUPartedAplicaCanvis.png 64K /home/sergi/Documents/imatges/snapshot1.png 40K /home/sergi/Documents/imatges/tasksel.png 328K /home/sergi/Documents/imatges/
L'opció -c mostra un total:
$ du -h -a -c /home/sergi/Documents/imatges/ 284K /home/sergi/Documents/imatges/ATA_on_mainboard.jpg 96K /home/sergi/Documents/imatges/CreativeCommons.png 480K /home/sergi/Documents/imatges/Ata_20070127_002.jpg 24K /home/sergi/Documents/imatges/SATA-Signal-Cable-1.jpg 32K /home/sergi/Documents/imatges/300px-SATA_ports.jpg 920K /home/sergi/Documents/imatges/ 920K total
També podeu utilitzar les opcions --block-size i --apparent-size. Consulteu l'apartat:
Fdisk#El_problema_de_la_mida_d.27un_bloc Fdisk#Mida_dels_fitxers._Ordres_ls_i_du
# du -h --max-depth=1 | sort -rn 804K ./.kde 610K ./.thumbnails 132M . 77M ./webmin-1.360 44K ./Desktop 36K ./bin 28M ./.mozilla 24K ./.gnupg 16K ./.ssh 16K ./.kbd 12K ./.mc 8,0K ./.mcop 6,4M ./munin-1.4.4 4,0K ./.skel 1,8M ./.ooo-2.0 ...
Per fer-ho de l'arrel del sistema:
# du -h --max-depth=1 / | sort -rn
$ sudo du -ahx / | egrep '^[0-9]*[G] *' 13G /samba/Departaments/09_Ciencies_Naturalesa 26G /samba/Departaments/11_FP_Activitats_fisiques/Activ_Fisiques2010-2011/IVTrobadasecundariaAAFE/PRG001 26G /samba/Departaments/11_FP_Activitats_fisiques/Activ_Fisiques2010-2011/IVTrobadasecundariaAAFE 26G /samba/Departaments/11_FP_Activitats_fisiques/Activ_Fisiques2010-2011 34G /samba/Departaments/11_FP_Activitats_fisiques 18G /samba/Departaments/16_FP_Informatica 102G /samba/Departaments 40G /samba/Recursos_Departaments/Recursos_didactics_Informatica/software 19G /samba/Recursos_Departaments/Recursos_didactics_Informatica/Pelicules 64G /samba/Recursos_Departaments/Recursos_didactics_Informatica 16G /samba/Recursos_Departaments/Recursos_Departaments 106G /samba/Recursos_Departaments 213G /samba 221G /
Segons el manual:
$ man df
df - report file system disk space usage
Es a dir ens indica quin és l'ús de disc (no la mida real) dels sistemes de fitxers del nostre ordinador. Sense opcions:
$ df S. fitxers Blocs 1K En ús Lliures %Ús Muntat a /dev/sda1 110650276 81828724 23200812 78% / udev 1026064 328 1025736 1% /dev none 1026064 708 1025356 1% /dev/shm none 1026064 220 1025844 1% /var/run none 1026064 0 1026064 0% /var/lock none 1026064 0 1026064 0% /lib/init/rw
IMPORTANT: La mida està en blocs Linux, que tenen com a mida en bytes 1024
Podeu veure la mida en bytes amb:
$ df --block-size=1 S. fitxers Blocs 1B En ús Lliures %Ús Muntat a /dev/sda1 113305882624 83792867328 23757377536 78% / udev 1050689536 335872 1050353664 1% /dev none 1050689536 724992 1049964544 1% /dev/shm none 1050689536 225280 1050464256 1% /var/run none 1050689536 0 1050689536 0% /var/lock none 1050689536 0 1050689536 0% /lib/init/rw
Normalment s'utilitza l'opció -h (--human-readable) per tal de mostra les mides en múltiples de 1024:
$ df -h S. fitxers Mida En ús Lliure %Ús Muntat a /dev/sda1 106G 79G 23G 78% / udev 1003M 328K 1002M 1% /dev none 1003M 708K 1002M 1% /dev/shm none 1003M 220K 1002M 1% /var/run none 1003M 0 1003M 0% /var/lock none 1003M 0 1003M 0% /lib/init/rw
Si la mida mostrada no coincideix amb la teòrica dels vostres discs, tingueu en compte que els fabricants de maquinari utilitzant el sistema internacional (SI). Podeu consultar les dades en aquest sistema amb l'opció -H (--si):
$ df -H S. fitxers Mida En ús Lliure %Ús Muntat a /dev/sda1 114G 84G 24G 78% / udev 1,1G 336k 1,1G 1% /dev none 1,1G 725k 1,1G 1% /dev/shm none 1,1G 226k 1,1G 1% /var/run none 1,1G 0 1,1G 0% /var/lock none 1,1G 0 1,1G 0% /lib/init/rw
Podeu mostrar un total amb:
$ df -H --total ... total 119G 84G 30G 75%
Podeu mostrar tots els dispositius amb:
$ df -a
Podeu utilitzar l'opció -i
$ df -i S. fitxers Nodes‐i En ús Lliures %Ús Muntat a /dev/sda1 12263424 749634 11513790 7% / udev 128343 803 127540 1% /dev none 128343 12 128331 1% /dev/shm none 128343 90 128253 1% /var/run none 128343 2 128341 1% /var/lock none 128343 3 128340 1% /lib/init/rw /dev/sdb5 10911744 4005 10907739 1% /home2
Es tracta del paquet que proporciona les eines per crear sistemes de fitxers ext, actualment (--acacha 12:11, 14 nov 2009 (UTC)) suporta la creació de sistemes de fitxers ext2, ext3 i ext4.
Les ordres proporcionades per aquest paquet són:
$ dpkg -L e2fsprogs | grep bin /sbin /sbin/e2fsck /sbin/fsck.ext2 /sbin/fsck.ext3 /sbin/fsck.ext4 /sbin/fsck.ext4dev /sbin/debugfs /sbin/mke2fs /sbin/badblocks /sbin/tune2fs /sbin/dumpe2fs /sbin/logsave /sbin/e2image /sbin/e2undo /sbin/mkfs.ext2 /sbin/mkfs.ext3 /sbin/mkfs.ext4 /sbin/mkfs.ext4dev /sbin/e2label /sbin/resize2fs /usr/bin /usr/bin/chattr /usr/bin/lsattr /usr/sbin /usr/sbin/mklost+found /usr/sbin/filefrag /usr/sbin/e2freefrag
Les més importants són:
El fitxer de configuració és:
$ dpkg -L e2fsprogs | grep etc /etc /etc/mke2fs.conf
Recursos:
Segons el manual:
$ man fsck
Aquesta ordre ens permet comprovar i reparar sistemes de fitxers Linux. La sintaxi de l'ordre és:
$ fsck [ -sAVRTMNP ] [ -C [ fd ] ] [ -t fstype ] [filesys ... ] [--] [ fs-specific-options ]
On:
On les opcions més important són:
L'ordre mkfs com fdisk és proporcionada pel paquet util-linux:
$ dpkg -S /sbin/fsck util-linux: /sbin/fsck
Realment, fsck és un front-end que apunta cap a les ordres que comproven cada tipus de sistema de fitxers (fsck.fstype). Alguns dels utilitzats més sovint són:
$ fsck.ext2 // comprovar sistemes de fitxers ext2 $ fsck.ext3 // comprovar sistemes de fitxers ext3 $ fsck.ext4 // comprovar sistemes de fitxers ext4 ...
Podeu consultar quins teniu instal·lats al vostre sistema amb:
$ whereis fsck fsck: /sbin/fsck.ext4 /sbin/fsck.minix /sbin/fsck /sbin/fsck.ext2 /sbin/fsck.ext4dev /sbin/fsck.nfs /sbin/fsck.cramfs /sbin/fsck.msdos /sbin/fsck.ext3 /sbin/fsck.vfat /usr/share/man/man8/fsck.8.gz $ type fsck fsck is /sbin/fsck
Quan indiquem el tipus de sistema de fitxers amb l'opció -t fstype, fsck busca el constructor de fitxers per aquell tipus de sistema de fitxers a la carpeta:
/sbin
Els constructors dels sistemes de fitxers tipus ext són proporcionats pel paquet e2fsprogs:
$ dpkg -S /sbin/fsck.ext2 e2fsprogs: /sbin/fsck.ext2 $ dpkg -S /sbin/fsck.ext3 e2fsprogs: /sbin/fsck.ext3 $ dpkg -S /sbin/fsck.ext4 e2fsprogs: /sbin/fsck.ext4
Cal tenir en compte que totes les aplicacions de creació de sistemes de fitxers ext apunten a ext2.
Els codis de retorn de fsck són:
0 - No errors 1 - File system errors corrected 2 - System should be rebooted 4 - File system errors left uncorrected 8 - Operational error 16 - Usage or syntax error 32 - Fsck canceled by user request 128 - Shared library error
NOTA: Mai s'ha d'utilitzar cap comanda tipus fsck sobre un sistema de fitxers muntat. Si heu de fer un fsck sobre la partició principal del sistema operatiu i no la podeu desmuntar, haureu d'utilitzar un LIVE o accedir-hi des de un altre sistema operatiu si el vostre sistema és DUAL. És recomanable que si voleu fer proves amb fsck i la resta de programes d'aquest article ho feu des de una Live, un màquina virtual o un sistema on no us importi perdre dades.
Fsck és un programa que busca inconsistències en un sistema de fitxers i tracta de corregir-les. e2fsck és el fsck per a sistemes ext2 i ext3:
NOTA: no executeu ordre com la següent si no és un sistema de proves
$ sudo fsck /dev/sda1 fsck 1.40.2 (12-Jul-2007) e2fsck 1.40.2 (12-Jul-2007) /dev/sda1: clean, 11/180864 files, 14424/361454 blocks
NOTA: observeu com realment s'executa e2fsck
Si el sistema no té errors ens dirà que es un sistema net (clean):
/dev/sda1: clean, 11/180864 files, 14424/361454 blocks
Es pot forçar el test complet sobre un sistema net amb l'opció -f:
$ sudo fsck /dev/loop0 fsck from util-linux-ng 2.16 e2fsck 1.41.9 (22-Aug-2009) prova: net, 11/389376 fitxers, 60295/1556645 blocs
NOTA: prova és l'etiqueta del sistema de fitxers
$ sudo fsck -f /dev/loop0 fsck from util-linux-ng 2.16 e2fsck 1.41.9 (22-Aug-2009) Pas 1: comprovació de nodes-i, blocs i mides Pas 2: comprovació de l'estructura del directori Pas 3: comprovació de la connectivitat dels directoris Pas 4: comprovació dels nombres de referències Pas 5: comprovació del resum de la informació del grup prova: 11/389376 fitxers (0.0% no contigus), 60295/1556645 blocs
Aquest test complet s'executa de tant en tant al iniciar el sistema (vegeu tune2fs). Normalment la opció per defecte és cada 180 dies o cada 34 vegades que es munti el sistema.
Si proveu de fer un fsck sobre un sistema muntat us avisarà que és perillós:
$ mkdir p $ sudo mount /dev/sda1 p $ sudo fsck /dev/sda1 fsck 1.40.2 (12-Jul-2007) e2fsck 1.40.2 (12-Jul-2007) /dev/sda1 is mounted. WARNING!!! Running e2fsck on a mounted filesystem may cause SEVERE filesystem damage. Do you really want to continue (y/n)?
Les particions es comproven abans de ser muntades durant l'inici del sistema si així ho indica el fitxer /etc/fstab:
$ cat /etc/fstab ... # /dev/sda2 UUID=2a1f0d8f-bbd6-4f13-a393-ddfc08f8a73d / ext3 defaults,errors=remount-ro 0 1 ...
L'últim camp indica si s'ha d'executar un fsck del sistema abans de muntar-lo durant el boot.
$ sudo fsck -c /dev/sda1 fsck 1.40.2 (12-Jul-2007) e2fsck 1.40.2 (12-Jul-2007) Checking for bad blocks (read-only test): done Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sda1: ***** FILE SYSTEM WAS MODIFIED ***** /dev/sda1: 11/180864 files (9.1% non-contiguous), 14424/361454 blocks
L'ordre badblocks és equivalent, però cal especificar la mida de bloc:
$ sudo badblocks -b 4096 /dev/loop0
NOTA: És més recomanable utilitzar fsck amb l'opció -c
Hi ha un text més a fons doblant c:
$ sudo fsck -cc /dev/sda1
Es pot utilitzar les còpies de seguretat del superblock:
$ sudo e2fsck -f -b 8193 /dev/sda3
Consulteu:
Per defecte sistemes operatius com Ubuntu ja comproven el disc cada x temps durant l'arrencada del sistema. L'ordre tune2fs ens permet indicar cada quan volem comprovar el disc. Els discos es comproven sempre abans de ser muntats, però només es fa una comprovació completa si els dis està marcat com a dirty (brut) i sempre que s'hagi indicat que es vol comprovar el disc abans de muntar al fitxer /etc/fstab.
Que durant l'arrencada es faci una comprovació de disc completa cada X temps també depèn del que s'hagi indicat a la variable FSCKFIX del fitxer /etc/default/rcS.
Els fsck s'han de fer sobre una unitat muntada. Per això normalment, es fa un fsck durant l'arrencada. També es pot forçar un fsck al tornar a iniciar de diferents formes:
$ cd / $ sudo touch /forcefsck
També es pot fer am l'ordre reboot:
# shutdown -rF now
O utilitzant tune2fs.
NOTA: {{{1}}}
Ho farem amb un dispositiu de proves, que hem muntat utilitzant losetup, a partir d'una imatge de disc creada amb dd i particionada amb fdisk. Consulteu:
Fdisk#Creant_una_imatge_de_disc_des_de_zero
NOTA: creeu només una partició
Primer necessitem recollir una sèrie d'informació
$ df | grep /dev/loop1 /dev/loop1 6128788 143388 5674072 3% /home/sergi/loop1
$ df -B 4k | grep /dev/loop1 /dev/loop1 251974 4417 234757 2% /home/sergi/loop1p1
$ df -h | grep /dev/loop1 /dev/loop1 985M 18M 918M 2% /home/sergi/loop1p1
$ sudo fdisk -l /dev/loop0 Disc /dev/loop0: 1048 MB, 1048576000 octets 255 heads, 63 sectors/track, 127 cylinders Units = cilindres of 16065 * 512 = 8225280 bytes Disk identifier: 0x02338be9 Dispositiu Arrenc. Inici Final Blocs Id Sistema /dev/loop0p1 1 127 1020096 83 Linux
NOTA: Abans de modificar les mides cal que les particions estiguin desmuntades
$ sudo umount /dev/loop1
Abans de canviar la mida cal mirar que el sistema estigui correcte (clean):
$ fsck from util-linux-ng 2.16 e2fsck 1.41.9 (22-Aug-2009) /dev/loop1: net, 11/64000 fitxers, 8443/256000 blocs
S'elimina el journal:
$ sudo tune2fs -O ^has_journal /dev/loop1
i fem un fsck complet:
$ sudo e2fsck -f /dev/loop1 e2fsck 1.41.9 (22-Aug-2009) Pas 1: comprovació de nodes-i, blocs i mides Pas 2: comprovació de l'estructura del directori Pas 3: comprovació de la connectivitat dels directoris Pas 4: comprovació dels nombres de referències Pas 5: comprovació del resum de la informació del grup /dev/loop1: 11/64000 fitxers (0.0% no contigus), 4342/256000 blocs
Ara modifiquem la mida:
$ sudo resize2fs /dev/loop1 600M resize2fs 1.41.9 (22-Aug-2009) Resizing the filesystem on /dev/loop1 to 153600 (4k) blocks. El sistema de fitxers a /dev/loop1 té ara una mida de 153600 blocs.
Ara esborrem la partició amb fdisk
$ sudo fdisk /dev/loop1 ... Command (m for help): d Partition number (1-5): 1
IMPORTANT: no s'esborren les dades només s'esborra la taula de particions. Hem de canviar les mides amb la informació que hem recollit prèviament
i creem una nova partició:
Ordre (m per a obtenir ajuda): n Acció de l'ordre e estesa p partició primària (1-4) p Nombre de partició (1-4): 1
Ara bé la part critica on hem d'especificar la nova mida:
Primera cilindre (1-127, valor per defecte 1): 1
Ara cal calcular la mida de la nova partició. Necessitem saber l'últim cilindre. El calculem a partir de la sortida de resize:
153600* 4k * 1.03 = 632832k
So we prepend that value with a + sign and replace the small k with a capital one (K) and enter it:
Last cilindre, +cilindres or +size{K,M,G} (1-127, valor per defecte 127): +632832K Ordre (m per a obtenir ajuda): a Nombre de partició (1-4): 1 Ordre (m per a obtenir ajuda): w S'ha modificat la taula de particions. S'està cridant ioctl() per rellegir la taula de particions. WARNING: Re-reading the partition table failed with error 22: Invalid argument. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) S'estan sincronitzant els discs.
Ara tornem a comprovar el sistema:
$ sudo fsck -n /dev/loop1 fsck from util-linux-ng 2.16 e2fsck 1.41.9 (22-Aug-2009) /dev/loop1: net, 11/40000 fitxers, 2708/153600 blocs
i afegim el journal:
$ sudo tune2fs -j /dev/loop1
Finalment es pot executar un altre com el resize sense cap mida:
$ sudo resize2fs /dev/loop1
I ajustarà la mida del sistema de fitxers a la mida de la partició.
Recursos:
Recursos:
Consulteu tune2fs.
Segons el manual:
$ man debugfs
Es tracta d'un depurador de sistemes de fitxers ext. Ens permet consultar dades del sistema de fitxers en temps real.
Es pot executar en mode comanda:
$ sudo debugfs debugfs 1.41.9 (22-Aug-2009) debugfs:
Es queda a l'espera d'un ordre. Les podeu consultar amb help:
debugfs: help
Per sortir podeu utilitzar la tecla q.
Per algunes opcions es necessita permisos d'escriptura. Cal indicar -w (write)
$ sudo debugfs -w /dev/loop1
Algunes de les ordres més interessant són:
show_super_stats o stats
Mostra la informació dels superblocs i mostra les dades de forma similar a dumpe2fs.
Mostrar els inodes d'un fitxer:
stat filename
Vegem un exemple:
Primer munteu un sistema de fitxers de prova:
$ mkdir loop1 $ sudo mount /dev/loop1 loop1 $ cd loop1/ $ sudo mkdir prova $ sudo touch prova/file $ sudo vi prova/file $ sudo rm prova/file $ sudo dd if=/dev/zero of=loop1/10M bs=1024k count=10 $ sudo umount loop1/
Ara anem a navegar pel sistema de fitxers amb debugfs
$ sudo debugfs /dev/loop1
Consulteu els inodes i blocs del fitxer 10M:
debugfs: stat 10M
Inode: 12 Type: regular Mode: 0644 Flags: 0x0 Generation: 3298841830 Version: 0x00000000 User: 0 Group: 0 Size: 10485760 File ACL: 0 Directory ACL: 0 Links: 1 Blockcount: 20512 Fragment: Address: 0 Number: 0 Size: 0 ctime: 0x4b0a7d4c -- Mon Nov 23 13:17:16 2009 atime: 0x4b0a7d4c -- Mon Nov 23 13:17:16 2009 mtime: 0x4b0a7d4c -- Mon Nov 23 13:17:16 2009 Size of extra inode fields: 4 BLOCKS: (0-11):572-583, (IND):584, (12-1035):585-1608, (DIND):1609, (IND):1610, (1036-2059):1611-2634, (IND):2635, (2060-2559):2636-3135 TOTAL: 2564
Undelete a file
undelete inode name
El nom és el nom que li volem donar...
També es pot utilitzar undel.
Es pot obtenir una llista de inodes esborrats amb:
lsdel
o
list_deleted_inodes
Vegem un exemple.
Primer creeu un fitxer, el podeu importar amb write:
debugfs: write /etc/network/interfaces interfaces Allocated inode: 13
El podeu consultar amb cat:
debugfs: cat interfaces auto lo iface lo inet loopback
Podem esborrar el fitxer amb rm:
debugfs: rm interfaces
Si ara consulteu la llista d'inodes esborrats fa poc:
debugfs: lsdel
Inode Owner Mode Size Blocks Time deleted 13 0 100644 32 1/ 1 Mon Nov 23 13:29:23 2009 1 deleted inodes found.
El podeu recuperar amb:
debugfs: undelete <13> interfaces_recuperat
NOTA: Cal indicar l'inode entre menor igual i major igual. Observeu que cal saber l'inode! lsdel no sempre ens proporciona la llista de nodes esborrats (cal que debugfs estigui en execució en el moment d'esborrar el fitxer?). Recordeu que no es recomanable executar debugfs sobre un sistema muntat
Observeu el fitxer recuperat:
debugfs: cat interfaces_recuperat auto lo iface lo inet loopback
write internal-file external-file
Permet accedir a un fitxer sense necessitat de muntar el sistema de fitxers. Importa un fitxer. Vegeu l'exemple anterior.
Manipular fitxers
Podem utilitzar les ordres cd, ln, rm, cp, mv...
IMPORTANT: No utilitzeu mai debugfs a un sistema de fitxers muntat. Pot provocar pèrdua de dades
Altres exemples de com recuperar un fitxer:
Utilitzant dump:
debugfs: dump <14> /mnt/recovered.000
O undelete
debugfs: debugfs: undelete <14> /tmp/recovered.000
O mi:
debugfs: mi <14>
i poseu
Ara executeu:
$ sudo e2fsck -f /dev/loop1
Consulteu també xfs_db per obtenir una ordre equivalent en sistemes XFS.
Recursos:
$sudo debugfs -w /dev/loop1 debugfs: write /boot/grub/menu.lst menu.lst Allocated inode: 14 debugfs: rm menu.lst debugfs: mi <14> Mode [0100644] User ID [0] Group ID [0] Size [5031] Creation time [1258980245] Modification time [1258980245] Access time [1258980245] Deletion time [1258980255] 0 Link count [0] 1 Block count high [0] Block count [16] File flags [0x0] Generation [0x0] File acl [0] High 32bits of size [0] Fragment address [0] Direct Block #0 [574] Direct Block #1 [575] Direct Block #2 [0] Direct Block #3 [0] Direct Block #4 [0] Direct Block #5 [0] Direct Block #6 [0] Direct Block #7 [0] Direct Block #8 [0] Direct Block #9 [0] Direct Block #10 [0] Direct Block #11 [0] Indirect Block [0] Double Indirect Block [0] Triple Indirect Block [0] debugfs: q
Assegureu-vos que no esta muntat:
$ sudo umount loop1
Comprove el disc:
$ sudo fsck -f /dev/loop1 fsck from util-linux-ng 2.16 e2fsck 1.41.9 (22-Aug-2009) Pas 1: comprovació de nodes-i, blocs i mides Pas 2: comprovació de l'estructura del directori Pas 3: comprovació de la connectivitat dels directoris Pas 4: comprovació dels nombres de referències Node-i 14 desacoblat(s) Connecta amb /lost+found<s>? sí el nombre de referències del node-i NULL és 2, hauria de ser 1.Arregla<s>? sí Pas 5: comprovació del resum de la informació del grup Bloc mapa de bits differences: +(574--575) Arregla<s>? sí El nombre de blocs lliures no es correcte per al grup núm. 0 (0, recompte=0). Arregla<s>? sí El nombre de blocs lliures no es correcte (0, recompte=0). Arregla<s>? sí Node-i mapa de bits differences: +14 Arregla<s>? sí El nombre de nodes-i lliures no es correcte per al grup núm. 0 (7987, recompte=7986). Arregla<s>? sí El nombre de nodes-i lliures no es correcte (63985, recompte=63984). Arregla<s>? sí /dev/loop1: ***** S'HA MODIFICAT EL SISTEMA DE FITXERS ***** /dev/loop1: 16/64000 fitxers (0.0% no contigus), 8449/255992 blocs
L'ordre dumpe2fs ens permet obtenir informació sobre un sistema de fitxers ext:
$ sudo dumpe2fs /dev/sda1 | more Filesystem volume name: <none> Last mounted on: <not available> Filesystem UUID: 7f5a86b3-89b8-434c-b2cb-c66b971b247e Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file Filesystem flags: signed_directory_hash Default mount options: (none) Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 7028736 Block count: 28103701 Reserved block count: 1405185 Free blocks: 7837674 Free inodes: 6577674 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 1017 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Filesystem created: Mon Jul 27 09:30:06 2009 Last mount time: Sun Nov 15 07:36:13 2009 Last write time: Mon Nov 2 11:36:21 2009 Mount count: 15 Maximum mount count: 20 Last checked: Mon Nov 2 09:05:39 2009 Check interval: 15552000 (6 months) Next check after: Sat May 1 10:05:39 2010 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 First orphan inode: 4120686 Default directory hash: half_md4 Directory Hash Seed: 2bcad210-d6a4-4822-bdc5-42619f9fc678 Journal backup: inode blocks Mida del registre de canvis: 128M Grup 0: (blocs 0-32767) superbloc Primari a 0, descriptors de grup a 1-7 Reserved GDT blocks at 8-1024 Mapa de bits del bloc a 1025 (+1025), mapa de bits del node-i a 1026 (+1026) taula de nodes-i a 1027-1538 (+1027) 0 blocs lliures, 8161 nodes-i lliures, 3 directoris Blocs liures: Nodes-i lliures: 13-16, 36-8192 Grup 1: (blocs 32768-65535) superbloc Còpia de seguretat a 32768, descriptors de grup a 32769-32775 Reserved GDT blocks at 32776-33792 Mapa de bits del bloc a 33793 (+1025), mapa de bits del node-i a 33794 (+1026) taula de nodes-i a 33795-34306 (+1027) 0 blocs lliures, 8170 nodes-i lliures, 1 directoris Blocs liures: Nodes-i lliures: 8215-16384 Grup 2: (blocs 65536-98303) Mapa de bits del bloc a 65536 (+0), mapa de bits del node-i a 65537 (+1) taula de nodes-i a 65538-66049 (+2) 0 blocs lliures, 8168 nodes-i lliures, 2 directoris Blocs liures: Nodes-i lliures: 16409-24576 ...
Com podeu veure ens mostra tota la informació referent al sistema de fitxers. Anem a veure algunes de les dades més importants i com podem accedir directament a aquestes dades.
Segurament el més importat es pode consultar l'estat del sistema de fitxers. Sense errors hauria de ser clean:
$ sudo dumpe2fs /dev/sda1 | grep state dumpe2fs 1.41.9 (22-Aug-2009) Filesystem state: clean
Després podem obtenir els identificadors del dispositiu amb:
$ sudo dumpe2fs /dev/sda1 | grep UUID dumpe2fs 1.41.9 (22-Aug-2009) Filesystem UUID: 7f5a86b3-89b8-434c-b2cb-c66b971b247e
i la etiqueta:
$ sudo dumpe2fs /dev/sda1 | grep name dumpe2fs 1.41.9 (22-Aug-2009) Filesystem volume name: <none>
L'ordre ens permet conèixer una sèrie de dates importants com la data de creació:
$ sudo dumpe2fs /dev/sda1 | grep created dumpe2fs 1.41.9 (22-Aug-2009) Filesystem created: Mon Jul 27 09:30:06 2009
O podem consultar les últimes dates de muntatge, comprovació del disc, etc.:
$ sudo dumpe2fs /dev/sda1 | grep Last dumpe2fs 1.41.9 (22-Aug-2009) Last mounted on: <not available> Last mount time: Sun Nov 15 07:36:13 2009 Last write time: Mon Nov 2 11:36:21 2009 Last checked: Mon Nov 2 09:05:39 2009
Amb l'ordre tune2fs hem vist com podem modificar cada quan es fa una nova comprovació del disc. Normalment es fa una comprovació completa del sistema de fitxers cada X vegades que es munta la partició o cada X temps des de la última comprovació. Podem veure quina és la data de la següent comprovació amb:
$ sudo dumpe2fs /dev/sda1 | grep Next dumpe2fs 1.41.9 (22-Aug-2009) Next check after: Sat May 1 10:05:39 2010
Podem consultar cada quants muntatges es comprovarà el dispositiu o quan falta per a la següent comprovació:
$ sudo dumpe2fs /dev/sda1 | grep -i "Mount count" dumpe2fs 1.41.9 (22-Aug-2009) Mount count: 15 Maximum mount count: 20
NOTA: l'opció -i de grep ignora minúscules i majúscules
En sistemes ext3 sol ser 4K:
$ sudo dumpe2fs /dev/sda1 | grep -i 'Block size' dumpe2fs 1.41.9 (22-Aug-2009) Block size: 4096
Consulteu du.
Consulteu df.
Consulteu fsck.
Consulteu e2fsck.
Consulteu mke2fs.
Consulteu debugfs.
Consulteu dumpe2fs.
Consulteu tune2fs.
El suport per a reiserFS, el proporciona el paquet reiserfsprogs:
$ dpkg -S /sbin/mkfs.reiserfs reiserfsprogs: /sbin/mkfs.reiserfs
Per instal·lar-lo:
$ sudo apt-get install reiserfsprogs
Creeu una imatge per fer proves
$ dd if=/dev/zero of=~/reiserfs.img bs=1024k count=100
Si intenteu formatar amb reiserfs us dirà que no és un dispositiu de blocs:
$ mkfs.reiserfs /home/sergi/reiserfs.img mkfs.reiserfs 3.6.21 (2009 www.namesys.com) A pair of credits: BigStorage (www.bigstorage.com) contributes to our general fund every month, and has done so for quite a long time. Hans Reiser was the project initiator, source of all funding for the first 5.5 years. He is the architect and official maintainer. /home/sergi/reiserfs.img is not a block special device Use -f to force over
Proveu amb force:
$ mkfs.reiserfs -f /home/sergi/reiserfs.img mkfs.reiserfs 3.6.21 (2009 www.namesys.com) A pair of credits: SuSE (www.suse.com) pays for continuing work on journaling for version 3, paid for much of the previous version 3 work, and is paying for Chris and Jeff to do V3 maintenance. Reiserfs integration in their distro is consistently solid, and they were key to our becoming widely used. Nikita Danilov wrote most of the core balancing code, plugin infrastructure, and directory code. He steadily worked long hours, and is the reason so much of the Reiser4 plugin infrastructure is well abstracted in its details. The carry function, and the use of non-recursive balancing, are his idea. /home/sergi/reiserfs.img is not a block special device Continue (y/n):y Guessing about desired format.. Kernel 2.6.31-14-generic is running. Format 3.6 with standard journal Count of blocks on the device: 25600 Number of blocks consumed by mkreiserfs formatting process: 8212 Blocksize: 4096 Hash function used to sort names: "r5" Journal Size 8193 blocks (first block 18) Journal Max transaction length 1024 inode generation number: 0 UUID: 1c1f6da6-01e1-4ac4-8239-3f607ba47bd7 Initializing journal - 0%....20%....40%....60%....80%....100% Syncing..ok ReiserFS is successfully created on /home/sergi/reiserfs.img.
I la munteu:
$ sudo mkdir /mnt/reiserfs $ sudo mount -o loop /home/sergi/reiserfs.img /mnt/reiserfs
Per disposar de suport per al sistema XFS cal instal·lar el paquet xfsprogs:
En versions noves d'Ubuntu (2009) si intenteu utilitzar l'ordre mkfs.xfs:
$ mkfs.xfs El programa «mkfs.xfs» no està instal·lat actualment. Podeu instal·lar-lo si escriviu: sudo apt-get install xfsprogs mkfs.xfs: command not found
Per tant per disposar de suport per a XFS cal executar:
$ sudo apt-get install xfsprogs
Les eines conegudes com xfs-tools, són les proporcionades (a Debian) pel paquet xfsprogs:
$ dpkg -L xfsprogs | grep bin /usr/sbin /usr/sbin/xfs_copy /usr/sbin/xfs_db /usr/sbin/xfs_admin /usr/sbin/xfs_check /usr/sbin/xfs_ncheck /usr/sbin/xfs_metadump /usr/sbin/xfs_estimate /usr/sbin/xfs_fsr /usr/sbin/xfs_growfs /usr/sbin/xfs_info /usr/sbin/xfs_io /usr/sbin/xfs_bmap /usr/sbin/xfs_freeze /usr/sbin/xfs_mkfile /usr/sbin/xfs_logprint /usr/sbin/xfs_quota /usr/sbin/xfs_mdrestore /usr/sbin/xfs_rtcp /sbin /sbin/fsck.xfs /sbin/mkfs.xfs /sbin/xfs_repair
Consulteu també xfs.
Podeu utilitzar el frontend mkfs per tal de crear un sistema de fitxers XFS:
Creeu un fitxer imatge per fer les proves:
$ cd $ dd if=/dev/zero of=xfs.img bs=1024k count=100 $ sudo losetup /dev/loop1 /home/sergi/xfs.img
I ara creeu el sistema de fitxers XFS amb:
$ mkfs.xfs -f /dev/loop1 meta-data=xfs.img isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2 data = bsize=4096 blocks=25600, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal log bsize=4096 blocks=1200, version=2 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0
NOTA: Normalment, si no estem proves, executaríem l'ordre en una partició, p. ex: mkfs.xfs /dev/sda1
Si el dispositiu o fitxer d'imatge ja té un sistema xfs us donarà el següent error:
$ mkfs.xfs xfs.img mkfs.xfs: xfs.img appears to contain an existing filesystem (xfs). mkfs.xfs: Use the -f option to force overwrite.
Podeu forçar l'execució amb -f:
$ mkfs.xfs -f xfs.img meta-data=xfs.img isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2 data = bsize=4096 blocks=25600, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal log bsize=4096 blocks=1200, version=2 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0
Ara podeu muntar la unitat amb:
$ sudo mkdir /mnt/xfs/ $ sudo mount /dev/loop1 /mnt/xfs/ $ ls -la /mnt/xfs total 4 drwxr-xr-x 2 root root 6 2009-11-25 20:41 . drwxr-xr-x 3 root root 4096 2009-11-25 20:40 ..
Copia les metadades d'un sistema de fitxers XFS a un fitxer. La sintaxi és:
$ xfs_metadump [ -efgow ] [ -l logdev ] source target
per exemple:
L'ordre xfs_info és equivalent a l'ordre xfs_growfs amb l'opció -n. Per aquesta raó, si consulteu el manual veureu:
$ man xfs_info
Veureu l'ajuda de l'ordre xfs_growfs amb el comentari que xfs_info és xfs_growfs -n. El que fa és mostrar la informació del sistema de fitxers.
La sintaxi és:
$ xfs_info /punt/de/muntatge
Per exemple:
$ xfs_info /mnt/xfs meta-data=/dev/loop1 isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2 data = bsize=4096 blocks=25600, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=1200, version=2 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0
Si us fixeu és el mateix que:
$ xfs_growfs -n /mnt/xfs meta-data=/dev/loop1 isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2 data = bsize=4096 blocks=25600, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=1200, version=2 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0
I també és el mateix que el que surt després de l'ordre mkfs.xfs
with the -n option (see discussion below). -n Specifies that no change to the filesystem is to be made. The filesystem geometry is printed, and argument checking is performed, but no growth occurs.
També es tracta d'una utilitat proporcionada pel paquet util-linux:
$ whereis blockdev blockdev: /sbin/blockdev /usr/share/man/man8/blockdev.8.gz $ dpkg -S /sbin/blockdev util-linux: /sbin/blockdev
Es pot utilitzar per tal de mostrar la informació d'un dispositiu:
$ sudo blockdev --report /dev/sda RO RA SSZ BSZ StartSec Size Device rw 256 512 4096 0 120034123776 /dev/sda
També es pot executar amb una partició en comptes d'un disc dur sencer:
$ sudo blockdev --report /dev/sda1 RO RA SSZ BSZ StartSec Size Device rw 256 512 4096 63 115112761344 /dev/sda1
On:
$ sudo fdisk -l /dev/sda Disc /dev/sda: 120.0 GB, 120034123776 octets 255 heads, 63 sectors/track, 14593 cylinders Units = cilindres of 16065 * 512 = 8225280 bytes Disk identifier: 0xa0000000 Dispositiu Arrenc. Inici Final Blocs Id Sistema /dev/sda1 * 1 13995 112414806 83 Linux /dev/sda2 13996 14593 4803435 5 Estesa /dev/sda5 13996 14593 4803403+ 82 Intercanvi Linux / Solaris
També permet establir o consultar els paràmetres que us mostra a l'informe (opció --report).