- Файловые системы в Linux
- Свободный и занятый объем диска в Linux
- Определение свободного места на диске
- Определение информации об использованном пространстве
- Разделы жесткого диска и файловые системы
- Содержание
- Разделы жесткого диска
- Преимущества использования нескольких разделов
- Таблица разделов жесткого диска
- Структура диска, разбитого на разделы (MBR)
- Виды разделов
- Первичный (основной) раздел
- Расширенный и Логические разделы
- Выбор файловой системы
- Точки монтирования
- Структура файловой системы
- Дисковые файловые системы, применяемые в Ubuntu
- Как разбить жесткий диск для установки Ubuntu
- Расположение разделов на жестком диске
- Нужен ли SWAP?
- Объем раздела для корня файловой системы
- Объем раздела для /home
- Перенос папки /home на новый раздел после установки
- Создание отдельного раздела
- Перенос данных на новый раздел
Файловые системы в Linux
XFS — начало разработки 1993 год, фирма Silicon Graphics, в мае 2000 года предстала в GNU GPL, для пользователей большинства Linux систем стала доступна в 2001-2002 гг. Отличительная черта системы — прекрасная поддержка больших файлов и файловых томов, 8 эксбибайт — 1 байт (8*2 60 -1 байт) для 64-х битных систем. Ко всему прочему обладает другими немаловажными особенностями — непрерывные области дискового пространства, задержка выделения пространства и онлайн дефрагментация. Является одной из старейших журналируемых файловых систем для *nix, и содержит в себе наиболее отлаженный, в этом контексте, исходный код.
ReiserFS (Reiser3) — одна из первых журналируемых файловых систем под Linux, разработана Namesys. Имеет некоторые врождённые головные боли, но в целом неплохая система, ведущая отсчёт дней своих с 2001 года. Оговорюсь, что смысл журналируемых систем заключается в дисковых транзакциях, которые последовательно пишутся в специальную зону диска (журнал, он же лог), перед тем как данные попадают в конечные точки файловой системы. Максимальный объём тома для этой системы равен 16 тебибайт (16*2 40 байт).
JFS (Journaled File System) — файловая система, детище IBM, явившееся миру в далёком 1990 году для ОС AIX (Advanced Interactive eXecutive). В виде первого стабильного релиза, для пользователей Linux, система стала доступна в 2001 году. Из плюсов системы — неплохая масштабируемость. Из минусов — не особо активная поддержка на протяжении всего жизненного цикла. Максимальный рамер тома 32 пэбибайта (32*2 50 байт).
ext (extended filesystem) — появилась в апреле 1992 года, это была первая файловая система, изготовленная специально под нужды Linux ОС. Разработана Remy Card с целью преодолеть ограничения файловой системы Minix.
ext2 (second extended file system) — была разработана Remy Card в 1993 году. Не журналируемая файловая система, это был основной её недостаток, который исправит ext3.
ext3 (third extended filesystem) — по сути расширение исконной для Linux ext2, способное к журналированию. Разработана Стивеном Твиди (Stephen Tweedie) в 1999 году, включена в основное ядро Linux в ноябре 2001 года. На фоне других своих сослуживцев обладает более скромным размером пространства, до 4 тебибайт (4*2 40 байт) для 32-х разрядных систем. На данный момент является наиболее стабильной и поддерживаемой файловой системой в среде Linux.
Reiser4 — первая попытка создать файловую систему нового поколения для Linux. Впервые представленная в 2004 году, система включает в себя такие передовые технологии как транзакции, задержка выделения пространства, а так же встроенная возможность кодирования и сжатия данных. Ханс Рейзер (Hans Reiser), главный разработчик системы, рекламировал использовать своё детище непосредственно как БД с улучшенными метаданными. После того, как Ханс Рейзер был осуждён за убийство в 2008 году, дальнейшая судьба системы стала сомнительной.
ext4 — попытка создать 64-х битную ext3 способную поддерживать больший размер файловой системы (1 эксбибайт). Позже добавились возможности — непрерывные области дискового пространства, задержка выделения пространства, онлайн дефрагментация и прочие. Обеспечивается прямая совместимость с системой ext3 и ограниченная обратная совместимость при недоступной способности к непрерывным областям дискового пространства.
UPD: Btrfs (B-tree FS или Butter FS) — проект изначально начатый компанией Oracle, впоследствии поддержанный большинством Linux систем. Многие считаеют систему эдаким ответом на ZFS. Ключевыми особенностями данной файловой системы являются технологии: copy-on-write, позволяющая сделать снимки областей диска (снапшоты), которые могут пригодится для последующего восстановления; контроль за целостностью данных и метаданных (с повышенной гарантией целостности); сжатие данных; оптимизированный режим для накопителей SSD (задаётся при монтировании) и прочие. Немаловажным фактором является возможность перехода с ext3 на Btrfs. С августа 2008 года данная система выпускается под GNU GPL.
Tux2 — известная, но так и не анонсированная публично файловая система. Создатель Дэниэл Филипс (Daniel Phillips), система базируется на алгоритме «Фазового Дерева», который как и журналирование защищает файловую систему от сбоев. Организована как надстройка на ext2.
Tux3 — наступая на пятки Btrfs, представлена новая файловая система. Система создана на основе FUSE (Filesystem in Userspace), специального модуля для создания файловых систем на *nix платформах. Данный проект ставит перед собой цель избавиться от привычного журналирования, взамен предлагая версионное восстановление (состояние в определённый промежуток времени). Преимуществом используемой в данном случае версионной системы, является способ описания изменений, где для каждого файла создаётся изменённая копия, а не переписывается текущая версия. Такой подход позволяет более гибко управлять версиями.
UPD: Xiafs — задумка и разработка данной файловой системы принадлежат Frank Xia, основана на файловой системе MINIX. В настоящее время считается устаревшей и практически не используется. Наряду с ext2 разрабатывалась, как замена системе ext. В декабре 1993 года система была добавлена в стандартное ядро Linux. И хотя система обладала большей стабильностью и занимала меньше дискового пространства под контрольные структуры — она оказалась слабее ext2, ведущую роль сыграли ограничения максимальных размеров файла и раздела, а так же способность к дальнейшему расширению.
UPD: ZFS (Zettabyte File System) — изначально созданная в Sun Microsystems файловая система, для небезызвестной операционной системы Solaris в 2005 году. Отличительные особенности — отсутствие фрагментации данных как таковой, возможности по управлению снапшотами (snapshots), пулами хранения (storage pools), варьируемый размер блоков, 64-х разрядный механизм контрольных сумм, а так же способность адресовать 128 бит информации! В Linux системах может использоваться посредствам FUSE.
Источник
Свободный и занятый объем диска в Linux
Небольшая «напоминалка» по использованию команд du и df, которые помогут вам вычислить оставшийся и занятый объем жесткого диска в вашей системе, а также определить размер всех файлов в директории, или размер самой директории.
Определение свободного места на диске
Для определения информации о свободном и занятом месте на диске в удобочитаемом виде используется команда df.
Выведет информацию о всех используемых файловых системах в удобном виде.
Параметры команды df:
Ключ полное имя, сокращенное | Значение |
---|---|
Включает в список файловых систем те, которые имеют размер в 0 блоков, и которые по умолчанию опускаются. Такие файловые системы обычно являются псевдо-файловыми системами специального назначения, например, для automounter. Кроме того, только если задана эта опция, будут показаны файловые системы типа «ignore» или «auto», которые поддерживаются некоторыми операционными системами. | |
Выдаёт размеры в блоках размера байт. | |
Добавляет к каждому размеру букву, например M для мегабайт. | |
Делает то же, что и опция -h, но использует официальные SI единицы измерения (где для расчётов используется 1000 вместо 1024 и, таким образом, M — это 1000000, а не 1048576). | |
Вместо информации о блоках выдаётся информация об использовании inode’ов в файловой системе. Inode содержит информацию о файле: владелец, права доступа, временные штампы и местоположение на диске. | |
При выводе устанавливает размер блока в 1024 байт. | |
Выводит только данные о локальных файловых системах. | |
При выводе устанавливает размер блока в двоичный мегабайт (1048576 байт). Заметим, что четыре опции -h, -H, -k, -m носят взаимоисключающий характер и фактически будет работать только последняя, указанная в командной строке; например, если заданы одновременно опции —si и -m, то в результате при выводе размер блока будет установлен в мегабайт (1048576 байт). [На интерпретацию размеров блоков также должна оказывать влияние переменная окружения BLOCK_SIZE, но она не учитывается в версии fileutils-4.0] | |
Не делать системный вызов sync перед получением данных об использовании дискового пространства. При этом df может запуститься значительно быстрее, но на некоторых файловых системах (замечено в SunOS) результаты могут быть слегка устаревшими. Этот флаг включён по умолчанию. | |
Использовать формат вывода по стандарту POSIX. Он такой же, как формат по умолчанию, только информация о каждой файловой системе всегда выводится на одной строке; имя смонтированного устройства никогда не помещается на отдельную строку. Это приводит к тому, что если длина имени смонтированного устройства больше, чем 20 символов (например, для некоторых сетевых файловых систем), то колонки не выравниваются. | |
Делать системный вызов sync перед получением данных об использовании дискового пространства. На некоторых файловых системах (замечено в SunOS), выполнение данного системного вызова даёт более достоверные результаты, но зато с этим флагом выполнение df происходит значительно медленнее, особенно когда файловых систем много или же они чрезвычайно активно используются. | |
Показывать только файловые системы с указанным типом-файловой-системы. Можно задать несколько типов файловых систем, если использовать несколько опций -t. По умолчанию никакие типы файловых системы не опускаются. | |
Выдавать тип для каждой файловой системы. Тип берётся от операционной системы (и определяется системно-зависимым способом, например посредством чтения файла /etc/mtab). | |
Не показывать файловые системы с заданным типом-файловой-системы. Можно задать несколько типов файловых систем, если использовать несколько опций -x . По умолчанию никакие типы файловых систем не опускаются. | |
Игнорируется для совместимости с версией df из System V. | |
Выдать подсказку на стандартный вывод и успешно завершиться. | |
Выдать информацию о версии на стандартный вывод и успешно завершиться. | |
Служит для обозначения конца списка опций. |
Определение информации об использованном пространстве
Команда du выводит информацию о занятом дисковом пространстве для файла (файлов) имена которых заданы с помощью параметров команды. Например команда:
покажет общий объем занимаемый каталогом etc и всеми его подкаталогами первого уровня.
Источник
Разделы жесткого диска и файловые системы
Содержание
Так же, как и при установке новой копии Windows, о разбиении винчестера на разделы нужно продумать заранее. Есть несколько вещей, которые вы должны знать о разделах, которые требуются при установке Ubuntu Linux. Установка Ubuntu требует как минимум двух разделов: один для самой операционной системы — обозначается «/» и называется «root» (корневой раздел), а второй для виртуальной памяти (для файлов подкачки) — называется «swap». Есть еще третий раздел — Home, создается по желанию, на нем будут храниться основные настройки приложений и файлы пользователя.
Разделы жесткого диска
Раздел — часть долговременной памяти жёсткого диска или флеш-накопителя, выделенная для удобства работы, и состоящая из смежных блоков. На одном устройстве хранения может быть несколько разделов.
Создание разделов на различных видах современных накопителей почти всегда предусмотрено (хотя, к примеру, на, ныне уже не используемых, флоппи-дисках было невозможно создать несколько разделов). Однако в Windows, с флешки с несколькими разделами будет доступен только первый из них (в Windows принято считать флешки аналогом флоппи-диска, а не жесткого диска).
Преимущества использования нескольких разделов
Выделение на одном жёстком диске нескольких разделов даёт следующие преимущества:
Таблица разделов жесткого диска
Существует несколько типов таблиц разделов жестких дисков. Наиболее распространенной на данным момент являемся IBM-PC совместимая таблица разделов, являющаяся частью главной загрузочной записи (MBR). MBR располагается в первом(нулевом) физическом секторе жесткого диска. Однако в последнее время начинает все чаще использоваться таблица GPT (GUID Partition Table). Если ваш диск имеет таблицу разбиения GPT, то вам не нужно заботится о количестве разделов (в GPT по умолчанию зарезервировано место под 128 разделов) и разбираться с типами разделов (в GPT — все разделы первичные). Если у вас MBR разбивка — то в данной статье приводится детальное описание такого разбиения диска.
Структура диска, разбитого на разделы (MBR)
Виды разделов
Первичный (основной) раздел
Первичный раздел обязательно должен быть на физическом диске. Этот раздел всегда содержит либо одну файловую систему, либо другие логические разделы. На физическом диске может быть до четырёх первичных разделов. Некоторые старые операционные системы — например, MS -DOS и Windows — могли быть установлены только на первичный раздел.
Расширенный и Логические разделы
Таблица разделов может содержать не более 4 первичных разделов, поэтому были изобретёны расширенный разделы. В расширенном разделе можно создать несколько логических разделов. Логические разделы выстраиваются в цепочку где информация о первом логическом разделе храниться в MBR, а информация о последующем хранится в первом секторе логического раздела. Такая цепочка позволяет (в теории) создавать неограниченное количество разделов, но (на практике) число логических разделов ограничивается утилитами и, обычно, больше 10 логических разделов не создать.
Важно отметить что некоторые версии Windows не могут загрузиться с логического раздела (нужен обязательно первичный раздел), тогда как для Linux никакой разницы в виде разделов — нет, Linux загружается и работает с разделами совершенно независимо от их вида (первичный или логический).
Выбор файловой системы
Подобно Windows, Linux за свою жизнь повидала несколько разных файловых систем. Ubuntu «понимает» файловые системы Windows, но не установится на них. Ubuntu может сразу же записывать и считывать из разделов FAT16, FAT32 и VFAT и NTFS. Однако Windows не может работать с файловыми системами Linux, и вам придётся передавать файлы в и из Windows из-под операционной системы Ubuntu.
Помимо знакомых файловых систем Windows, вы можете выбрать несколько таких, которые вы, возможно, не знаете. Среди таких файловых систем — ext4. Ext4 в настоящий момент является одной из самых подходящих файловых систем для настольной системы. Файловые системы ext3 и ext2 сейчас используются редко: ext3 — чуть более старая версия ext4, и не имеет никаких преимуществ перед ext4, а ext2 не имеет журналирования, без него при, системном сбое будет трудно восстановить данные. Файловые системы BTRFS, XFS, ReiserFS, Reiser4, JFS и т.д. также можно использовать, однако их стоит выбирать исходя из понимания особенностей этих ФС (стоит почитать немного о разных ФС, что бы сделать правильный выбор). Раздел «swap» предназначен только для виртуальной памяти и в отличие от других файловых систем ему не требуется точка монтирования.
Точки монтирования
Linux не назначает буквы каждому диску и разделу, как в Windows и DOS. Вместо этого вы должны задать точку монтирования для каждого диска и раздела. Linux работает по принципу иерархического дерева каталогов, где корневой каталог ( / ) является основной точкой монтирования, в которую по умолчанию входят все остальные. В отличии от Windows в Linux все используемые разделы дисков монтируются в подкаталоги корня, а не как отдельные устройства (C:, D: …).
К примеру, в /home хранятся все ваши персональные файлы. Если вы хотите разместить эти данные в отдельном от корня разделе, то создадите новый раздел и установите точку монтирования на /home. Это можно сделать для любого подкаталога. Во время установки Ubuntu предоставляет возможность задать следующие точки монтирования: /boot (начальный загрузчик и заголовки ядра), /dev (драйверы и устройства), /home (пользовательские файлы), /opt (дополнительное программное обеспечение), /srv (системные сервисы) /tmp (временные файлы), /usr (приложения), /usr/local (данные, доступные всем пользователям) и /var (server spool и логи). Также при установке можно создать и свои точки монтирования с произвольными именами.
Для типичной настольной системы нет никакого смысла выделять собственные разделы для /dev, /opt, /srv, /tmp, /usr/local и /var. Если вы планируете запускать более двух операционных систем или использовать шифрование корневого раздела, то возможно потребуется отдельный раздел для /boot. Иногда стоит также создать раздел для /usr, но только если вы уже имеете чёткое представление о том, сколько места займут приложения. Желательно создать отдельный раздел для /home. Это предоставит вам дополнительные удобства при обновлении и переустановке системы.
Минимально можно ограничится только двумя разделами: «root» и «swap», тогда /boot, /home, /usr и все остальные будут просто храниться в корневом разделе ( / ).
Структура файловой системы
Ubuntu поддерживает стандарт FHS 1) , описывающий какая информация должна находится в том или ином месте «дерева». Ниже приведена таблица с кратким описанием основных директорий.
Директория | Описание |
---|---|
/ | Корневая директория, содержащая всю файловую иерархию. |
/bin/ | Основные системные утилиты, необходимые как в однопользовательском режиме, так и при обычной работе всем пользователям (например: cat, ls, cp). |
/boot/ | Загрузочные файлы (в том числе файлы загрузчика, ядро и т.д.). Часто выносится на отдельный раздел. |
/dev/ | Основные файлы устройств системы (например физические устройства sata винчестеры /dev/sda, видео камеры или TV-тюнеры /dev/video или псевдоустройства, например «чёрные дыры» /dev/null, /dev/zero ). |
/etc/ | Общесистемные конфигурационные файлы, лежат в корне директории и файлы конфигурации установленных программ (имя происходит от et cetera). |
/etc/X11/ | Файлы конфигурации X Window System версии 11. |
/etc/apt/ | Файлы конфигурации пакетного менеджера Apt. |
/etc/samba/ | Файлы конфигурации сервера Samba, расшаривающего файлы по сети с windows машинами. |
/home/ | Содержит домашние директории пользователей, которые в свою очередь содержат персональные настройки и данные пользователя. Часто размещается на отдельном разделе. |
/lib/ | Основные библиотеки, необходимые для работы программ из /bin/ и /sbin/. |
/media/ | Точки монтирования для сменных носителей, таких как CD-ROM, DVD-ROM, flash дисков. |
/opt/ | Дополнительное программное обеспечение. |
/proc/ | Виртуальная файловая система, представляющая состояние ядра операционной системы и запущенных процессов в виде каталогов файлов. |
/root/ | Домашняя директория пользователя root. |
/sbin/ | Основные системные программы для администрирования и настройки системы, например, init, iptables, ifconfig. |
/srv/ | Данные, специфичные для окружения системы. |
/tmp/ | Временные файлы (см. также /var/tmp). |
/usr/ | Вторичная иерархия для данных пользователя; содержит большинство пользовательских приложений и утилит, используемых в многопользовательском режиме. Может быть смонтирована по сети только для чтения и быть общей для нескольких машин. |
/usr/bin/ | Дополнительные программы для всех пользователей, не являющиеся необходимыми в однопользовательском режиме. |
/usr/include/ | Стандартные заголовочные файлы. |
/usr/lib/ | Библиотеки для программ, находящихся в /usr/bin/ и /usr/sbin/. |
/usr/sbin/ | Дополнительные системные программы (такие как демоны различных сетевых сервисов). |
/usr/share/ | Архитектурно-независимые общие данные. |
/usr/src/ | Исходные коды (например, здесь располагаются исходные коды ядра). |
/usr/local/ | Третичная иерархия для данных, специфичных для данного хоста. Обычно содержит такие поддиректории, как bin/, lib/, share/. Она пригодится, когда /usr/ используется по сети. |
/var/ | Изменяемые файлы, такие как файлы регистрации (log-файлы), временные почтовые файлы, файлы спулеров. |
/var/cache/ | Данные кэша приложений. Сюда скачиваются пакеты перед их установкой в систему, здесь же они какое-то время и хранятся |
/var/lib/ | Информация о состоянии. Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.). |
/var/lock/ | Lock-файлы, указывающие на занятость некоторого ресурса. |
/var/log/ | Различные файлы регистрации (log-файлы). |
/var/mail/ | Почтовые ящики пользователей. |
/var/run/ | Информация о запущенных программах (в основном, о демонах). |
/var/spool/ | Задачи, ожидающие обработки (например, очереди печати, непрочитанные или неотправленные письма). |
/var/tmp/ | Временные файлы, которые должны быть сохранены между перезагрузками. |
/var/www/ | Директория веб-сервера Apache, всё что находится внутри транслируется им в интернет (конфигурация по-умолчанию) |
Дисковые файловые системы, применяемые в Ubuntu
Как разбить жесткий диск для установки Ubuntu
Настоятельно рекомендуется при установке разбивать жесткий диск вручную, создавая как минимум 2 раздела (для корня файловой системы и для /home), что в последствии облегчает процессы обновления, переустановки, восстановления системы или переход на другой дистрибутив.
Для разбития жесткого диска можно воспользоваться программой GParted, входящей в состав LiveCD Ubuntu или же любой другой программой поддерживающей необходимые вам файловые системы.
Расположение разделов на жестком диске
Есть мнение, что физическое место положения раздела (в начале или конце диска, соответственно ближе или дальше к\от шпинделя диска) определяет скорость обращения к разделу. Возможно это и так, но на современных компьютерах разница почти не заметна. Если же вы всё таки хотите разбить жесткий диск правильно расположив разделы, то ближе к шпинделю диска (первым) необходимо создавать swap, так как в него чаще всего будет записываться информация и головка диска будет часто обращаться именно к этому месту 2) , далее раздел для корня системы и в конце- раздел для /home.
Нужен ли SWAP?
Раздел SWAP используется системой при нехватке оперативной памяти и для спящего режима, поэтому его необходимость определяется двумя факторами: размером оперативной памяти 3) и намерением использовать спящий режим.
Более подробную информацию о SWAP вы можете прочитать в статье SWAP.
Объем раздела для корня файловой системы
Свежеустановленная система Ubuntu занимает 4-6 Гб дискового пространства, однако при активном использовании (установке большого количества программ, увеличении кэша программ, и т.д.) или возникновении сбоев в работе, что приводит к росту объема папок с логами системы (/var/log) может понадобиться большее количество дискового пространства, поэтому для корня файловой системы необходимо выделять раздел 10-15Гб.
Объем раздела для /home
Разделу с папкой /home обычно отдают всё оставшееся пространство, если Ubuntu будет единственной системой на ПК и все мультимедиа данные будут храниться в ней, или, в случае установки рядом с Windows, выделяют отдельный раздел в формате NTFS для мультимедиа данных, а раздел для /home делают минимальным только для хранения файлов конфигурации.
Перенос папки /home на новый раздел после установки
Часто возникает желание привести в порядок неправильно разбитый жесткий диск при установке Ubuntu. При этом возникает необходимость перенести папку /home на отдельный раздел жесткого диска. Ниже приведена краткое руководство действий для выполнения этой задачи.
Создание отдельного раздела
Загрузите компьютер с LiveCD(LiveUSB);
Создайте новый раздел в неразмеченной области или отделив необходимое количество свободного пространства от уже существующего. Отформатируйте его в выбранную вами файловую систему.
Перенос данных на новый раздел
загрузитесь с LiveCD(LiveUSB)
примонтируйте раздел c корнем системы и раздел с будущим расположением /home к текущей файловой системе (заменив sda1 и sda2 своими значениями)
переместите папку /home на новый раздел
посмотрите UUID нового раздела
добавьте в файл
(fstab файл установленной на жестком диске системы) строку (заменив UUID на свой, естественно):
Источник