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

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

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

Читайте также:  Install windows 10 pro from usb

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

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

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

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

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

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

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

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

Поскольку он принимает значение из таблицы разделов, нажмите 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 для создания точки монтирования.

Читайте также:  Все существующие оболочки для linux

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

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

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

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

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

Источник

IgorKa — Информационный ресурс

Немного обо всем и все о немногом, или практический опыт системного администратора.

Ноябрь 2009
Пн Вт Ср Чт Пт Сб Вс
« Окт Дек »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

Лекция №17 — Жесткие диски в Linux

В этой лекции мы поговорим о таком важном элементе компьютера как жесткий диск. Посмотрим как выполняется деление жесткого диска на разделы, какие типы разделов бывают и какие команды Linux позволяют работать с разделами. Вы уже знаете, что жесткий диск это блочное устройство. Действительно на физическом уровне жесткий диск состоит из множества блоков. Все блоки фиксированного размера — 512 байт и называется такой блок — сектор. В самый первый сектор жесткого диска записана специальная запись, которая называется MBR — master boot record. О MBR мы уже говорили во второй лекции. Продублирую для наглядности рисунок отображающий структуру MBR.

Обратите внимание на подраздел MBR, который называется таблица разделов. Как видите под разделы в MBR выделено всего 64 байта, a так как для идентификации одного раздела необходимо 16 байт, то всего таких разделов может быть не более четырех. На каждом разделе могла быть размещена одна файловая система. Эта операция называлась форматированием раздела. До какого-то момента четырех разделов хватало, но с ростом объемов жесткого диска, появилась потребность в большем количестве разделов. Но их не может быть больше, так как изначально было заложено не более 4-х разделов. Из множества вариантов решения данной проблемы выбрали следующий. Придумали специальную файловую систему которую назвали Extended. Одному из разделов можно назначить такую файловую систему. Разделы которые описаны в таблице MBR называются первичными (или основными) разделами (primary partition). Однако раздел с файловой системой extended (расширенный) часто так и называют — расширенный раздел . В начале расширенного раздела была своя таблица разделов (можно сказать, что это было продолжение таблицы MBR). То есть расширенный раздел можно было в свою очередь делить на разделы, который стали называть логическими разделами. В отличии от статической таблицы разделов MBR, таблица разделов расширенного раздела является динамической и содержит столько записей о логических разделах сколько их существует на данный момент. Если создать 4 основных раздела на жестком диске, то вы не сможете создать пятый раздел. Если разделов нужно больше чем 4, то один из разделов обязательно должен быть extended, который в свою очередь сможет быть разделен на необходимое количество логических разделов.

В Windows системах есть такое понятие как активный раздел жесткого диска. Это раздел который содержит загрузчик Windows, и если вы установите Windows в раздел который не отмечен как активный (не установлен специальный флаг в таблице разделов), то операционная система не сможет загрузиться. В Linux этот флаг не имеет никакого значения и система будет загружаться даже если диск с загрузчиком не отмечен как активный.

Мы уже знаем, что жесткий диск и его разделы представлены в системе в виде файлов-устройств. Диски с интерфесом IDE обозначаются как hda, hdb, hdc или hdd. Если диск подключен к первому IDE разъему как master, то он будет определен как hda, если как slave, то hdb и т.д. Диски с интерфесом SCSI или SATA обозначаются как sda, sdb, sdc и т.д. Диски SATA обозначаются немного по другому чем IDE. Имя SATA диска не зависит от того к какому разъему SATA вы подключили диск. Например у вас есть шесть разъемов SATA (пронумеруем их от 0 до 5). Независимо от того к какому разъему подключить диск он будет называться sda. Если у вас в системе два и более диска SATA, то диск который подключен к разъему с наименьшим номером будет обозначен как sda, и далее по порядку (sdb, sdc и т.д.). Нужно учесть следующее. Если у вас единственный диск SATA был всегда подключен, например, ко второму разъему (и назывался sda), а затем вы подключили еще один диск к первому разъему, то теперь уже новый диск будет называться sda, а ваш старый диск будет называться sdb. Именно по этой причине, рекомендуется записывать разделы жесткого диска в файле /etc/fstab через их UUID.

