Путь от Windows к Linux: Почему здесь нет «Диска Д»?

Продолжим курс статей «Путь от Windows к Linux». В предыдущей своей статье я коротко рассказал о монтировании различных устройств памяти к Системе. И вот, в какой-то момент, когда у тебя оптические приводы железно работают, а флешки вставляются и извлекаются, и даже фотоаппарат достаточно редкой марки спокойно подключается и дает тебе возможность перекачать снимки на компьютер, у тебя появляется второй хард. Ты «слэйвом» подключаешь его к системнику, запускаешь систему и... ничего.

Мы, дилетанты, обычно, еще добрый час возимся с железом - колдуем с шинами, джамперами и тому подобным. Но потом догадываемся набрать в Яндексе «Linux второй жесткий диск» и узнаем, что, оказывается, его надо монтировать. А когда поисковик выдает страницы с набором команд в терминале или конфигах, многие отступают. Не надо отступать. Здесь все просто и доступно.

Почему Linux предлагает пользователю монтировать устройства памяти, я уже объяснял в предыдущей статье. Сейчас я хочу объяснить - как монтировать.

Непорочная система

Итак, все, кто сидел на ОС (принятое мной на этом сайте обозначение ОС семейства Windows), помнят, что подключенный к системе диск после перезагрузки ОС появляется в ней обозначенный какой-нибудь буквой (например, D, E, F и т.д.). Но эта система изначально порочна. Сначала деление жестких дисков на буквы производилось потому что майкрософтовский DOS не мог работать с диском больше 32 Mb. Поэтому появились разделы - системный диск C:\, логический диск D:\ и т.д.. А поскольку ОС до версии Millenium была лишь оболочкой для MS DOS, то этот принцип сохранился и до Win7. Обращение к двум разделам, к двум дискам не было эффективным. И компьютерщики даже придумали RAID массивы - систему, которая позволяла работать с несколькими дисками как с одним для ускорения работы.

Но вернемся к Linux. Повторюсь, здесь нет буквенных обозначений разделов, а есть единая структура файловой системы, и все разделы - жесткий диск целиком или разбитый на логические диски монтируются к СУЩЕСТВУЮЩИМ (о чем ниже) в файловой системе директориям (если быть точнее, файлам, т.к. разделение на файлы и директории существует лишь для удобства - прим. редактора).

Итак, монтирование второго и последующих хардов. Здесь от меня, наверное, ждут подробной информации о параметрах монтирования командой mount или записью строки в файл /etc/fstab с разъяснениями каждой функции. Но нет, если честно, этого добра в сети хватает. Я просто даю Copy/Paste для дилетантов.

Графический интерфейс
Всем, кто перешел с ОС на Linux, может показаться, что с помощью программ с графическим интерфейсом все делать удобнее. Я тоже так думал, но когда начал работать в консоли понял, что за консолью будущее. Может быть не в том виде, в котором она сейчас существует, но это самый удобный способ давать команды компьютеру (хороший пример еще убогой, но универсальной и современной командной строки - плагин Ubiquity для Firefox). Есть обезьяна, которая берет дубину и идет добывать еду - это человек с мышью. Он десять раз кликнет на разные места, чтобы скачать и установить программу. А есть человек разумный. Он будет разговаривать с компьютером, и просто напишет: sudo apt-get install имя_программы

Но тем не менее, для монтирования предложу две графические программы:
1. Редактор разделов GParted. По умолчанию он есть в репозиториях практически любого Linux дистрибутива.
2. Утилита для настройки параметров монтирования PySDM. Она есть в Universe репозиториях Ubuntu и в source code на оффсайте программы, который погуглив найти не проблема.
Интерфейсы этих программ достаточно интуитивны и просты в управлении. Но пока я с ними работал, понял что консоль и конфиги удобнее. Поэтому переходим к файлу /etc/fstab.

Файл fstab
Я опущу работу с командой mount, поскольку мне, как дилетанту, она еще ни разу не требовалась. Потому что монтируя диск командой mount после перезагрузки компьютера его придется этой же командой монтировать снова. А если уж я засунул диск в системный блок, то я хочу, чтобы он подключался автоматически. Для этого нужно прописать параметры монтирования в файл /etc/fstab.
Он состоит из строк. И в нем каждая строка монтирует определенное устройство хранения данных. Вот мои строки:

