« Отговор #22 -: Dec 17, 2007, 11:44 »
Здарвей Dobrinium,
Ще се опитам на кратко да ти обясня процеса на монтиране на файлови системи под Линукс.
Първото нещо, което трябва да ти идва на ум , когато чуеш "Файлова система" е:
Структура от файлове и информацията за тях.
Как е реализирана тази структора, ти не трябва да се безпокоиш.
Задачата на файловите системи е да предоставят поискания от Линукс-ядрото файл(данни).
Линукс може да работи с доста видове файлови системи.
ISO9660 <-- Твоя случай. CD файлова с-ма.
Ext2, Ext3 <-- Файловата система проектирана за Линукс
FAT <-- DOS файлова с-ма. Използва се масово при Flash памети, MP3 pleyers и Фото апарати.
NTFS <-- файловата с-ма на Windows XP.
UDF <-- Файлова с-ма за DVD-ROM.
SMB <-- Споделени ресурси на Windows. (Windows share)
Reiser <-- Друга файлова с-ма за Линукс. В някой случай по-добра от Ext3.
JFS <-- 64 битова файлова с-ма от IBM. Проектирана за найстина големи структори от данни.
XFS <-- файловата система на Silicon Graphics.
Пълният списък може да откриеш в "MAN" страницата на програмата(командата) "mount".
За да можеш да използваш някоя файлова с-ма под Линукс, ти е необходим модул към ядрото(драйвер) за нея.
В повечето Линукс дистрибуции, ти не реябва да се безпокоиш за това.
В Линукс, достъпа до ВСИЧКИ файлове, става през една голяма дървовидна структора. Началото на, която е директорията "/".
Тези файлове могат да бъдат разделени на няколко устройства и управлявани от различни файлови с-ми.
Монтирането е процес при който файловата с-ма, намираща се някое устройство се закача към тази голяма дървовидна стуктура.
Командата "mount" се използва за монтиране на файлови с-ми. Съответно "umount" се използва за разкачането им.
Стандартния синтаксис на командата "mount" e следния:
mount -t type device dir
Това казва на ядрото да прекачи файлова с-ма от тип "type", намираща се на устройство "device", към директорията "dir".
След монтирането, директорията "dir" става корен на файловата система намираща се на устройството "device".
Директорията "dir" се нарича "точка на монтиране(закачане)"
Ето така изглежда на "живо":
mount -t ntfs /dev/hda1 /mnt
Тук монтираш файлова с-ма от тип "NTFS"(WinXP), която се намира на устройство "/dev/hda1" в директорията "/mnt".
Не знам дали ти е ясно, но в Линукс ВСИЧКИ устройства са асоциирани с ФАЙЛ.
/dev/hda e файла асоцииран с първия ти хард диск.
/dev/hda1 e файла асоцииран с първия дял на първия ти хард диск. Дяловете разбира се не са устройства но се асоциират с файлове за да се работи по-прозрачно с тях. Както и да е, когато някоя програма чете или пише във файла на някое устройство, тя всъщност изисква или предава данни към драйвера на въпросното у-во.
Монтирането е процес който е позволен само на "супер потребителя". Това е потребителя "root".
Това е така поради причини свързани със сигурността.
Знаеш, че Линукс е много потрбителска ОС. Това означава, че много потребители могат да работят на Линукс системата в един и същ момент. Затова не е проблем да се включиш като потребителя "root" по всяко едно време и да извършваш процедури които са позволени единствено на него.
Друга алтернатива е повищшаване на правата на текущия потребител до тези на потребителя "root". Това става с командта "su", която разбира се ще поиска паролата на "root". След изпълнението на "su" вече имаш достъп до цялята с-ма с превилегиите на "root".
По принцим файловите системи са изградени върху запомнящи устройства (хард дискове, флаш памети, CD, дискети разни и т.н).
Но понякога може да срешнем файлова с-ма намираща се във ФАЙЛ на ДРУГА файлова с-ма.
Тази магия се получава, след като изкопираме ЦЯЛОТО съдържанието на запомнящо устройство във файл.
Ако се интерисуваш как се правят тези магии, виж "man" страницата на програмата "dd".
Когато имаме файлова с-ма във файл, НЕ може да я монтираме по описания по-горе начин. Защото "mount" изисква устроиство като источник на файловата система.
В Линукс съществуват едни доста интересни абстрактни(мисловни) устройства. Това са така наречените "LOOP" устройства.
Задачата им е да представят файл асоцииран с тях, като устройство.
По подразбиране в Линукс има 8 "loop" у-ва.
/dev/loop0
/dev/loop1
...
/dev/loop7
Към всяко едно "loop" у-во може да има асоцииран(закачен) само 1 файл !
Асоциирането на файл към "loop" у-во става с програмата(командта) "losetup".
Синтаксиса е следния:
losetup device file
На "живо" изглежда така:
losetup /dev/loop1 /home/dobri/cd_copy.iso
където "/dev/loop1" e "loop" устройството с което искаш да асоциираш файла "/home/dobri/cd_copy.iso".
След като си асоциирал файла "/home/dobri/cd_copy.iso"(в който се смята че има изградена "iso9660" файлова с-ма),
със "loop" устройство "/dev/loop1", може съвсем спокойно да монтираме "/dev/loop1" с командта "mount".
mount -t iso9660 /dev/loop1 /mnt
Тук монтираш файлова с-ма от тип "iso9660"(CD файлова с-ма), която се намира на устройство "/dev/loop1"(асоциирано с файла /home/dobri/cd_copy.iso) в директорията "/mnt".
След монтирането, директорията "/mnt" ще бъде корен на ново-закачената файлова с-ма към голямото дърво "/", за което ти говорих в началото.
С други думи когато разлистиш "/mnt" ще се озовеш в началото на файловата система намираща се във файла /home/dobri/cd_copy.iso.
Има едно хубаво своисто на командата "mount", което ти спестява работата по асоцииране на файл към "loop" у-во.
Това свойство се извиква чрез опцията "loop". С тази опция изгледа на командата "mount" става такъв:
mount -t type -о option device dir
новото тук е "-o option", което казва на "mount", че искаш да подадеш допълнителна опция.
На живо се използва така:
mount -t iso9660 -o loop /home/dobri/cd_copy.iso /mnt
Тък казваш на "mount" да асоциира първото свободно "loop" у-во с файла "/home/dobri/cd_copy.iso" и полсе да монтира файловата ситема от тип "iso9660", която се намира на въпросното "loop" у-во в директорията "/mnt".
При този вариант "mount" първо изпълнява "losetup /dev/loopX /home/dobri/cd_copy.iso " за теб. И после довършва останалата част от процеса на монтиране.
Може би ще ти е интересно да научиш, че Konqueror също може да "отваря/разглежда" "ISO9660" файлове.
За целта напиши в адрес лентата
iso:/home/dobri/cd_copy.iso
Това съм го наблюдавал при SuSe 10.2 и 10.3. Не е изключено да работи и на Mandriva.
Възможное е и щракване с десния бутон върху *.iso файл и избиране на "Action/ISO9660 View" от появилото се меню.
За да ти просветне максимално добре процеса на монтиране/криптиране и ползване на файлови с-ми под Линукс, ти предлагам да разгледаш следните "man" страници:
mount, losetup, mtab, fstab, fs.