Форум программистов, компьютерный форум, киберфорум
Debian, Kali Linux, Raspbian
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/48: Рейтинг темы: голосов - 48, средняя оценка - 4.85
NeoMatrix
Модератор
Эксперт NIX
6029 / 1586 / 94
Регистрация: 24.05.2011
Сообщений: 11,624
Записей в блоге: 6
1

Расширение системных каталогов в дополнительные разделы

17.02.2013, 16:27. Просмотров 8996. Ответов 5
Метки нет (Все метки)

В разных случаях возникает необходимость расширить некоторые системные разделы, такие как /usr, /usr/local, /var и прочие, лежащие в корневом разделе - в /. Например, вы купили новый HDD, перенесли ваши коллекции фильмов, музыки и прочего на новый, а освободившееся место решили добавить к / без форматирования, его переноса и прочих низкоуровневых действий.
Что мы сделаем? Так как данных на освободившемся месте нет, мы его отформатируем на несколько логических разделов. Например /dev/sda7, /dev/sda8, /dev/sda9 и тд. в зависимости от ваших нужд.
Но для начала небольшой экскурс в файловую структуру linux:
Файловая система Linux
/ <root>
-- /bin
-- /boot
-- /dev
-- /etc
-- /home
+ -- /home/username
-- /lost+found
-- /lib
-- /media
-- /mnt
-- /opt
-- /proc
-- /root
-- /sbin
-- /srv
-- /sys
+ -- /sys/block
+ -- /sys/bus
+ -- /sys/class
-- /tmp
-- /usr
+ -- /usr/bin
+ -- /usr/games
+ -- /usr/include
+ -- /usr/lib
+ -- /usr/local
+ -- /usr/sbin
+ -- /usr/share
+ + -- /usr/share/icons
+ + -- /usr/share/doc
+ -- /usr/src
-- /var
+ -- /var/cache
+ -- /var/games
+ -- /var/lib
+ -- /var/lock
+ -- /var/log
+ -- /var/spool
+ -- /var/www
-- Раздел <swap>