# / was on /dev/sda1 during installation
UUID=e623c925-c1ca-4eec-a3d0-144852307364 /               ext4    errors=remount-ro 0       1
# /home was on /dev/sda7 during installation
UUID=18cfaf6c-d071-47be-8262-28c108c9fbfd /home           ext4    defaults        0       2
# /var was on /dev/sda6 during installation
UUID=637b7214-bb03-478f-8156-d903e113d877 /var            ext4    defaults        0       2
# swap was on /dev/sda5 during installation
UUID=6df31e43-1ddc-41c8-bab6-d564c5a254f2 none            swap    sw              0       0
# /mnt is on /dev/sdb1
UUID=1ef17191-0347-486c-bc04-7ead8d775579 /mnt/40Gb    ext4    defaults    0    2

Строки, перед которыми стоит значок #, закомментированы. Они не читаются (игнорируются) компьютером - это пояснения для пользователя. Такие пояснения вы увидите практически в любом конфигурационном файле UNIX-систем. Например, разберем, что говорится в пояснении к моей второй строке # /home was on /dev/sda7 during installation. Это значит, что директория /home была расположена на разделе sda7 во время инсталляции системы. Что значат три буквы с цифрой? Это принятое в Linux обозначение разделов. Вы можете зайти в папку /dev и увидеть там файлы с такими названиями. Это и есть ваши диски - то, как их понимает файловая система. Буква «a» перед цифрой, например sda1, показывает, что этот раздел на первом вашем жестком диске, на том, куда вы устанавливали систему. Буква "b ", например sdb1 - это другое устройство (например, флешка или другой жесткий диск).

Раньше именно так - sda1, sdb1 - они писались в незакомментированных строках fstab. Но при большом количестве хардов, да еще и разных по типу - IDE и SATA - мог появляться глюк. При подключении очередного диска, другие диски иногда меняли свои названия в каталоге /dev, из-за чего монтировались ни туда, куда надо, или вообще не монтировались. Поэтому в последних ядрах было решено подключать жесткие диски по их уникальному номеру UUID (Universally Unique IDentifier) - именно его вы видите в моих строчках монтирования дисков.

Четыре шага до монтирования
Итак, приближаемся к логическому завершению всего этого словоблудия.
Вы купили диск. Вам надо примонтировать его в Linux. Для этого необходимы четыре вещи:
1. Убедиться в том, что система видит подключенный вами диск, для этого можно набрать в консоли:

sudo fdisk -l

Эта команда выведет таблицу, похожую на строки файла fstab. Если в самом низу таблицы вы увидите строчку, которая описывает параметры диска /dev/sdb, значит можно идти дальше.
2. Создание раздела жесткого диска.
Если в выше обозначенной таблице ваш диск обозначен, как /dev/sdb без цифры 1, значит раздел не создан. Для создания раздела набираем в консоли:

sudo cfdisk /dev/sdb

Появится псевдографический интерфейс программы cfdisk. В нем внизу с помощью стрелок выбираем пункт [New], создать раздел. В новом окне выбираем [Primary]. Потом выбираем [Write]. И ручками подтверждаем - пишем yes. В результате будет создан раздел sdb1. Теперь надо его отформатировать. Это можно сделать в той же cfdisk. Но специальной командой проще.
3. Форматирование раздела жесткого диска. Набираем в консоли:

sudo mkfs -t ext4 /dev/sdb1

Не буду здесь растекаться мысью по древу. Если немножко подумать, то смысл команды станет ясен. Теперь осталось узнать UUID.
4. Определение UUID.
Для этого набираем в консоли:

blkid

Она выведет UUID всех ваших разделов. Нам нужен UUID, прописанный напротив нашего раздела /dev/sdb1. Теперь можно монтировать.

Все по defualts
Открываем для редактирования файл fstab:

sudo gedit /etc/fstab

Прописываем в файл /etc/fstab команду монтирования диска последней строкой:

UUID=1ef17191-0347-486c-bc04-7ead8d775579 /media/Music    ext4    defaults    0    2

