Как работать с дисками linux

Содержание
  1. fdisk — простой способ управления разделами дисков в Linux
  2. Как ядро Linux работает с жесткими дисками?
  3. Что такое fdisk?
  4. Как установить fdisk в Linux
  5. Как вывести список доступных дисков с помощью команды fdisk
  6. Как вывести список определенных разделов диска с помощью команды fdisk
  7. Как вывести список доступных действий для команды fdisk?
  8. Как вывести список типов разделов с помощью команды fdisk
  9. Как создать раздел на диске с помощью команды fdisk
  10. Как создать расширенный раздел диска с помощью команды fdisk
  11. Как просмотреть нераспределенное дисковое пространство с помощью команды fdisk
  12. Как создать логический раздел с помощью команды fdisk
  13. Как удалить раздел с помощью команды fdisk
  14. Как отформатировать раздел или создать файловую систему на разделе
  15. Как смонтировать раздел в Linux
  16. Разбивка дисков в Linux для самых маленьких
  17. Команда parted в Linux
  18. Синтаксис parted
  19. Опции и команды parted
  20. Разметка диска в Linux
  21. Выводы

fdisk — простой способ управления разделами дисков в Linux

Оригинал: fdisk – Easy way to manage disk partitions in Linux
Автор: Magesh Maruthamuthu
Дата публикации: 28 января 2019 года
Перевод: А. Кривошей
Дата перевода: ноябрь 2019 г.

Жесткие диски можно разделить на один или несколько логических дисков, называемых разделами. Это разделение описано в таблице разделов (MBR или GPT) в секторе 0 диска.

Linux нужен как минимум один раздел, а именно для его корневой файловой системы, и мы не можем установить Linux на диск без разделов.

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

Для этого в Linux доступно множество утилит. Мы писали о Parted Command в прошлом, и сегодня мы будем обсуждать fdisk. Команда fdisk является одним из лучших инструментов для управления разделами диска в Linux. Она поддерживает диски максимум 2 ТБ, и все предпочитают использовать fdisk.

Эта утилита используется большим количеством администраторов Linux, потому что мы практически не используем более 2 ТБ сегодня из-за LVM и SAN. Она используется в большей части инфраструктуры Linux по всему миру. Тем не менее, если вы хотите создать большие разделы, например, более 2 ТБ, вам нужно использовать команду Parted или команду cfdisk.

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

Как ядро Linux работает с жесткими дисками?

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

В Linux устройства расположены в разделе /dev, и ядро понимает жесткий диск в следующем формате.

/dev/hdX[a-z]: IDE-диск с именем hdX в Linux
/dev/sdX[a-z]: SCSI-диск с именем sdX в Linux
/dev/xdX[a-z]: XT-диск с именем xdX в Linux
/dev/vdX[a-z]: виртуальный жесткий диск с именем vdX в Linux
/dev/fdN: гибкий диск с именем fdN в Linux
/dev/scdN or /dev/srN: CD-ROM с именем /dev/scdN или /dev/srN в Linux

Что такое fdisk?

fdisk обозначает «fixed disk» или «format disk». Это утилита командной строки, которая позволяет пользователям выполнять различные действия с дисками. Она позволяет нам просматривать, создавать, изменять размеры, удалять, перемещать и копировать разделы.

Она понимает таблицы разделов MBR, Sun, SGI и BSD, не понимает таблицу разделов GUID (GPT) и не предназначена для больших разделов.

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

1-4 зарезервировано для четырех основных разделов, а логические разделы начинаются с 5.

Как установить fdisk в Linux

Вам не нужно устанавливать fdisk в системе Linux, потому что он установлен по умолчанию как часть утилит core.

Как вывести список доступных дисков с помощью команды fdisk

Сначала мы должны узнать, какие диски были добавлены в систему, прежде чем выполнять какие-либо действия. Для просмотра списка всех доступных дисков в вашей системе выполните приведенную ниже команду. Она выведет возможные сведения о дисках, такие как имя диска, количество разделов на нем, размер диска, тип метки диска, идентификатор диска, идентификатор раздела и тип раздела.

Как вывести список определенных разделов диска с помощью команды fdisk

Если вы хотите увидеть определенный диск и его разделы, используйте следующий формат команды:

Как вывести список доступных действий для команды fdisk?

Если вы нажмете m в команде fdisk, вы увидите доступные действия.

Как вывести список типов разделов с помощью команды fdisk

Если вы нажмете l в команде fdisk, она покажет вам доступные типы разделов.

Как создать раздел на диске с помощью команды fdisk

Если вы хотите создать новый раздел, выполните следующие действия. В моем случае я собираюсь создать 4 раздела (3 основных и 1 расширенный) на диске /dev/sdc.

Читайте также:  Windows 10 vpn подключение для всех пользователей