Как же посмотреть какие у есть диски в системе? Есть несколько вариантов. Например воспользоваться информацией которую можно получить выполним команду dmesg. Команда dmesg выводит все сообщения ядра об аппаратных устройствах системы и об аппаратных изменениях в системе (событиях). Такие сообщения ядро начинает формировать с начала загрузки системы во время инициализации устройств. Если сообщений много и они не помещаются все на экран, то выполните команду dmesg | less, чтобы направить всю информацию в просмотрщик less. Ниже фрагмент вывода описывающий жесткий диск:

[ 1.637632] ata2.00: ATA-7: WDC WD2500KS-00MJB0, 02.01C03, max UDMA/133
[ 1.637635] ata2.00: 488397168 sectors, multi 16: LBA48
[ 1.638258] ata2.00: configured for UDMA/133
[ 1.652114] scsi 1:0:0:0: Direct-Access ATA WDC WD2500KS-00M 02.0 PQ: 0 ANSI: 5
[ 1.652228] sd 1:0:0:0: Attached scsi generic sg0 type 0
[ 1.652266] sd 1:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[ 1.652306] sd 1:0:0:0: [sda] Write Protect is off
[ 1.652309] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 1.652331] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn’t support DPO or FUA
[ 1.652449] sda: sda1 sda2 sda3 sda4

Видим, что у нас есть диск WDC WD2500KS-00M, что он разбит на четыре основных раздела — sda1, sda2, sda3 и sda4, который является расширенным разделом и в свою очередь разбит на логические разделы sda5, sda6, sda7, sda8, sda9.

Также посмотреть какие у нас есть жесткие диски можно, выполнив команду ls -l /dev/[h,s]d?:

igor@ubuntu:

/linux$ ls -l /dev/[s,h]d?
brw-rw—- 1 root disk 8, 0 2009-11-18 22:58 /dev/sda
brw-rw—- 1 root disk 8, 16 2009-11-18 22:58 /dev/sdb

Еще одна команда — fdisk с ключом -l. Выполнятся должна от имени администратора и показывать следующую информацию:

Диск /dev/sda: 250.1 ГБ, 250059350016 байт
255 heads, 63 sectors/track, 30401 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd4b146b8

Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 1 2304 18506848+ 7 HPFS/NTFS
/dev/sda2 2305 2472 1349460 e W95 FAT16 (LBA)
/dev/sda3 2473 10263 62581207+ 7 HPFS/NTFS
/dev/sda4 10264 30401 161758485 f W95 расшир. (LBA)
/dev/sda5 10264 12826 20587266 83 Linux
/dev/sda6 12827 12947 971901 82 Linux своп / Solaris
/dev/sda7 12948 18184 42066171 7 HPFS/NTFS
/dev/sda8 18185 27967 78581916 7 HPFS/NTFS
/dev/sda9 27968 30401 19551073+ 7 HPFS/NTFS

Диск /dev/sdb: 40.0 ГБ, 40020664320 байт
255 heads, 63 sectors/track, 4865 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0xb292b292

Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 1 4660 37431418+ 83 Linux
/dev/sdb2 4661 4865 1646662+ 5 Расширенный
/dev/sdb5 4661 4850 1526143+ 82 Linux своп / Solaris
/dev/sdb6 4851 4865 120456 83 Linux

Как видите мы получаем информацию о диске, о его разделах и о файловой системе содержащейся на каждом разделе. Команда fdisk предназначена для управления таблицей разделов жесткого диска. Другими словами эта команда позволяет выполнить разметку диска — разбить его на разделы и назначить файловые системы. Этой команде посвящена следующая лекция.

Источник

Читайте также:  Как сменить группу файла linux
Оцените статью