Если перевести эту строчку на русский, получится:
UUID=1ef17191-0347-486c-bc04-7ead8d775579 - монтировать диск с таким-то UUID
/media/Music - в такую-то папку
ext4 - с такой-то файловой системой
defaults - с параметрами по умолчанию - с разрешенным запуском исполняемых файлов, с автоматическим монтированием раздела при загрузке компьютера, с правами на чтение и запись для пользователя, с включенной опцией асинхронного ввода/вывода, что дает возможность системе распределять нагрузку, с записью времени последнего доступа к файлу... и с несколькими другими параметрами. Их обозначение и расшифровка, наверное, будут лишними в этой статье. Кому интересно, тот сам найдет и разберется.
0 - без резервного копирования данных
2 - с проверкой раздела на наличие ошибок после того, как будет проверен загрузочный диск.

И напоследок, советы от дилетанта дилетантам. Будьте внимательны при написании команд. Любая строчка в консоли или конфиге это четко составленное предложение, которое, как я показал выше, можно перевести на русский язык. Если у вас что-то не получается, виноват не компьютер, а вы неправильно написали команду. Поэтому надо просто подумать, какую логическую ошибку вы допустили. Задавайте вопросы яндексу (если он не отвечает, значит вы неправильно сформулировали вопрос, или проблема такая примитивная, что ей даже не уделили внимание), сисадмину на работе, кому угодно, но попробуйте понять, где ошибка и сделать правильно. Так мы, дилетанты, познаем виртуальный мир. И с каждым открытием мы становимся умнее.

Я при монтировании диска допустил две ошибки. Первая ошибка - начал монтировать несколько дисков в одну папку. И не понимал, почему у меня ничего не получается. Я несколько дней искал ответ. Даже интернет мне не помог. Потом отправил свои строчки одному программисту и он объяснил - когда какое-либо устройство в папку, её содержимое заменяется на содержимое смонтированного устройства. Для линуксоидов это аксиома, для меня стало открытием. Вторая ошибка - монтировал диск к несуществующей папке. Потом сам догадался. Если вы прописываете какой-то командой и срочкой в конфиге путь к каталогу, обязательно посмотрите, существует ли он.

Ну, вот и все. Начало положено. Если же вам потребуется от харда нечто большее, Linux дает возможность прописать любые параметры как создания раздела или разделов, их форматирования и их монтирования.

Комментарии

Аватар пользователя Алексей

Народ. а можно подробнее - что значит, что разделение на файлы и директории существкет только для удобства... Как же у меня в директории, которая на самом деле файл хранятся другие файлы?

Аватар пользователя del

Народ. а можно подробнее - что значит, что разделение на файлы и директории существкет только для удобства... Как же у меня в директории, которая на самом деле файл хранятся другие файлы?

Ну, хотя бы на Википедии можно об этом прочитать упоминание. А если глубже хотите понять, это уже нужно искать. Не помню, где на подобное натыкался, но такое представление у меня сложилось лет с 10, наверное.

Аватар пользователя freeconst

Папка — это файл со списком ссылок на другие файлы, которые, в свою очередь, также могут содержать ссылки. Таково устройство файловой системы.

Аватар пользователя X.3.

При наличие рейда все будет не так. Мой страйп на интеле из графических программ увидел только diskmanager. ну и в fstab что то типа:

/dev/mapper/isw_cfibfjbdfi_Volume01	/media/System	ntfs-3g
Аватар пользователя del

В данной статье автор не рассматривал RAID, но спасибо, что упомянули.

Аватар пользователя Alex

Автор не понимаете базовых вещей.
Для того что бы написать sudo apt-get install человеку нужно долго и нудно учить что такое sudo что такое apt-get итд
То есть учиться разговаривать на языке МАШИНЫ.
Можно кликнуть хоть 50 раз и это будет гораздо легче и проще. Нет у командной строки будущего. А вот у тыканья пальцем в экран на иконку есть. И никак иначе. Это машина должна подстраиваться под меня а не я под нее.
Например статью которую он написал поняли только те кто и так знал хорошо линукс.
Я специально дал ее почитать 5 человекам не имеющим опыта в линуксе. НИ ОДИН ничего не понял.

Аватар пользователя del

Если Вы действительно считаете так, как написали в комментарии, то мне Вас очень жаль. Ленивым в жизни трудно приходится. Я уж не буду говорить, что после освоения терминала, общение с ОС без него представить трудно, и что для запоминания команд apt-get нужны всего пара минут, юным кликателям это не по зубам. Поэтому ленивым и с отсутствием собственного мнения людям могу порекомендовать отличный сайт - microsoft.com. Вы же сюда случайно попали, насколько я понял? (это риторический вопрос)

Добавить комментарий