Поскольку он принимает значение из таблицы разделов, нажмите Enter для первого сектора. Введите размер, который вы хотите установить для раздела (мы можем добавить размер раздела, используя КБ, МБ, ГБ и ТБ) для последнего сектора.

Например, если вы хотите добавить раздел размером 1 ГБ, последним значением сектора должно быть + 1G. Как только вы создали 3 раздела, fdisk автоматически изменит тип раздела на расширенный по умолчанию. Если вы все еще хотите создать четвертый первичный раздел, тогда нажмите p вместо значения по умолчанию e.

Как создать расширенный раздел диска с помощью команды fdisk

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

Как просмотреть нераспределенное дисковое пространство с помощью команды fdisk

Как описано в предыдущем разделе, мы полностью создали 4 раздела (3 основных и 1 расширенный). Дисковое пространство расширенного раздела будет отображаться как неразмеченное, пока вы не создадите в нем логические разделы.

Используйте приведенную ниже команду для просмотра неразмеченного пространства для диска. В соответствии с приведенным ниже выводом у нас есть 7ГБ неразмеченного диска.

Как создать логический раздел с помощью команды fdisk

Выполните ту же процедуру, описанную выше, чтобы создать логический раздел после создания расширенного раздела. Здесь я создал логический раздел размером 1 ГБ с именем /dev/sdc5, вы можете убедиться в этом, проверив значение таблицы разделов.

Как удалить раздел с помощью команды fdisk

Если раздел больше не используется в системе, мы можем удалить его, используя следующие шаги.

Убедитесь, что вы будете вводить правильный номер раздела, чтобы удалить его. В данном случае я собираюсь удалить раздел /dev/sdc2.

Как отформатировать раздел или создать файловую систему на разделе

Файловая система контролирует, как хранятся и извлекаются данные через таблицы inode.

Без файловой системы система не может найти, где хранится информация на разделе. Файловая система может быть создана тремя способами. Здесь я собираюсь создать файловую систему в разделе /dev/sdc1.

Когда вы создаете файловую систему на этом разделе, это даст вам следующие важные вещи.

UUID файловой системы: UUID означает универсальный уникальный идентификатор, UUID используются для идентификации блочных устройств в Linux. Это 128-битные числа, представленные 32 шестнадцатеричными цифрами.
Superblock: в суперблоке хранятся метаданные файловой системы. Если суперблок файловой системы поврежден, файловая система не может быть смонтирована и, следовательно, файлы не доступны.
Inode: это структура данных в файловой системе Unix-подобной операционной системы, в которой хранится вся информация о файле, кроме его имени и его фактических данных.
Journal: журналируемая файловая система — это файловая система, которая поддерживает специальный файл, называемый журналом, который используется для исправления любых несоответствий, возникающих в результате неправильного выключения компьютера.

Как смонтировать раздел в Linux

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

Для этого нам нужно создать точку монтирования для монтирования раздела. Используйте команду mkdir для создания точки монтирования.

Для временного монтирования используйте приведенную ниже команду. Эта точка монтирования не сохранится после перезагрузки вашей системы.

Для постоянного монтирования добавьте информацию о разделе в файл fstab. Это можно сделать двумя способами: добавить имя устройства или значение UUID.

Постоянное монтирование с использованием имени устройства:

Постоянное монтирование с использованием значения UUID. Чтобы получить UUID раздела, используйте команду blkid.

То же самое было проверено с помощью команды df.

Источник

Разбивка дисков в Linux для самых маленьких

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

У нас в распоряжении есть — физическая разбивка дисков на разделы(fdisk, gparted), соф-RAID (mdadm), менеджер логических дисков (LVM), ширование dm-crypt (остальным не стоит забивать голову).

Пути разбивки дисков неисповедимы, поэтому мы начнем с самого простого.

1. Физическая разбивка дисков
Это самый простой, надежный и совместимый «дедовский» метод. Он позволяет четко очертить границы разделов и их взаимное положение на диске.
При разбивке диска можно учесть его физические особенности и получить некоторый прирост производительности. Дело в том, что ближе к краю диска скорость чтения может быть в несколько раз выше, чем ближе к центру. Соответственно, если расположить например /boot(128 мб), swap (memory * 2 or 2.5), /(root) то мы получаем хорошую скорость загрузки и работы с разделом подкачки. Если есть несколько дисков, то можно расположить swap в начале каждого. Но парится со swap есть смысл, если вы работаете с большими объемами данных — linux не использует swap без крайней нужды. (проверьте free -m). Отказываться от использования swap крайне не рекомендуется, так как linux хорошая система, но чудес не бывает. Открыв файл на 1ГБ можно заблокировать систему намертво без возможности разблокирования.
Разбивка диска на большое количество разделов оправдана только, если это делается для какой-то особой цели. В других случаях — достаточно обойтись простейшим / (root) и swap.
Очень часто пользователи отделяют /home от / (root) — это не имеет никакого практического смысла в однопользовательских системах. Обычно, / (root), /var, /home разделяют на серверах, чтобы пользователи со злым умыслом не заполнили логи или свою домашнюю директорию. Кстати, смонтировать /home с noexec можно и не делая отдельного раздела (man mount).
Если вы пользуетесь парралельно windows то я рекомендую использовать FAT32 для разделов с музыкой/фильмами, к которым вы хотите иметь доступ в обоих системах (и ни в коем случае не делать /home или домашнюю папку в FAT32!!). NTFS хорошо поддерживается, но недостаточно, чтобы ей пользоваться каждый день (чтобы снять unclean shutdown который не дает смонтировать раздел- нужно грузить windows), ошибки в файловой системе могут вызывать подвисания и потерю данных (привет жадному Биллу).

