Igorka Лекция №15 - монтиране на файлови системи

Малко за всичко и всичко за малко, или практическият опит на системен администратор.

лекция

ноември 2009 г.Пон Вт Ср Чет Пет Сб Нед
« октдекември »
1
2345678
910единадесет12131415
16171819202122
23242526272829
тридесет

лекция

Лекция № 15 - монтиране на файлови системи. команда за монтиране.

В предишни лекции темата за монтиране на файлови системи вече беше засегната няколко пъти. Днес (и в следващата лекция) ще се спрем по-подробно на този въпрос. Повечето съвременни дистрибуции монтират файловите системи автоматично. Когато поставите флашка в USB порта на компютъра, в директорията/media се появява директория с името на флашката и веднага можете да работите с устройството (да четете файлове за запис). Преди (преди появата на подсистематаudev ), преди да работите с флаш устройство (и всяко друго блоково устройство), беше необходимо да се извърши операциятаmount. При свързване на флашка (за пример ще използваме флашка, имам предвид всяко блоково устройство), в системата (в директорията/dev ) се появява физическо устройство, с което можете да работите като блоково устройство. Например, прочетете информация с помощта на командатаdd. Но имаме нужда от достъп до файловата система на това устройство, а не до самото устройство, и затова трябва да извършим операция за монтиране.

Монтажът съдържа двеосновните компоненти: физическо устройство или дял на физическо устройство със специфична файлова система (КАКВО монтираме) иточка на монтиране (след това КЪДЕ монтираме). Точката на монтиране е обикновена директория навсякъде в системата, която ще бъде родител на файловата система на устройството, което се монтира. Директорията може да бъде празна (като правило) или с информация. Ако монтирате към директория с информация, тогава предишното съдържание на директорията ще бъде заменено от съдържанието на файловата система на монтираното устройство, но само за времетраенето на монтирането. Това е много важно да се разбере и запомни. Веднага след като демонтирате директория, информацията, която е била в нея преди монтирането, става отново достъпна. Но това е частен случай. Все пак в повечето случаи се монтират към празни директории.

За да монтирате, използвайте командатаmount. Най-често тази команда се използва под форматаmount -t type device dir, където след превключвателя-t се посочва типът на монтираната файлова система, след това устройството, което ще се монтира (device) и след това директорията (mount point - dir). Например има флашка - устройство/dev/sdc, има дял/dev/sdc1. Трябва да монтиратедяла - /dev/sdc1 - форматираната област, а не физическото устройство/dev/sdc. Командатаmount за този случай ще изглежда така:mount -t vfat /dev/sdc1 /media/flashka. Директориятаfleshka (точка на монтиране) трябва да съществува и ако не съществува, трябва да я създадете с командатаmkdir или да изберете друга съществуваща директория. Тъй като флаш устройството беше форматирано вFAT32, беше използван тип файлова системаvfat. Ако сте монтиралиntfs Windows дялове, тогава трябва да посочите файловата системаntfs. Всички поддържани типове файлови системи могат да бъдат намерени вman mount.

Демонтирането на файловата система на системата се извършва с командатаumount mount point device. От нашия пример за флаш устройствоumount /media/flashka илиumount /dev/sdc1. Командатаumount няма да може да демонтира устройството, ако то е заето от някаква програма. Например, ако отидете в директория на монтиран CD-ROM диск в една конзола и след това се опитате да изпълните командатаumount в друга конзола, ще получите грешка:

/linux$ umount /media/cdrom0 umount: /media/cdrom0: устройството е заето. (В някои случаи полезна информация за процеси, които използват устройството, се намира от lsof(8) или fuser(1))

Командатаlsof /media/cdrom0 ще покаже кои файлове са отворени от директорията /media/cdrom0 и от кого:

/linux$ lsof /media/cdrom0 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 4908 igor cwd DIR 11.0 2048 1664 /media/cdrom0 less 19323 igor cwd DIR 11.0 2048 1664 /media/cdro m0 по-малко 19323 igor 4r REG 11.0 32 1669 /media/cdrom0/config.txt

Както можете да видите, наистина има отворени файлове и директории. За да демонтирате правилно файловата система, трябва да затворите всички отворени файлове и да излезете от всички директории или да изпълните командатаumount с превключвателя-f -umount -f /media/cdrom0.

В тази връзка, следната ситуация често се среща от начинаещи потребители наlinux. CD-ROM се поставя в CD-устройството и файловете на диска се обработват. След това потребителят натиска бутона за устройство, за да извади диска и нищо не се случва. Някои дори претоварват компютъра, защото не разбират какво се случва. И работата е там, че дискът не може да бъде изваден, докато не станедемонтиран и не може да бъде демонтиран, защото от него се отварят файлове (използва се). Трябва само да затворите всички файлове, да излезете от всички директории и устройството ще се „предаде” на диска, когато натиснете бутона за изваждане. Ако дискът не се извади, тогава трябва да изпълните командатаumount за диска и след това да натиснете бутона за изваждане.