Подробное описание структуры файловой системы Linux
/
Корневой раздел.
/bin
В этом каталоге хранятся основные команды операционной системы, такие как команды оболочки и команды файловой системы (ls, cp и т.д.).
/boot
Здесь хранятся образы ядер Linux и менеджер загрузки: grub, lilo и т.д.
/dev
Директория содержит файлы устройств, подключенные к операционной системе.
В Linux вообще всё рассматривается, как файл, даже различные устройства, такие как принтеры, жёсткие диски, сканеры и т.д. Для получения доступа к определённому устройству, необходимо чтобы существовал специальный файл. Когда кто-либо или что-либо в системах Linux обращается к какому-то устройству, то он обращается к файлу этого устройства.
/etc
В этой директории находится основная часть конфигурационных файлов самой операционной системы (настройки сети, список пользователей, групп и т.д.) и различных программ (Apache, Samba и т. д.).
/home
В этом месте должна размещаться вся личная информация пользователей системы.
Почему должна? Потому что владелец компьютера может хранить свою личную информацию в любом понравившемся ему месте. В целях безопасности самой операционной системы и пользовательских данных хранить последние строго рекомендуется в директории /home. Для получения более высокой надежности операционной системы и сохранности пользовательской информации директорию /home рекомендуется выделить в отдельный раздел жесткого диска.
/home/username
Это Домашняя папка пользователя usermame. В ней хранится пользовательская часть конфигурационных файлов (настройки пользовательских программ) и вся личная информация пользователя.
Linux является многопользовательской системой и поэтому каждый пользователь имеет уникальный каталог для персональных файлов. Этот каталог называется Домашней папкой пользователя. Домашняя папка суперпользователя root располагается в корне файловой системы (о ней немного ниже).
Такое разделение пользовательских директорий от файлов операционной системы упрощает резервирование данных и повышает надежность самой операционной системы.
/lost+found
В lost+found скидываются файлы, на которых не было ссылок ни в одной директории, хотя их inod не были помечены как свободные. Допустим при удалении файла из директории произошёл сбой (выключилось питание), то в системе останется потерянный inod, который вроде как и указывает на корректный файл, но этот файл не содержится ни в одной директории. В ext2 и других нежурналируемых файловых системах задача восстановления таких файлов ложится на fsck. Он находит inod, на которые нет ссылок, и создаёт на них ссылки в lost+found. После этого пользователь сможет просмотреть файлы и при необходимости переместить их куда надо, вернув нужные имена или удалить.
В ext3 и в других журналируемых файловых системах fsck просматривает журнал и видя, что операция завершилась не полностью, откатывает ее. Поэтому потерянных inod в журналируемых файловых системах находиться меньше.
/lib
Эта директория предназначена для хранения системных библиотек, необходимых для работы программ из директорий /bin и /sbin и операционной системы вцелом.
/media
Директория, используемая для автоматического монтирования различных устройств USB-накопителей, CD-ROM и т.д. При вставке в привод CD-ROM диска он автоматически подключается во вложенный каталог этой директории.
/mnt
Обычно эта директория используется для ручного подключения устройств. В эту директорию командой mount «руками» монтируются различные USB-накопители, CD-ROM и т.д.
/opt
Директория, в которой обычно размещаются установленные программы, имеющие большой дисковый размер или вспомогательные пакеты (например /opt/openoffice.org).
/proc
/proc — это директория, к которой примонтирована виртуальная файловая система procfs. Различная информация, которую ядро может сообщить пользователям, находится в "файлах" каталога /proc. Например, в файле /proc/modules находится список загруженных модулей ядра. А в файле /proc/cpuinfo — информация о процессоре компьютера.
/root
Это домашний каталог или Домашняя папка суперпользователя. Эта директория фактически ничем не отличается от директории обычного пользователя. Данная директория по умолчанию всегда расположена в корневом каталоге файловой системы. Это было сделано для предотвращения проблем с доступом к директории /home. В случае когда к каталогу /home по какой-то причине невозможно получить доступ, в системе всегда есть возможность залогиниться под учетной записью суперпользователя, для решения возникших проблем с доступом.
/sbin
Основные системные программы для администрирования и настройки системы (iptables, ifconfig и т.д.).
/srv
Параметры, которые специфичные для окружения системы. Чаще всего данная директория пуста.
/sys
/sys — это директория, к которой примонтирована виртуальная файловая система sysfs, которая добавляет в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. В версии ядра ниже 2.6 не использовалась.
/sys/block
/sys/block содержит директории всех блочных устройств, присутствующих в данный момент в системе.
/sys/bus
В этой директории находится список шин, определенных в ядре Linux (eisa, pci и т.д.).
/sys/class
Каталог содержит список группированных устройств по классам (printer, scsi-devices и т.д.).
/tmp
Временное хранилище данных. Аналог папки в ОС Windows — C:/Windows/Temp. Все пользователи имеют права чтения и записи в этом каталоге.
/usr
В этом каталоге хранятся все установленные пакеты программ, документация, исходный код ядра и система X Window. Все пользователи кроме суперпользователя root имеют доступ только для чтения. Может быть смонтирована по сети и может быть общей для нескольких машин.
/usr/bin
Директория дополнительных программ для всех учетных записей.
/usr/games
Каталог для размещения доступных компьютерных игр в системе.
/usr/include
Заголовочные файлы С++.
/usr/lib
Системные библиотеки для программ, расположенных в директории /usr.
/usr/local
По стандарту /usr должен быть общим для нескольких компьютеров и смонтирован по сети, а /usr/local должен содержать установленные пакеты программ только на локальной машине (к примеру, /usr - бюджет семьи, а /usr/local - личный кошелек каждого). Но чаще всего директория /usr/local используется для установки программ, которые не предназначены для конкретного дистрибутива (к примеру для пакетного дистрибутива Ubuntu в /usr находятся "родные" установленные пакеты, а /usr/local находятся собранные пакеты из исходников).
/usr/sbin
Дополнительные системные программы.
/usr/share
Общие данные установленных программ.
/usr/share/icons
В каталоге находятся все иконки системы.
/usr/share/doc
Директория, в которой обычно находится справочная документация по установленным программам.
/usr/src
Исходные коды (например, здесь располагаются исходные коды ядра).
/var
Это каталог для часто меняющихся данных. Здесь находятся журналы операционной системы, системные log-файлы, cache-файлы и т. д.
/var/cache
В этом месте хранятся все кэши различных программ.
/var/games
В этом месте расположены файлы с игровыми достижениями.
/var/lib
Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.).
/var/lock
Здесь лежат lock-файлы, указывающие на занятость некоторого ресурса.
/var/log
В этом месте хранятся все log-файлы.
/var/spool
Задачи, ожидающие обработки (например, очереди печати, непрочитанные или не отправленные письма, задачи cron и т. д.).
/var/www
В этом месте размещаются Web-страницы для сервера Apache.
Раздел <swap>
Раздел виртуальной памяти для увеличения скорости обмена с оперативной памятью.

Сейчас мы определимся какой раздел и под какую директорию мы будем выделять.
Например, раздел sda7 у нас имеет размер 10 Гб и ФС ext3, sda8 - 15 Гб ext3, а sda9 - 20 Гб и ФС ext4.
Самый "тяжёлый" каталог в Linux (за исключением, конечно же, пользовательских директорий) это /usr. Под него и логичнее всего будет отвести sda9, ещё "массивным" бывает /var, его мы поселим на sda8, а sda7 пускай у нас будет занят каталогом /opt.
Итак, давайте всё запишем в какой-нибудь файлик, например, в /home/username/file
Bash
1
2
$ touch /home/username/file
$ nano /home/username/file
nano - /home/username/file