Читайте также:  Темы для mate windows

Запомните: черезмерная разбивка — корень всех бед. Разбивать диски «особым» образом нужно только под КОНКРЕТНУЮ задачу.

2. Логическая разбивка дисков
Не бойтесь LVM — он не такой страшный. С его помощью можно переразбивать диски, расширять партиции, добавлять физические устройства и расширяться на них, делать теневое копирование, бекап аналогичный «time machine» появился еще примерно в 2002 году. Не бойтесь, делайте бекап и пользуйтесь гибкостью LVM.
Для работы LVM, MD, DM обязательно нужен физический раздел /boot который позволит загрузчику(grub, Lilo etc) скачать минимальный образ системы (initrd) с необходимыми драйверами и конфигами для старта основной системы.
С логической разбивкой все сложнее. Вложенность разделов может быть произвольная.
Например как делается полное шифрование в ubuntu: /boot DM-CRYPT[LVM[/(root) swap]] — физический раздел /boot, затем физический раздел с dm-crypt, в котором находится LVM в свою очередь в котором два логических раздела /(root) и swap.
С вложенностью шифрования и raid можно играться как угодно.
Пример из жизни параноика:
/boot DM-CRYPT[ LVM[ /root DM-CRYPT-random[/tmp] DM-CRYPT-random[/home] DM-CRYPT-random[/var/log] DM-CRYPT-random[swap] ]]
При каждой загрузке /tmp /home /var/log и swap инициализируются с рандомным ключом. Конечно это ставит жирный крест на hibernate но при каждой загрузке- система абсолютно чистая от логов и временных файлов. Вполне сгодится для студентов или любителей побродить по порносайтам.

3. Советы по оптимизации
/boot можно сделать в файловой системе ext2 — она быстрей, чем ext3 и этого будет достаточно.
На активно использующемся разделе можно отключить access time — флаг noatime. Так часто делают на веб-серверах для уменьшения нагрузки на жесткий диск.
Как показала многолетняя практика, не стоит надеяться на надежность простого либо навороченного решения. Стоит использовать самое удобное и делать регулярный rsync на внешний носитель. В таком случае отпрадают вопросы на счет восстановления данных, которые при любом решении (особенно при шифровании) сильно усложняют жизнь. Например беды на шированной партиции при наличии Luks могут вывести систему из строя без возможности восстановления данных. Шифрованные данные более подвержены сильным повреждениям, чем нешифрованные.
(советуйте, добавлю)

В linux можно сделать абсолютно все, что угодно и это будет работать. Главное, руководствоваться здравым смыслом и не брезговать читать man вместо довольно часто вредных и устаревших howto.

Итак, резюмируем:
Для десктопов и ноутбуков оптимальный метод разбивки — полное отсутствие разбивки.
Для тех, кто не любит бекапиться, использовать «сложные методы» вроде LVM. Может подойти вариант:
swap (memory * 2), / (остальное)
Для юзеров убунты достаточно выбрать: Использовать все свободное место под LVM, тогда у вас останется много возможностей «на вырост».
Если разбивать /, /home то вы рано или поздно столкнетесь с нехваткой места на одном из разделов.

Источник

Команда parted в Linux

При переустановке системы, установке нового дистрибутива или просто реорганизации файловых систем мы часто имеем дело с жесткими дисками. Часто нужно добавлять, удалять или изменять размер разделов, управлять их флагами или конвертировать файловые системы. Для этого в Linux есть достаточно различных инструментов как с графическим интерфейсом, так и консольных. Разобраться в графическом интерфейсе Gparted, я думаю вам не составит труда, но в некоторых случаях бывает нужна разбивка жесткого диска на разделы linux в терминале, без доступа к Х серверу, а это может стать серьезной проблемой.

В этой статье мы разберем как выполнять основные операции, которые мы привыкли делать в Gparted, такие как разметка диска, удаление и создание раздела, в терминале, а поможет в этом команда parted Linux. Сначала рассмотрим саму команду parted.

