Подготовка к установке Linux. Файловые системы и их структура.

После публикации введения о Linux меня попросили побыстрее рассказать об установке этой операционной системы. Вобщем то  5 раз тыкнуть мышкой и готово. Но с другой стороны, это похоже на предложение рассказать о Солнце.

Можно сказать, что это просто желтый круг над головой, на который невозможно смотреть. Но я предпочел бы, что бы вы знали, что Солнце — это звезда, желтый карлик, представляет из себя раскаленный шар внутри которого постоянно проистекают термоядерные реакции, и что потом поток плазмы, излучения и электромагнитных волн летит к Земле, где отклоняется электромагнитным полем Земли, и тд.

Linux такой разный

Отступление: Если вы учили Астрономию еще в школе, то будете удивлены насколько сильно изменились познания человечества за этот небольшой период. Мы уже живем не просто в солнечной системе, где 9 планет и последняя Плутон, планет теперь 8 и Плутон не одна из них. И за ним глубоко в космосе располагается пояс Койпера — материал оставшийся после формирования солнечной системы, именно оттуда иногда и прелетают разные метеориты, которые примеряют на нас судьбу динозавров.

В процессе установки Linux самое сложное — разбиение диска под систему. Я расскажу об этом, как положено, чтобы вы знали что и почему. Т.е. Солнце у нас не желтое пятно, а шар из раскаленного газа.

Основа файловой системы — это ее корень, он обозначается значком /.

К этому корную присоединяются папки-ветви. В итоге получается дерево файловой системы. Вы можете быть в какой угодно ветке, но переместившись в корень /, другое название root, вы увидите всю системы целиком.

Возможно вам это напомнило древовидную структуру файлов в Windows или DOS. Там тоже есть корневая директория внутри которой и располагается все остальное.
Но различие на самом деле очень большое и вот в чем.
Это не просто папки присоединенные к корню, а каждая папка имеет свою функциональность.


Например в папке boot хранятся загрузочные ядра операционной сиситемы. Да, в Linux может быть много ядер и вы можете выбирать при загрузке каким ядром загрузиться — релтаймовым, лоулатенси, старым, новым и тд.
Если вы видите надпись
/boot
то / — это обозначение корня.
а /boot показывает, что папка boot присоединена к корню файловой системы.
Другая папка носит название dev, расположена аналогично в
/dev.
Так как в Линукс всё — это файлы, то в этой папке хранятся файлы устройств — жестких диском, принтеров, сд-ромов. Хотите увидеть нулевой сектор жесткого диска — просто откройте в редакторе файл этого устройства — sda1.
Ну в обычном редакторе конечно такого размера файл открыть сложно, но нужно просто использовать читалку, которая умеет выводить по страницам, например more.
more /dev/sda1
Оба на, мы как будто хакеры, так как в Windows для этого потребовалось бы очень крутое программное обеспечение.

Такое например

Еще есть папка /etc — в ней хранятся конфигурационные файлы разных программ. Но если вы скопируете конфигурацию нужной программы в свою домашнюю папку, то программа начент использовать файл именно из домашней директории. Что то накосячили с настройками — просто сотрите файл из домашней папки и программа воспользуется базовой конфигурацией из файла в /etc.
Домашние папки разных пользователей хранятся в папке /home.
Если системой пользуется 2 пользователя, то в папке home будет две разные домашние папки, у каждого своя.
Чтобы один пользователь не мешал другому, у каждого пользователя автоматически назначены права, только пользователь которому принадлежит конкретная папка может в ней что то делать.

Этот разный Linux.

Так же в системе есть особый суперпользователь, который может делать вообще все. Если вы и есть главный в своем компьютере, то вы можете когда нужно, пользоваться этими суперправами.
Есть и другие папки
/var для хранения логов и интернет-сайтов
/bin — для исполнительных файлов и тд.

