Форум программистов, компьютерный форум, киберфорум
Наши страницы
Debian, Kali Linux, Raspbian
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/35: Рейтинг темы: голосов - 35, средняя оценка - 4.57
NeoMatrix
Модератор
Эксперт NIX
5466 / 1283 / 88
Регистрация: 24.05.2011
Сообщений: 10,620
Записей в блоге: 2
1

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

17.02.2013, 16:27. Просмотров 6776. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 16:27
Ответы с готовыми решениями:

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

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

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

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

Архивирование определённых файлов из разных каталогов с сохранением структуры этих каталогов
Здравствуйте. Суть задачи. Есть определенный каталог (C:\X), в котором в...

5
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10852 / 6163 / 485
Регистрация: 09.09.2009
Сообщений: 24,589
17.02.2013, 16:58 2
один раз разобраться что такое lvm и все ...
0
Amet13
1355 / 1065 / 110
Регистрация: 16.03.2012
Сообщений: 4,549
27.06.2014, 11:07 3
Dmitry, что такое lvm?
0
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10852 / 6163 / 485
Регистрация: 09.09.2009
Сообщений: 24,589
27.06.2014, 11:59 4
Имелся в виду
http://ru.wikipedia.org/wiki/LVM
1
Amet13
1355 / 1065 / 110
Регистрация: 16.03.2012
Сообщений: 4,549
27.06.2014, 12:40 5
Теперь понял.
0
NeoMatrix
Модератор
Эксперт NIX
5466 / 1283 / 88
Регистрация: 24.05.2011
Сообщений: 10,620
Записей в блоге: 2
15.03.2017, 23:07  [ТС] 6
Цитата Сообщение от Dmitry Посмотреть сообщение
один раз разобраться что такое lvm и все .
Не спорю, можно для описанных в примере целей воспользоваться возможностями LVM. Но могут быть и другие необходимости перенести/расширить какой либо системный каталог или просто расширить раздел / , оставив ему строгие физические рамки.
Этот же способ может подойти и для решения некоторых других проблем.
В смысле: я надеюсь, что данный алгоритм действий кому-то может пригодиться. А уж для чего именно - вопрос другой.
0
15.03.2017, 23:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2017, 23:07

Копирование всех каталогов с одним заданным именем из множества неизвестных каталогов
Всем добрый день. Сложилась необходимость создания бекапа определенной папки в...

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

В родительском каталоге посчитать количество каталогов и вывести имена каталогов, используя суперблок
Здравствуйте! Собственно часть моего задания написано в шапке темы. Полностью...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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