За да видите кои файлови системи вече са монтирани в системата, можете да изпълните командатаmount без опции или да изпълните командатаdf -a. Можете също да видите съдържанието на файла/etc/mtab. Командатаmount, когато монтира нова файлова система, добавя ред към този файл с информация за системата, която се добавя. И командатаumount съответно премахва реда, отнасящ се до немонтирания дял.

Искам да отбележа, че командите mount / umount не правят никакви промени в процеса на работа с файловите системи на устройствата и не могат да ги повредят. Сривовете най-често възникват в резултат на необичайни опити за демонтиране на файловата система, например натискане на бутонаreset на системния модул. Опитайте се да избегнете това действие и го използвайте само в най-крайните случаи. Ако командният ред е наличен, тогава преди да рестартирате компютъра чрез бутонаreset, изпълнете командатаsync. Тази команда казва на ядрото незабавно да запише цялата информация в буферната памет на съответните физически устройства. Това ще намали риска от загуба на информация.

Командатаmount може да монтира не само устройства, но и файлове. За това се използва устройство като/dev/loop. Като правило в системата има няколко подобни блокови псевдоустройства:

/linux$ ls -l /dev/loop* brw-rw—- 1 основен диск 7, 0 2009-11-1611:05 /dev/loop0 brw-rw—- 1 основен диск 7, 1 2009-11-16 11:05 /dev/loop1 brw-rw—- 1 основен диск 7, 2 2009-11-16 11:05 /dev/loop2 brw-rw—- 1 коренен диск 7, 3 200 9-11-16 11:05 /dev/loop3 brw-rw—- 1 основен диск 7, 4 2009-11-16 11:05 /dev/loop4 brw-rw—- 1 коренен диск 7, 5 2009-11-16 11:05 /dev/loop5 brw-rw—- 1 основен диск 7, 6 2009-11-16 11:05 /dev/loop6 brw-rw—- 1 коренен диск 7, 7 2009-11-16 11:05 /dev/loop7

Защо трябва да монтираме файлове? Най-очевидният пример е, когато имаме дисково изображение във форматiso. Тъй като е невъзможно директно да се монтира файл към директория, те процедират по следния начин: монтират файла към блоковото устройство/dev/loop и след това блоковото устройство/dev/loop се монтира към точката на монтиране. За да направите това, командатаmount трябва да се изпълни с ключа-o, през който да премине параметъраloop :

/linux$ sudo mount -o цикъл /home/igor/downloads/Ubuntu_DocsPack_9.04.2.iso /home/igor/linux/docpack/ igor@adm-ubuntu:

/linux$ ls ./docpack/ Документ html Jurnal_FullCircle.tar.gz Jurnal_OpenSource.tar.gz Ubuntu_Docs.tar.gz Jurnal_BlenderEmpire.tar.gz Jurnal_LGT.tar.gz readme.txt Video_Lesson.tar.gz

По този начин монтирахме файла Ubuntu_DocsPack_9.04.2.iso и вече имаме достъп до него като диск.

В заключение на тази лекция искам да покажа команда, която ще ни покаже всички секции на всички блокови устройства на системата. По-късно ще разгледаме по-подробно тази команда. За да видите всички дялове, които са в системата, въведете командатаfdisk -l от името на суперпотребителя:

Диск /dev/sda: 250,1 GB, 250059350016 байта 255 глави, 63 сектора/писта, 30401 цилиндъра Единици = цилиндри от 16065 * 512 = 8225280 байта Идентификатор на диск: 0xd4b146b8

Устройство Зареждане Начало Край Блокове ID Система /dev/sda1 * 1 2304 18506848+ 7 HPFS/NTFS /dev/sda2 2305 2472 1349460 e W95 FAT16 (LBA) /dev/sda3 2473 10263 62581207+ 7 HPFS/NTFS /dev/sda4 10264 30401 161758485 f W95 ext. (LBA) /dev/sda5 10264 12826 20587266 83 Linux /dev/sda6 12827 12947 971901 82 Linux swap / Solaris /dev/sda7 12948 18184 42066171 7 HPFS/NTFS /dev /sda8 18185 27967 78581916 7 HPFS/NTFS /dev/sda9 27968 30401 19551073+ 7 HPFS/NTFS

Диск /dev/sdb: 40.0 GB, 40020664320 байта 255 глави, 63 сектора/писта, 4865 цилиндъра Единици = цилиндри от 16065 * 512 = 8225280 байта Идентификатор на диска: 0xb292b292

Устройство Зареждане Начало Край Блокове ID Система /dev/sdb1 1 4660 37431418+ 83 Linux /dev/sdb2 4661 4865 1646662+ 5 Разширено /dev/sdb5 4661 4850 1526143+ 82 Linux swap / Solaris <1 1>/dev/sdb6 4851 4865 120456 83 Linux

Диск /dev/sdc: 4016 MB, 4016046080 байта 90 глави, 25 сектора/писта, 3486 цилиндъра Единици = цилиндри от 2250 * 512 = 1152000 байта Идентификатор на диска: 0x00000000

Зареждане на устройството Начало Край Блокове ID Система /dev/sdc1 4 3487 3917824 b W95 FAT32

Тази команда е добра, защото показва не само името на дяла, но и файловата система на дяла. Например файловата система на дял/dev/sdc1 е FAT32.