Но честно говоря нет нкиакой нужды запоминать что у какой программы где находится, так как если вам это понадобится, то можно задать запрос, типа «где она» — whereis?
Например посмотрим где находится программа музыкального проигрывателя audacious:
whereis audacious
И вам покажут:
audacious:
/usr/bin/audacious
/usr/share/audacious
/usr/share/man/man1/audacious.1.gz

В Windows что то подобное тоже есть:

Посмотреть мануал на эту программу и любую другую можно командой man:
man audacious
Можно обойтись и графическим интерфейсом, ничто вас не заставляет что то писать в консоли.
Но порой тспользование графической морды кажется идиотизмом.

Такой разный Linux!

Например, чтобы сменить ip адресс вы запускаете большую графическую программу настройки нетворк менеджер и в нем во всяких менюшка меняете значения и потом сохраняетесь.
Похоже на Windows правда?
А знаете, что на самом деле вы делаете?
Всего лишь вводите одну несчастную строчку в текстовой файл.
Чтобы изменить ip адрес на 192.168.1.8 нужно просто вписать/изменить в тектовой файл interfaces расположенный в /etc/network/ строчку на:
address 192.168.1.8
Вы на самом деле просто вводите несчастную строчку… и все…
Может вам будет смешно услышать, но чтобы изменить ip-адресс я мог и вовсе не открывать никаких файлов.

А мог бы сразу сказать, что у меня такой вот айпишник.
Но для этого мне нужно было бы узнать как в системе зовется моя сетевая карта.
Что я увижу написав
ip addr
и вот ответ:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:24:21:24:81:c6 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.5/24 brd 192.168.10.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.10.244/24 brd 192.168.10.255 scope global secondary ens33:0
valid_lft forever preferred_lft forever
inet6 fe80::224:21ff:fe24:81c6/64 scope link
valid_lft forever preferred_lft forever

Я вижу что первый интерфейс lo — это обычная сетевая петля, но второй интерфейс называется ens33 (закодированное физическое расположение платы внутри корпуса — третий разъем и тд) и сейчас у меня айпишник 192.168.1.5.
А я хочу 8.

Это тоже Linux

Да легко это сделает на лету команда ifconfig.
ifconfig ens33 192.168.1.8 netmask 255.255.255.0
Все, айпишник поменял.
А мог бы не менять, а присвоить сетевой карте еще один.
Вы не ослышались, я могу присвоить одной сетевой карте много айпи-адресов — вы то будете думать, что отпарвляете данные на разные компьютеры, а это не так.
Вот так я могу задать еще один адрес той же сетевой карте
ifconfig ens33:0 192.168.1.15
И оба будут пинговаться.


Разумеется я могу дать этим «картам» любой мак-адресс, могу его сгенерировать на основе подлинных адресов (macchanger) и тд.
Я это все веду к тому, что каждая папка в корне не так проста как кажется. Например папка /proc хотя и кажется, что содержиткакие то файлы, но в Linux всё файлы. Даже то, что сейчас творится в памяти вашего компьютера, даже то как работает ядро.
Все это мы можем посмотреть в папке /proc
Например объем памяти?
cat /proc/meminfo

Какой процессор?
cat /proc/cpuinfo

Какая звуковая карта? Да без проблем
cat /proc/asound/card0/pcm0c/info

Я могу посмотрет имя компьютера
cat /proc/sys/kernel/hostname

Ой, так это же просто файлы, я же могу и изменить имя на лету
echo drugoe_name> /proc/sys/kernel/hostname

Я даже могу посмотреть какой планировщик задач ядра используется в данный момент и на лету изменить его на другое.
Посмотреть:
cat /sys/block/sda/queue/scheduler
Результат:
noop deadline [cfq]

Ага, по умолчанию планировщик cfq — справедливый.
Если у вас твердотельный накопитель, то можно выбрать простейший шедулер noop, а если ядро релтаймовое, то наверное лучше подойдет deadline.
Его и активируем
echo deadline> /sys/block/sda/queue/scheduler