/dev/sda7 /opt ext3
/dev/sda8 /var ext3
/dev/sda9 /usr ext4
А теперь, когда всё готово, начинаем самое основное, для чего мы это всё затеяли - добавляем пространство к системным директориям. Самое разумное будет это делать в однопользовательском режиме. Для этого перезагрузимся и выберем вариант загрузки "rescue mode", введём пароль рута и... поехали!
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mkdir /tmp/opt # создадим временную папку
ls /opt # заглянем, что там лежит
mount /dev/sda7 /tmp/opt # смонтируем устройство в эту временную папку
ls /tmp/opt # заглянем, проверим, не лежит-ли там чего лишнего для нас. вполне вероятно, что мы 
# там обнаружим lost+found
lost+found
rm -rf /tmp/opt/lost+found # удалим его, тк. он нам не нужен
cp -ax /opt /tmp # копируем содержимое каталога /opt в наш новый раздел. выбираем директорию на 
# уровень выше тк. это обусловлено особенностью cp - она копирует в указанный каталог, где создаёт 
# папку назначения, одноимённую с оригиналом. мы её "обманываем" - каталог с таким именем уже есть, 
# значит его создавать не нужно, причём он находится в известном нам разделе диска. таким образом 
# мы копируем в корень нужного раздела
umount /dev/sda7 # отмонтируем устройство
rm -rf /tmp/opt # теперь можно удалять временную папку
rm -rf /opt # и оригинал
mkdir /opt # воссоздадим системную папку
mount /dev/sda7 /opt # подключаем раздел к этой точке монтирования
ls /opt # проверим нашу работу
Сейчас повторяем процедуру с sda8 и /var соответственно:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ls /var
backups cache games # ну и остальные...
mkdir /tmp/var
mount /dev/sda8 /tmp/var
ls /tmp/var
lost+found
rm -rf /tmp/var/lost+found
cp -ax /var /tmp
umount /dev/sda8
rm -rf /tmp/var
rm -rf /var
mkdir /var
mount /dev/sda8 /var
ls /var
Ну и напоследок - домашнее задание: Повторить всё то же самое с sda9 и /usr самостоятельно.
А теперь вспомним, что мы сохраняли некий файлик в /home/username/file Для чего? А вот для чего: Мы ведь не будем при каждой перезагрузке монтировать все эти разделы вручную! Значит, пропишем их в /etc/fstab
Bash
1
# nano /etc/fstab
nano - /etc/fstab

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

# добавим несколько своих строк записи в строках разделяются клавишей [tab]
/dev/sda7 /opt ext3 defaults 0 2
/dev/sda8 /var ext3 defaults 0 2
/dev/sda9 /usr ext4 defaults 0 2
Не забудем сохранить файл /etc/fstab , а также удалить /home/username/file - он нам более не нужен.
Теперь можно перезагрузить машину - ваши каталоги /opt /var и /usr вынесены с рутового раздела.
4
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 16:27
Ответы с готовыми решениями:

Удаление системных каталогов
Приветствую. Когда-то давно пытался поставить семёрку, но то ли дистриб был кривой, то ли железо ей...

Вывести все пути системных каталогов
Всем добрый день, помогите пожалуйста освоить задачку на C#: Суть вот в чем - нужно написать...

Lenovo Ideapad Z580 разбить разделы(создать дополнительные)
Здравствуйте! Купили ноут , а жёсткий диск уже разделён на 4, на одном винда(С-653,44Гб) , на...

Как правильно поделить винчестер на основные или дополнительные разделы?
Как правильно поделить винчестер, на основные или дополнительные разделы? Вот например у меня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
11460 / 6580 / 595
Регистрация: 09.09.2009
Сообщений: 25,999
17.02.2013, 16:58 2
один раз разобраться что такое lvm и все ...
0
Amet13
1355 / 1067 / 110
Регистрация: 16.03.2012
Сообщений: 4,549
27.06.2014, 11:07 3
Dmitry, что такое lvm?
0
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
11460 / 6580 / 595
Регистрация: 09.09.2009
Сообщений: 25,999
27.06.2014, 11:59 4
Имелся в виду
http://ru.wikipedia.org/wiki/LVM
1
Amet13
1355 / 1067 / 110
Регистрация: 16.03.2012
Сообщений: 4,549
27.06.2014, 12:40 5
Теперь понял.
0
NeoMatrix
Модератор
Эксперт NIX
6029 / 1586 / 94
Регистрация: 24.05.2011
Сообщений: 11,624
Записей в блоге: 6
15.03.2017, 23:07  [ТС] 6
Цитата Сообщение от Dmitry Посмотреть сообщение
один раз разобраться что такое lvm и все .
Не спорю, можно для описанных в примере целей воспользоваться возможностями LVM. Но могут быть и другие необходимости перенести/расширить какой либо системный каталог или просто расширить раздел / , оставив ему строгие физические рамки.
Этот же способ может подойти и для решения некоторых других проблем.
В смысле: я надеюсь, что данный алгоритм действий кому-то может пригодиться. А уж для чего именно - вопрос другой.
0
15.03.2017, 23:07
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.