Синтаксис parted

Синтаксис parted выглядит следующим образом:

$ parted [опции] устройство [команда]

В квадратных скобках указанны необязательные аргументы.

  • опции указывают как будет работать программа, например, интерактивный режим работы или скриптовый, или нужно просто вывести справку.
  • устройство — жесткий диск с которым будет работать программа.
  • команда — действие которое нужно выполнить над жестким диском.

Опции и команды parted

У parted всего несколько опций и огромное количество команд.

  • -h — вывести справку о программе
  • -v — вывести версию программы
  • -s — скриптовый режим, программа работает без запросов к пользователю
  • -i — интерактивный режим, пользователь вводит команды в интерактивном режиме. По умолчанию программа работает в этом режиме.
Читайте также:  Linux все файлы с определенной датой

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

  • help команда — помощь по выбранной команде;
  • mkpart тип раздела файловая система начало конец — создание раздела linux с файловой системой начиная с позиции начало заканчивая конец, два последних параметра задаются в мегабайтах по умолчанию;
  • mktable тип — создать таблицу разделов;
  • print — отобразить таблицу разделов;
  • quit — выйти;
  • resizepart раздел конец — изменить размер раздела;
  • rm раздел — удалить раздел;
  • select раздел — установить раздел как текущий;
  • set раздел флаг состояние — установить флаг для раздела. Состояние может быть on (включен) или off(выключен).

Раньше поддерживались также опции работы с файловой системой mkfs, check, mkpartfs но начиная с версии 2.4 они были удаленны. Но программа не стала хуже.

Я понимаю что сейчас разметка дисков в linux для вас непонятна и расплывчата, но с примерами станет намного яснее. Больше не будем о теории, перейдем к примерам.

Разметка диска в Linux

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

Создадим себе тестовый полигон командой:

sudo dd if=/dev/zero of=/disk.img count=2000 bs=1M

Таким образом, мы получим файл размером 2000 мегабайт, заполненный нулями, с которым можно спокойно работать. Запустим parted, передав ему вместо устройства наш файл:

sudo parted /disk.img

Когда надо будет работать с реальным диском, просто передайте путь к файлу его устройства утилите:

sudo parted /dev/sda

Программа запустится в интерактивном режиме и вы сможете выполнять нужные команды. Сначала попытаемся посмотреть список разделов на устройстве:

Он пуст потому что даже нет таблицы разделов. Пока её нет, разметка дисков в Linux не может быть выполнена, нам предстоит ее создать. Для этого воспользуйтесь командой mktable:

(parted) mktable gpt

Будем мы создали таблицу разделов типа gpt, но можно выбрать одну из этих: aix, amiga, bsd, dvh, gpt_sync_mbr, gpt, mac, msdos, pc98, sun, loop

Теперь давайте создадим новый раздел с файловой системой ext2 размером 100 мегабайт. Для этого есть команда mkpart, как вы помните ей нужно передать три параметра: тип раздела, файловую систему и координаты. Тип раздела может быть: primary, logical, extended (первичный, логический и расширенный).

В gpt можно создавать нужное количество первичных разделов и не задумываться об их типе. Это все было создано для MBR, в этой таблице есть ограничение на количество первичных разделов — только четыре. Поэтому приходилось создавать три первичных и один расширенный, в который вкладывались уже сколько нужно логических.

Ну так вот, создаем первичный:

(parted) mkpart primary ext2 0 400М

Поскольку это первый раздел, начинаем мы с нуля, а заканчиваем нужным нам размером — 400 мегабайт.

Смотрим список разделов еще раз:

Создадим еще несколько разделов, например для корня системы и для домашней папки:

(parted) mkpart primary ext4 400 1000M

(parted) mkpart primary ext4 1000M -0M

Параметр -0 означает вести отсчет от конца раздела, таким образом будет занято все доступное пространство под третий раздел. Смотрим что получилось:

Работа с диском в Linux осуществляется по их номерам. Давайте уменьшим последний раздел и создадим после него ещё один:

(parted) resizepart 3 1600M

Также можно указать нужный размер в процентах:

(parted) resizepart 3 60%

А теперь создание раздела parted:

mkpart primary ext4 1600M -0M

Удалим только что созданный четвертый раздел:

Зададим метки для существующих разделов с помощью команды name:

(parted) name 1 boot

(parted) name 2 root

(parted) name 3 home

Сделаем первый раздел загрузочным командой set:

Можно устанавливать следующие флаги: boot, root, swap, hidden, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot, type, irst.

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

Выводы

Теперь вы знаете как пользоваться parted Linux и этой информации достаточно чтобы не потеряться в случае, если окажетесь без доступа к графическому интерфейсу и вам понадобится разбивка жесткого диска в консоли Linux.

Источник

Оцените статью