Проверим:
cat /sys/block/sda/queue/scheduler
Видим:
noop [deadline] cfq

Да, теперь планировщик задач ядра другой — deadline.
Если вы собираете ядро сами, то можно наложить патчи и с другими планировщиками, например он Кона Коливаса.

Но такой длинный рассказ про папки был вот почему.
Когда вы при инсталяции Linux дойдете к моменту разбития диски на разделы, то вас спросят, как вы хотите разделить диск.
Минимально можно разделить диск на 2 раздела — это / и swap.
/ — это сам корень и соответственно с ним все папки будут хранится на этом же диски.
А swap — это файл подкачки, если у вас мало оперативной памяти, то она будет компенсированна этим разделом.
Т.е. вы разбиваете на 2 раздела, один большой, на сколько не жалко и второй раздел под свап размером 2-8 Гб.
Но вы можете прочитать или вам могут предложить разбить на большее количество разделов, поместив папки /boot, /var, /home и др на разные разделы диска.
Для чего это нужно и нужно ли вообще?
Вот представьте у вас не домашний компьютер, а интернет-сервер, на котором расположен ваш личный или вашей организации сайт. И все что происходит на сайте пишется в логи в папку /var.

И вот в какой то момент, через пару тройку лет, когда вы уже забыли что у вас, где и куда пишется, логи наконец заполнили весь диск. А так как ваша папка /var расположена на том же разделе, что и система, то места у вас свободного стало ноль. От этого перестали устанавливаться обновления, сохраняться письма и тд.
А если бы вы выделили под var отдельный раздел, то просто заполнился бы тот раздел под завязку, да, логи интернет-сайта бы писаться перестали (некуда), но систему это никак бы не затронуло.
Из этого следует, что в этом случае лучше var закинуть на другой раздел, а для домашнего ПК — этого не нужно.
Так же интересна структура папок тем, что это не просто папки в корне на вашем диске, а сам корень то на самом деле гипотетический. Он не привязан ни к какому конкретнмоу диску, а вот папки привязываются к нему. При этом папки эти могут быть как целыми разделами этого же жесткого диска, так и вообще другими жесткими дисками или некими интернет-хранилищами и тд.
/boot раньше распологали на отдельном диске, потому что там были ограничения у загрузчиков, где именно должны были быть эти файлы, но сейчас в этом нет особого смысла. Если только /boot не находится на вообще другом диске.

Имеет некоторый смысл делать домашнюю папку /home на отдельном разделе или отдельном жестком диске.
Например вы выделили раздел 80 гб под / и 300 гб под /home. Потом решили попробовать установить другой дистрибутив Линукс. При установке вы стираете весь раздел на 80гб и ставите в него систему, но указываете, что папка /home находится на разделе в 300гб и ее конечно не форматируете. И вот уже у вас новая система, но ваша домашняя папка на месте, все нужные файлы на месте.
Поэтому для дома скорее всего достаточно разбить на 2 раздела / и swap или на 3:
/ , swap и /home
Желательно, чтобы это были первичные разделы диска (по крайней мере /).
Останется только выбрать на какой диск (если у вас их несколько) записать загрузчик — выбирете тот с которого всегда и загружались.
Так же вам нужно будет отформатрировать при первой установке разделы.
Linux не ставится на ntfs разделы, у Linux свои файловые системы,которые работают лучше и более совершенны.

Тест файловых систем — больше — лучше.

Для / выбирете файловую систему ext4, а для любителей экспериментов можно попробовать xfs или ext3.
Для файла swap никакой файловой системы не выбирается, просто указывается, что это файл подкачки.
Мне кажется, что я немного рассказал о файловом устройстве Linux и пора собственно и начинать установку Linux на ваш компьютер, о чем и будет следующая часть.

Оставьте первый комментарий

Отправить ответ