LPI 104.3. Muntatge i desmuntatge de sistemes de fitxers
De SergiTurWiki
| 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/103.1 |
| Usuari: | anonymous |
| Paraula de pas: | qualsevol paraula de pas |
Objectius del tema
| 104.3. Muntatge i desmuntatge de sistemes de fitxers | |
|---|---|
|
|
| |
Àrees Clau de Coneixement: |
|
La següent és una llista parcial de fitxers, termes i utilitats utilitzades: | |
|
Apunts: LPI 104.3. Muntatge i desmuntatge de sistemes de fitxers | |
Muntar un sistema de fitxers. ordre mount
La sintaxi de l'ordre depèn del mode en que la utilitzem. Existeix un mode consulta amb la següent sintaxi:
$ mount [-lvH]
On les opcions són:
- -l: Mostra el mateix resultat que sense -l.
- -V: Mostra la versió
- -h: Mostra l'ajuda.
NOTA: Observeu que l'ordre mount no necessita de superusuari. Això és degut a que els usuaris sempre poden consultar els dispositius muntat i fins i tot muntar sistemes de fitxers si se'ls hi ha donat permís
Per exemple:
$ mount /dev/sda1 on / type ext3 (rw,relatime,errors=remount-ro) proc on /proc type proc (rw) none on /sys type sysfs (rw,noexec,nosuid,nodev) none on /sys/fs/fuse/connections type fusectl (rw) none on /sys/kernel/debug type debugfs (rw) none on /sys/kernel/security type securityfs (rw) udev on /dev type tmpfs (rw,mode=0755) none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) none on /dev/shm type tmpfs (rw,nosuid,nodev) none on /var/run type tmpfs (rw,nosuid,mode=0755) none on /var/lock type tmpfs (rw,noexec,nosuid,nodev) none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev) gvfs-fuse-daemon on /home/sergi/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=sergi) /dev/loop0 on /home/sergi/Documents/LPI/lpi/Materials/Examen_101/104.1/loop0 type ext3 (rw)
NOTA: És equivalent als continguts del fitxer /etc/fstab
La sintaxi per a muntar un dispositiu és:
$ mount [-fnrsvw] [-t vfstype] [-o options] device dir
On:
- -f: Mode fake. No executa realment el muntatge. Útil combinat amb -v
- -n: Munta sense escriure a /etc/mtab
- -r: Munta el sistema de fitxers en mode només lectura (-r readonly)
- -s: ignora les opcions que no siguin correctes.
- -v: mode verbose
- -w: Munta el sistema de fitxers en mode lectura/escriptura
L'opció -t especifica el tipus de sistema de fitxers. Podeu consultar els sistemes de fitxers que possibles amb:
$ man fs
NOTA: Si no s'especifica el tipus, aleshores s'intenta determinar de forma automàtica
L'opció -o és per especificat paràmetres opcionals (opcions). Hi ha de dos tipus:
- No específiques del sistema de fitxers: consulteu la secció FILESYSTEM INDEPENDENT MOUNT OPTIONS del manual de mount
- Específiques del sistema de fitxers: consulteu la secció FILESYSTEM SPECIFIC MOUNT OPTIONS
Per muntar una partició només cal executar:
$ sudo mkdir carpeta_on_muntar_dispositiu
I muntar-lo amb
$ sudo mount /dev/sda1 carpeta_on_muntar_dispositiu
Recursos:
L'opció -a. Muntar els dispositius del fitxer /etc/fstab
La sintaxi és la següent:
$ mount -a [-fFnrsvw] [-t vfstype] [-O optlist]
On totes les opcions són les mateixes que sense l'opció -a, excepte:
- -F: Fa el muntatge més ràpid (fent forks i muntant tots els dispositius en paral·lel). L'inconvenient és que el muntatge no es fa en ordre i pot haver-hi muntatges que depenguin d'altres.
L'opció -a el que es muntar tots els dispositius especificats al fitxer /etc/fstab. Si ja estan muntats no fa res i també cal tenir en compte que no muntarà els dispositius que tinguin l'opció noauto.
Quan es munten dispositius especificats al fitxer /etc/fstab, aleshores no cal indicar el punt de muntatge.
L'opció -t (type) té el significat invers a l'habitual quan s'utilitza conjuntament amb l'opció -a. Per exemple:
$ sudo mount -a -t nomsdos,ext
Munta tots els dispositius del fitxer fstab excepte els de tipus nomsdos i ext.
L'ordre mount com a frontend d'altres ordres
Si executeu:
$ whereis mount mount: /bin/mount /sbin/mount.fuse /sbin/mount.ntfs /sbin/mount.ntfs-3g /usr/share/man/man8/mount.8.gz /usr/share/man/man2/mount.2.gz
Veureu que per a certs sistemes de fitxers (p. ex. NTFS), existeix una ordre mount pròpia. Així, quan muntem un sistema de fitxers amb NTFS realment estem utilitzant l'ordre:
/sbin/mount.ntfs
Opcions independents del sistema de fitxers
- async: Els accessos d'entrada/sortida (I/O) poden ser asíncrons.
- sync: Els accessos d'entrada/sortida (I/O) són síncrons.
- atime: Modifica la marca de temps (timestamp) a cada accés. Aquesta opció s'aplica per defecte
- noatime: el contrari de l'anterior.
- auto: Es pot muntar amb l'opció -a
- noauto: Cal muntar-lo explícitament.
- context: Relacionat amb selinux
- defaults: utilitzar les opcions per defecte, que són: rw, suid, dev, exec, auto, nouser i async
- dev: Interpreta els fitxer de dispositiu del sistema de fitxers a muntar
- nodev: No interpreta els fitxer de dispositiu del sistema de fitxers a muntar
- diratime: Modifica la marca de temps (timestamp) a cada accés al directory .És l'opció per defecte
- nodiratime: el contrari de l'anterior.
- exec: permet l'execució de fitxers binaris (executables) del sistema de fitxers muntat
- noexec: el contrari de l'anterior.
- group: permet a un usuari ordinari muntar el dispositiu si pertany al grup del fitxer de dispositiu. Implica les opcions nosuid i nodev
- encryption: permet muntar un sistema de fitxers xifrat. s'utiliza conjuntament amb l'opció loop
- keybits: especifica la mida en bits de la clau de xifratge
- _netdev: indica que el dispositiu es pot muntar només si tenim accés a la xarxa. Evita que s'intenti muntar el dispositiu si no tenim encara xarxa.
- nofail: no mostra missatges d'error si el dispositiu no existeix.
- relatime: Actualitza les marques de temps mtime i ctime
- norelatime: el contrari de l'anterior
- relatime: desactiva noatime i relatime
- suid: permet utilitzar els bits SUID i GID
- nosuid: el contrari de l'anterior
- owner: permet a un usuari ordinari muntar el dispositiu si es propietari del fitxer de dispositiu. Implica les opcions nosuid i nodev
- remount: permet tornar a muntar un dispositiu que ja està muntat.
- ro: muntar en mode només lectura
- rw: muntar en mode lectura/scriptura
- user: Consulteu LPI_104.3._Muntatge_i_desmuntatge_de_sistemes_de_fitxers#Muntar_dispositius_sense_ser_superusuari
- nouser: el contrari de l'anterior
- users: Consulteu LPI_104.3._Muntatge_i_desmuntatge_de_sistemes_de_fitxers#Muntar_dispositius_sense_ser_superusuari
NOTA: Algunes de les opcions són només útils quan estan al fitxer fstab
Opcions que depenen del sistema de fitxers
Opcions ext2, ext3 i ext4
Opcions ext2:
- acl/noacl: Permet muntar un sistema de fitxers ext am suport per a ACLs (POSIX Access Control Lists)
- bsddf/minixdf: estableix el comportament de la crida de sistema statfs
- check=none/nocheck: No comprova el sistema de fitxers (vegeu fsck) durant el muntatge. Aquest és el comportament per defecte.
- debug: mostra informació de depuració
- errors=continue / errors=remount-ro / errors=panic: Que fer si hi ha un error.
- grpid or bsdgroups / nogrpid or sysvgroups: Quin identificador de grup pren un nou fitxer durant la seva creació. Normalment és el grup de l'usuari que crea la carpeta, però si s'estableix grpid aleshores s'escull el grup de la carpeta on es col·loca el fitxer
- grpquota / noquota / quota / usrquota: Aquestes opcions s'accepten però són ignorades.
Opcions ext3:
- journal=update: Actualitza el journal al format actual
- journal=inum: Si el journal ja existeix, aquesta opció és ignorada. Si no especifica el inode del journal
- noload: no carrega el journal durant el muntatge
...
Opcions vfat
(Note: fat is not a separate filesystem, but a common part of the msdos, umsdos and vfat filesystems.)
Importants:
- umask=value: estableix la mascara amb que es munten el fitxers (consulteu umask). Per exemple, umask=027 munta el fitxers amb els permisos 750 (-rwxr-x---).
- dmask=value: Similar a umask, però estableix la mascarà només per als directoris
- fmask=value: Similar a umask, però estableix la mascarà només per als fitxers
- conv=code: Opcions del valor code:
- b o binary: no modifica els continguts del fitxer
- t o text: Autoconverteix els formats de fitxers de DOS (o MAC) a Linux (end-of-line characters).
- a o auto: aplica la conversió inclòs en fitxers binaris.
NOTA: Millor no utilitzar conv per que pot deixar inservibles els fitxers
TODO:
blocksize=512 / blocksize=1024 / blocksize=2048
Set blocksize (default 512). This option is obsolete.
uid=value and gid=value
Set the owner and group of all files. (Default: the uid and gid of the current process.)
umask=value
Set the umask (the bitmask of the permissions that are not present). The default is the umask of the current process. The value is given in octal.
dmask=value
Set the umask applied to directories only. The default is the umask of the current process. The value is given in octal.
fmask=value
Set the umask applied to regular files only. The default is the umask of the current process. The value is given in octal.
allow_utime=value
This option controls the permission check of mtime/atime.
20 If current process is in group of file's group ID, you can change timestamp.
2 Other users can change timestamp.
The default is set from `dmask' option. (If the directory is writable, utime(2) is also allowed. I.e. ~dmask & 022)
Normally utime(2) checks current process is owner of the file, or it has CAP_FOWNER capability. But FAT filesystem doesn't have uid/gid on disk, so normal
check is too unflexible. With this option you can relax it.
check=value
Three different levels of pickyness can be chosen:
r[elaxed]
Upper and lower case are accepted and equivalent, long name parts are truncated (e.g. verylongname.foobar becomes verylong.foo), leading and embedded
spaces are accepted in each name part (name and extension).
n[ormal]
Like "relaxed", but many special characters (*, ?, <, spaces, etc.) are rejected. This is the default.
s[trict]
Like "normal", but names may not contain long parts and special characters that are sometimes used on Linux, but are not accepted by MS-DOS are
codepage=value
Sets the codepage for converting to shortname characters on FAT and VFAT filesystems. By default, codepage 437 is used.
conv=b[inary] / conv=t[ext] / conv=a[uto]
The fat file system can perform CRLF<-->NL (MS-DOS text format to UNIX text format) conversion in the kernel. The following conversion modes are available:
binary no translation is performed. This is the default.
text CRLF<-->NL translation is performed on all files.
auto CRLF<-->NL translation is performed on all files that don't have a "well-known binary" extension. The list of known extensions can be found at the
beginning of fs/fat/misc.c (as of 2.0, the list is: exe, com, bin, app, sys, drv, ovl, ovr, obj, lib, dll, pif, arc, zip, lha, lzh, zoo, tar, z, arj,
tz, taz, tzp, tpz, gz, tgz, deb, gif, bmp, tif, gl, jpg, pcx, tfm, vf, gf, pk, pxl, dvi).
Programs that do computed lseeks won't like in-kernel text conversion. Several people have had their data ruined by this translation. Beware!
For file systems mounted in binary mode, a conversion tool (fromdos/todos) is available. This option is obsolete.
cvf_format=module
Forces the driver to use the CVF (Compressed Volume File) module cvf_module instead of auto-detection. If the kernel supports kmod, the cvf_format=xxx option
also controls on-demand CVF module loading. This option is obsolete.
cvf_option=option
Option passed to the CVF module. This option is obsolete.
debug Turn on the debug flag. A version string and a list of file system parameters will be printed (these data are also printed if the parameters appear to be
inconsistent).
fat=12 / fat=16 / fat=32
Specify a 12, 16 or 32 bit fat. This overrides the automatic FAT type detection routine. Use with caution!
iocharset=value
Character set to use for converting between 8 bit characters and 16 bit Unicode characters. The default is iso8859-1. Long filenames are stored on disk in
Unicode format.
tz=UTC This option disables the conversion of timestamps between local time (as used by Windows on FAT) and UTC (which Linux uses internally). This is particuluarly
useful when mounting devices (like digital cameras) that are set to UTC in order to avoid the pitfalls of local time.
quiet Turn on the quiet flag. Attempts to chown or chmod files do not return errors, although they fail. Use with caution!
showexec
If set, the execute permission bits of the file will be allowed only if the extension part of the name is .EXE, .COM, or .BAT. Not set by default.
sys_immutable
If set, ATTR_SYS attribute on FAT is handled as IMMUTABLE flag on Linux. Not set by default.
flush If set, the filesystem will try to flush to disk more early than normal. Not set by default.
usefree
Use the "free clusters" value stored on FSINFO. It'll be used to determine number of free clusters without scanning disk. But it's not used by default,
because recent Windows don't update it correctly in some case. If you are sure the "free clusters" on FSINFO is correct, by this option you can avoid scanning
disk.
dots, nodots, dotsOK=[yes|no]
Various misguided attempts to force Unix or DOS conventions onto a FAT file system.
ntfs
Mount options for ntfs
iocharset=name
Character set to use when returning file names. Unlike VFAT, NTFS suppresses names that contain unconvertible characters. Deprecated.
nls=name
New name for the option earlier called iocharset.
utf8 Use UTF-8 for converting file names.
uni_xlate=[0|1|2]
For 0 (or `no' or `false'), do not use escape sequences for unknown Unicode characters. For 1 (or `yes' or `true') or 2, use vfat-style 4-byte escape
sequences starting with ":". Here 2 give a little-endian encoding and 1 a byteswapped bigendian encoding.
posix=[0|1]
If enabled (posix=1), the file system distinguishes between upper and lower case. The 8.3 alias names are presented as hard links instead of being suppressed.
This option is obsolete.
uid=value, gid=value and umask=value
Set the file permission on the filesystem. The umask value is given in octal. By default, the files are owned by root and not readable by somebody else.
iso9660
Correspont als CD-ROMs
Muntar les unitats de Windows
Per saber quines particions teniu i quines són les de Windows executeu:
$ sudo fdisk -l Password: Disc /dev/hda: 60.0 GiB, 60011642880 octets 255 capçals, 63 sectors/pista, 7296 cilindres Unitats = cilindres de 16065 * 512 = 8225280 octets Dispositiu Arrenc. Comença Acaba Blocs Id Sistema /dev/hda1 1 383 3076416 12 Diagnòstics Compaq /dev/hda2 * 384 4744 35029732+ c W95 FAT32 (LBA) /dev/hda3 4745 7188 19631430 83 Linux /dev/hda4 7189 7296 867510 5 Estesa /dev/hda5 7189 7296 867478+ 82 Linux swap / Solaris
Per exemple imagineu-vos que teniu Windows (cosa força comú) a /dev/hda1 amb NTFS i que hi volem accedir a través de la carpeta /media/windows:
$ sudo mkdir /media/windows
Feu una còpia de seguretat:
$ sudo cp /etc/fstab /etc/fstab_backup $ gksudo gedit /etc/fstab
I afegim la següent línia:
/dev/hda1 /media/windows ntfs nls=utf8,umask=0222 0 0
Ara imagineu-vos que teniu la FAT a /dev/hda2. Aleshores heu d'afegir la línia:
/dev/hda2 /media/windows vfat iocharset=utf8,umask=000 0 0
Ara podeu reiniciar la màquina per que els canvis tinguin efecte o podeu executar
$ sudo mount -a
Recursos:
Muntar imatges de disc. Dispositius loop
$ mkdir mnt $ sudo mount -o loop ubuntu-9.10-desktop-i386.iso mnt
L'ordre anterior és equivalent a utilitzar prèviament l'ordre losetup:
$ sudo losetup /dev/loop0 ubuntu-9.10-desktop-i386.iso $ sudo mount /dev/loop0 mnt
per desmuntar-lo:
$ sudo umount mnt
Consulteu també:
losetup
Segons el manual:
$ man losetup
Configura i control els dispositius loop. Aquests dispositius permeten accedir a un fitxer com si es tractes d'un dispositiu de blocs. L'ordre losetup es proporciona pel paquet mount:
$ dpkg -S /sbin/losetup mount: /sbin/losetup
Vegem alguns exemples:
Associar un fitxer a un dispositiu de loop
Primer es recomanable consultar quin és el primer dispositiu lliure:
$ sudo losetup -f /dev/loop0
Aleshores podem associar una imatge (per exemple un fitxer creat amb dd o una imatge ISO):
$ sudo losetup /dev/loop0 disk.img
Consultar l'estatus d'un dispositiu loop:
$ sudo losetup /dev/loop0 /dev/loop1: [0016]:4572421 (/home/sergi/disk.img)
Eliminar l'associació actual d'un dispositiu loop:
$ sudo losetup -d /dev/loop0
L'opció -d vol dir --detach i no pas esborrar.
Mostrar el primer dispositiu loop lliure:
$ sudo losetup -f /dev/loop0
Consultar l'estat de tots els dispositius de loopback:
$ sudo losetup -a /dev/loop0: [0016]:4572416 (/home/sergi/ubuntu-9.10-desktop-i386.iso) /dev/loop1: [0016]:4572421 (/home/sergi/ProvesDiscs/images/100MB.img) /dev/loop5: [0016]:4571691 (/home/sergi/ProvesDiscs/images/1GB.img) /dev/loop7: [0016]:4572363 (/home/sergi/minipart), encryption aes (type 18)
Consultar els dispositius de loopback associats a un fitxer:
$ sudo losetup -j /home/sergi/minipart /dev/loop7: [0016]:4572363 (/home/sergi/minipart), encryption aes (type 18) $ sudo losetup -j /home/sergi/ProvesDiscs/images/100MB.img /dev/loop1: [0016]:4572421 (/home/sergi/ProvesDiscs/images/100MB.img)
Tornar a llegir la mida del fitxer associat al dispositiu de loopback:
$ dd if=/dev/zero of=~/ProvesDiscs/images/100MB.img bs=1M count=200 200+0 registres llegits 200+0 registres escrits 209715200 octets (210 MB) copiats, 7,66056 s, 27,4 MB/s $ sudo losetup -a /dev/loop0: [0016]:4572416 (/home/sergi/ubuntu-9.10-desktop-i386.iso) /dev/loop1: [0016]:4572421 (/home/sergi/ProvesDiscs/images/100MB.img) /dev/loop5: [0016]:4571691 (/home/sergi/ProvesDiscs/images/1GB.img) /dev/loop7: [0016]:4572363 (/home/sergi/minipart), encryption aes (type 18) $ sudo losetup -c /dev/loop1
Mostrar més informació (verbose)
$ sudo losetup -v -c /dev/loop1
Particions xifrades amb losetup
Es pot fer utilitzant l'opció -e (encryption) de losetup:
$ sudo losetup -e aes /dev/loop7 imatge
Per crear una carpeta privada a la home, primer cal crear un fitxer, de per exemple 100M:
$ dd if=/dev/urandom of=minipart bs=1M count=100
Ara cal activar el modul d'encriptació:
$ sudo modprobe cryptoloop
NOTA: segons el manual de losetup, cryptoloop esta deprecat i cal utilitzar dm-crypt. Consulteu $ man cryptsetup.
ara cal enllaçar el fitxer amb algun dels dispositius loop:
$ sudo losetup -e aes /dev/loop7 minipart
Ens demanarà una paraula de pas
Li donem format a la minipartició:
$ sudo mkfs -t ext3 /dev/loop7
I creem una carpeta a la nostra HOME que serà el punt a on muntem el fitxer xifrat:
$ mkdir ~/Privat
Ara per poder muntar el punt automàticament i poder-ho fer sense ser root, cal afegir la següent línia al fitxer /etc/fstab:
$ sudo nano /etc/fstab
/dev/loop7 /home/sergi/Privat ext3 noauto,noatime,encryption=aes,rw,exec,user,async 0 0
NOTA: heu de canviar sergi pel vostre nom d'usuari i feu un intro al final de línia si no voleu tenir problemes
Ara ja la podem muntar amb:
$ mount Privat
Indiqueu els permisos:
$ sudo chown -R sergi:sergi Privat
Per a desmuntar-ho tot:
$ umount Privat $ sudo losetup -d /dev/loop7
Recursos:
- http://www.ubuntuhispano.org/wiki/crear-particiones-encriptadas-utilizando-losetup
- http://encryptionhowto.sourceforge.net/Encryption-HOWTO-4.html
Muntar la partició d'una imatge de disc
$ sudo mkdir -p /mnt/imatge_de_proves_1GB
I ara ja podeu muntar amb
$ sudo mount -o loop,offset=27136 -t auto /mnt/imatge_de_proves_1GB /home/sergi/ProvesDiscs/images/1GB.img
$ fdisk -u -l /mnt/storage/disk_image
You must set cylinders.
You can do this from the extra functions menu.
Disk /mnt/storage/disk_image: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x41172ba5
Device Boot Start End Blocks Id System
/mnt/storage/disk_image1 63 64259 32098+ de Dell Utility
/mnt/storage/disk_image2 * 64260 78108029 39021885 7 HPFS/NTFS
Partition 2 has different physical/logical endings:
phys=(1023, 254, 63) logical=(4861, 254, 63)
$ sudo mount -o loop,offset=32901120 -t auto /mnt/storage/disk_image /home/cowgod/Desktop/drive_image
Recursos:
[root@virt rruban]# file rheltest.img
rheltest.img: x86 boot sector, GRand Unified Bootloader (0.94);
partition 1: ID=0x83, active, starthead 1, startsector 63, 208782 sectors;
partition 2: ID=0x8e, starthead 0, startsector 208845, 3871665 sectors, code offset 0x48
Shown above, there are three partitions inside the image file. The startsector of each partition is also listed. Boot partition will have startsector of 63.
2. Next, you need to get the sector size:
[root@virt]fdisk -lu rheltest.img
Disk rheltest.img: 0 MB, 0 bytes 255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
rheltest.img1 * 63 208844 104391 83 Linux
rheltest.img2 208845 4080509 1935832+ 8e Linux LVM
The above shows the startsector byte size is 512 bytes.
3. You then must calculate the offset. To do this, use: offset = start_sector x sector_byte_size.
The startsector is 63 for the first partition, therefore the first partition offset is: 63x512=32256
4. Finally, to mount the image, use:
mount -o loop,offset=32256 test.img /foldername
Modificar el comportament dels dispositius de loop per tal de suportar particions
Només funciona si el suport per a dispositius de loop està funcionant com a mòdul del nucli (kernel):
$ sudo modprobe loop max_part=63
$ sudo ls -l /dev/loop?* brw-rw---- 1 root disk 7, 0 2008-03-05 14:55 /dev/loop0 brw-rw---- 1 root disk 7, 64 2008-03-05 14:55 /dev/loop1 brw-rw---- 1 root disk 7, 128 2008-03-05 14:55 /dev/loop2 brw-rw---- 1 root disk 7, 192 2008-03-05 14:55 /dev/loop3 brw-rw---- 1 root disk 7, 256 2008-03-05 14:55 /dev/loop4 brw-rw---- 1 root disk 7, 320 2008-03-05 14:55 /dev/loop5 brw-rw---- 1 root disk 7, 384 2008-03-05 14:55 /dev/loop6 brw-rw---- 1 root disk 7, 448 2008-03-05 14:55 /dev/loop7
$ sudo losetup -f etch.img $ sudo ls -l /dev/loop?* brw-rw---- 1 root disk 7, 0 2008-03-05 14:55 /dev/loop0 brw-rw---- 1 root disk 7, 1 2008-03-05 14:57 /dev/loop0p1 brw-rw---- 1 root disk 7, 2 2008-03-05 14:57 /dev/loop0p2 brw-rw---- 1 root disk 7, 5 2008-03-05 14:57 /dev/loop0p5 brw-rw---- 1 root disk 7, 64 2008-03-05 14:55 /dev/loop1 brw-rw---- 1 root disk 7, 128 2008-03-05 14:55 /dev/loop2 brw-rw---- 1 root disk 7, 192 2008-03-05 14:55 /dev/loop3 brw-rw---- 1 root disk 7, 256 2008-03-05 14:55 /dev/loop4 brw-rw---- 1 root disk 7, 320 2008-03-05 14:55 /dev/loop5 brw-rw---- 1 root disk 7, 384 2008-03-05 14:55 /dev/loop6 brw-rw---- 1 root disk 7, 448 2008-03-05 14:55 /dev/loop7
Recursos:
kpartx
Per instal·lar-lo:
$ sudo apt-get install kpartx
Segons el manual:
$ man kpartx
kpartx - Create device maps from partition tables
serveix per crear mapes de dispositius a partir de taules de partició.
Serveix per accedir a les particions de imatges i és una alternativa a la solució que hem vist en apartats anteriors (accedir a les particions utilitzant el offset):
Vegem un exemple complet. Primer creem una fitxer imatge de 500MB:
$ mkdir -p ~/ProvesDiscs/images $ dd if=/dev/zero of=~/ProvesDiscs/images/500MB.img bs=1M count=500
Per poder-lo particionar amb fdisk cal que hi accedim com si fos un dispositiu de blocs:
$ sudo losetup /dev/loop6 ~/ProvesDiscs/images/500MB.img bs=1M count=500
Creem dos particions amb fdisk:
$ sudo fdisk /dev/loop6
El dispositiu no conté ni taula de particions DOS vàlida, ni cap etiqueta de disc Sun, SGI o OSF
Building a new DOS disklabel with disk identifier 0x4169c257.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Avís: el senyalador 0x0000 invàlid de la taula de particions 4 es corregirà amb w(escriu)
Ordre (m per a obtenir ajuda): n
Acció de l'ordre
e estesa
p partició primària (1-4)
1
Nombre de partició no vàlid per al tipus `1'
Acció de l'ordre
e estesa
p partició primària (1-4)
p
Nombre de partició (1-4): 1
Primera cilindre (1-63, valor per defecte 1):
S'està utilitzant el valor per defecte 1
Last cilindre, +cilindres or +size{K,M,G} (1-63, valor per defecte 63): 40
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): 2
Primera cilindre (41-63, valor per defecte 41):
S'està utilitzant el valor per defecte 41
Last cilindre, +cilindres or +size{K,M,G} (41-63, valor per defecte 63):
S'està utilitzant el valor per defecte 63
Ordre (m per a obtenir ajuda): p
Disc /dev/loop6: 524 MB, 524288000 octets
255 heads, 63 sectors/track, 63 cylinders
Units = cilindres of 16065 * 512 = 8225280 bytes
Disk identifier: 0x4169c257
Dispositiu Arrenc. Inici Final Blocs Id Sistema /dev/loop6p1 1 40 321268+ 83 Linux /dev/loop6p2 41 63 184747+ 83 Linux 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 eliminem el dispositiu de loop
$ sudo losetup -d /dev/loop6
Ara ja podem utilitzar kpartx per accedir a les particions de la imatge:
$ sudo kpartx -a ~/ProvesDiscs/images/500MB.img $ sudo kpartx -l ~/ProvesDiscs/images/500MB.img loop2p1 : 0 642537 /dev/loop2 63 loop2p2 : 0 369495 /dev/loop2 642600
Ara les particions estan accessibles a través de /dev/mapper/
$ ls /dev/mapper/ control loop2p1 loop2p2
Abans de poder-la muntar cal crear un sistema de fitxers:
$ sudo mkfs.ext3 /dev/mapper/loop2p2 mke2fs 1.41.9 (22-Aug-2009) Etiqueta del sistema de fitxers= Tipus de sistema operatiu: Linux Mida del bloc=1024 (log=0) Mida del fragment=1024 (log=0) 46368 nodes-i, 184744 blocs 9237 blocs (5.00%) reservats per al superusuari Bloc de dades inicial=1 Màxim de blocs del sistema de fitxers=67371008 23 grups de blocs 8192 blocs per grup, 8192 fragments per grup 2016 nodes-i per grup Còpies de seguretat del superbloc desades en els blocs: 8193, 24577, 40961, 57345, 73729 Escriptura de les taules de nodes-i:fet Creació del registre de transaccions (4096 blocs): fet Escriptura de la informació dels súperblocs i de comptabilitat del sistema de fitxers:fet This filesystem will be automatically checked every 27 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
Podem muntar la partició 2 amb:
$ mkdir particio2 $ sudo mount /dev/mapper/loop2p2 particio2 sergi@shuttle-BSF:~$ ls particio2/ lost+found
podeu desassociar amb:
$ sudo kpartx -d ~/ProvesDiscs/images/500MB.img
Recursos:
Muntar dispositius sense ser superusuari
Normalment només el superusuari pot muntar sistemes de fitxers. Hi ha però una excepció, si al fitxer /etc/fstab s'indica l'opció user, aleshores qualsevol usuari pot muntar aquell dispositiu. Per exemple, una línia com la següent al fitxers fstab:
/dev/cdrom /cd iso9660 ro,user,noauto,unhide
Permet que tothom pugui muntar el cdrom amb:
$ sudo mount /dev/cdrom
Només el usuari que ha muntat el dispositiu, pot desmuntar-lo (excepte el superusuari). Si voleu que tots els usuaris puguin desmuntar el dispositiu aleshores utilitzeu la opció users en comptes de l'opció user.
Muntar un dispositiu per etiqueta o UUID
Es poden utilitzar les opcions -L label per muntar per etiqueta i -U uuid per muntr per UUID.
Desmuntar un sistema de fitxers. Ordre umount
L'ordre umount és l'ordre contraria a mount i el seu ús és molt similar. La sintaxi és:
$ umount [-afnrv] [-t fstype] [device | mountpoint]
IMPORTANT: Per desmuntar poden especificar el punt de muntatge o el dispositiu, però no tots dos
La majoria de paràmetres tenen el mateix significat que a l'ordre mount. Cal destacar però:
- Desmuntar tot (-a): Cal tenir en comte que no intenta desmuntar tots els sistemes de fitxers especificats al fitxer /etc/fstab sinó que desmunta el sistemes de fitxers especificats a /etc/mtab. Cal tenir en compte que sistemes crítics com l'arrel no es podran desmuntar.
- Forçar el desmuntatge (-f): Força a fer la operació de desmuntatge. De totes maneres, acostuma a fallar si hi ha fitxers utilitzant el punt de muntatge. Es útil per desmuntar NFS quan el servidor NFS ha esdevingut inaccessible.
- Si falla el desmuntatge intentar tornar a muntar com només lectura (-r): Si no pot desmuntar intenta que el sistema de fitxers al menys sigui de només lectura.
Cal recordar que els usuaris ordinaris no poden desmuntar a no ser que el punt de muntatge l'hagin muntat ells o que s'especifiqui el contrari amb les opcions user, users, owner o group
IMPORTANT: Cal desmuntar els dispositius removibles com llapis USB, sinó es poden perdre dades
Configuració del muntatge dels sistemes de fitxers durant l'arrencada del sistema. Fitxer /etc/fstab
El fitxer /etc/fstab especifica les unitats que volem muntar durant l'arrancada del sistema i també quins usuaris poden o no muntar els dispositius disponibles. Un exemple de fitxer fstab:
$ cat /etc/fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # /dev/sda2 UUID=2a1f0d8f-bbd6-4f13-a393-ddfc08f8a73d / ext3 defaults,errors=remount-ro 0 1 # /dev/sda6 UUID=5823fa22-630a-4674-9288-b39d647b61bc /home ext3 defaults 0 2 # /dev/sda1 UUID=2423-14FE /media/sda1 vfat defaults,utf8,umask=007,gid=46 0 1 # /dev/sdb1 UUID=49fbc8a3-c70b-4b7a-9427-0fcfb77fdf66 /linux2 ext3 defaults,errors=remount-ro 0 2 # /dev/sda5 UUID=dc2056d5-a39f-41fb-a804-a7e30c008a17 /var ext3 defaults 0 2 # /dev/sda7 UUID=41e12fe4-496a-4d50-b3a0-c09ec858ef75 none swap sw 0 0 /dev/hdc /media/cdrom0 udf,iso9660 user,noauto,exec 0 0
Cada línia del fitxer fstab correspon a un possible dispositiu a muntar. Les línies que comencen amb # són comentaris i com a tal són ignorades. Cada línia té 6 camps que estan separats per espais, múltiples espais o tabuladors.
Segons el manual (man fstab):
- Primer camp (device): Descriu el dispositiu local que s'ha de muntar o el sistema de fitxers remot. Hi ha diferents formats. Exemples
- /dev/cdrom: cdrom
- /dev/sdb7: Partició lògica del segon disc dur
- 192.168.0.3:/mnt: Sistema de fitxers remot amb NFS
- UUID=49fbc8a3-c70b-4b7a-9427-0fcfb77fdf66: Identificador únic de la partició
- LABEL=<label>: Label del dispositiu
- Segon camp (fs_file, punt de muntatge): Punt de muntatge del dispositiu. Veieu mount. Els espais es poden escapar amb ‘\040’. Els punts de muntatge swap no existeixen i per aquesta raó s'indica amb none
- Tercer camp (fs_vfstype),: tipus de sistema de fitxers. Es suporten un munt de sistemes de fitxers. Consulteu-los amb $man fs o $ man mount. Si poseu auto el nucli intentarà esbrinar quin tipus de sistema de fitxers utilitza el dispositiu. Cal tenir en compte però que no funciona a tots els sistemes de fitxers
- Quart camp (fs_mntops): Opcions de muntatge separades per coma. Consulteu la comanda mount per conèixer les opcions possibles o el manuals de NFS per a les opcions de NFS
- Cinquè Camp (fs_freq): Utilitzat per la comanda dump. El valor de 0 indica que no s'ha de fer un dump del sistema de fitxers.
- Sisè camp: l'ordre en que es fan els checks durant l'arrancada del sistema. La comanda fsck és la encarregada de per les comprovacions. Un valor 0 indica que no es farà una comprovació del sistema abans de muntar.
Es poden consultar els sistemes de fitxers suportats pel Kernel amb:
$ cat /proc/filesystems
o:
$ man fs
Per llegir valors del fitxers fstab cal utilitzar les rutines getmntent(3).
Des de la versió Edgy de Ubuntu que s'utilitzen uuid. Per obtenir la UID d'un dispositiu cal executar:
$ vol_id -u /dev/sda4
IMPORTANT: en versions posteriors d'ubuntu no trobem el comanda vol_id. Utilitzeu blkid
$ sudo blkid /dev/sda1: UUID="8b669217-d286-4a45-be7e-69c5f0f29090" TYPE="ext3" /dev/sda5: UUID="c4abc7f8-3ead-401d-b93d-8a17efbbc82f" TYPE="swap" /dev/sdb1: LABEL="SISTEMA" UUID="50B8-ADD2" TYPE="vfat" /dev/sdb3: UUID="db29ee49-9363-4978-b81d-a94bdaff2354" TYPE="ext4" /dev/sdb4: UUID="86070dd9-7b19-4548-bd40-9fb87f719b3a" TYPE="swap" /dev/sdb5: UUID="44704f1a-0453-40b7-8a2e-209f594e7b4f" TYPE="ext3"
Més informació a:
També podeu trobar un fitxers fstab sense uuid:
# /etc/fstab: static file system information Per exemple: # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/sda2 / ext3 defaults,errors=remount-ro 0 1 /dev/sda5 none swap sw 0 0 /dev/sdb1 /linux2 ext3 defaults,errors=remount-ro 0 2 /dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0 #Windows fat32 /dev/sda1 /mnt/windows vfat rw,uid=sergi,gid=sergi,umask=0222
Un altre exemple de fitxer:
#device mount point filesystem options dump fsck
/dev/hda1 / ext3 defaults 1 1
UUID=3631a288-673e-40f5-9e96-6539fec468e9 \
/usr reiserfs defaults 0 0
LABEL=/home /home reiserfs defaults 0 0
/dev/hdb5 /windows vfat uid=500,umask=0 0 0
/dev/hdc /media/cdrom iso9660 users,noauto 0 0
/dev/sda1 /media/pen auto users,noauto 0 0
server:/home /other/home nfs users,exec 0 0
//winsrv/shr /other/win cifs users,credentials=/etc/creds 0 0
/dev/hda4 swap swap defaults 0 0
Especificar credencials (usuaris i paraules de pas)
L'opció credentials permet especificar l'usuari i la paraula de pas per accedir a dispositius remots. tot i que es poden especificar les opcions usuaris i paraula de pas com altres opcions, el problema és que aleshores són visibles al fitxer /etc/fstab.
Per exemple:
credentials=/etc/creds
Al fitxer /etc/creds trobareu el usuari i la paraula de pas:
username=sergi password=paraula_depas
Aquest fitxer el podeu posar de només lectura per a root.
Vegeu un exemple:
//winsrv/shr /other/win cifs users,credentials=/etc/creds 0 0
Desactivar les comprovacions de disc
Es pot posar a 0 l'última columna del dispositiu que no volem comprovar mai al fitxer fstab.
Consulteu també la comanda tune2fs.
Permetre als usuaris muntar sistemes de fitxers concrets
Consulteu LPI_104.3._Muntatge_i_desmuntatge_de_sistemes_de_fitxers#Muntar_dispositius_sense_ser_superusuari
Fitxer /etc/mtab
Conté la informació dels sistemes de fitxers muntats:
$ cat /etc/mtab /dev/sda1 / ext3 rw,relatime,errors=remount-ro 0 0 proc /proc proc rw 0 0 none /sys sysfs rw,noexec,nosuid,nodev 0 0 none /sys/fs/fuse/connections fusectl rw 0 0 none /sys/kernel/debug debugfs rw 0 0 none /sys/kernel/security securityfs rw 0 0 udev /dev tmpfs rw,mode=0755 0 0 none /dev/pts devpts rw,noexec,nosuid,gid=5,mode=0620 0 0 none /dev/shm tmpfs rw,nosuid,nodev 0 0 none /var/run tmpfs rw,nosuid,mode=0755 0 0 none /var/lock tmpfs rw,noexec,nosuid,nodev 0 0 none /lib/init/rw tmpfs rw,nosuid,mode=0755 0 0 /dev/sdb5 /home2 ext3 rw,relatime,errors=remount-ro 0 0 nfsd /proc/fs/nfsd nfsd rw 0 0 binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,noexec,nosuid,nodev 0 0 gvfs-fuse-daemon /home/sergi/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,user=sergi 0 0
És equivalent a utilitzar l'ordre mount sense opcions.
Carpeta /media
Segons l'estandard FHS en aquesta carpeta es defineixen els punts de muntatge per als dispositius removibles com CD/DVD-ROMS, llapis USB. etc:
- /media/cdrom
- /media/usbdisk
ordres
mount
Consulteu mount.
umount
Vegeu també
- Sistemes de fitxers
- LPI_104.1. Mantenir la integritat dels sistemes de fitxers
- LPI_104.2. Mantenir la integritat dels sistemes de fitxers
- Xen#Crear_una_Ubuntu_Server_Jaunty_com_a_domU_sense_xen-tools_.28a_m.C3.A0_i_amb_debootstrap.29
- debootstrap
- chroot
- VirtualBox
- mountmanager


