Linux форматирование диска fdisk

Обновлено: 06.07.2024

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

Активация диска в Linux

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

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

При подключении нового диска нам нужно:

  • разметить его на разделы
  • отформатировать каждый раздел для создания файловой системы
  • смонтировать диск для возможности записи и чтения данных
  • настроить автоматическое монтирование при включении компьютера

Как узнать имена дисков, как просмотреть все диски в системе

Начать нужно с того, чтобы узнать имя диска, который мы будем изменять. В Linux совсем непохожая на Windows система обозначения дисков. Вместо привычных дисков C, D, E и так далее, в Linux диски это устройства в папке /dev/. В dev вообще все возможные устройства, даже весьма экзотические, не существующие в Windows.

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


Как видно из скриншота, имеется диск /dev/nvme0n1. Затем перечислены два устройства /dev/nvme0n1p1 и /dev/nvme0n1p2. По совпадающему части названия nvme0n1 можно понять, что это разделы, на которые разделён диск /dev/nvme0n1.

Также имеется диск /dev/sda, который не разделён ни на какие разделы — именно его я и буду подключать.

Разметка дисков (разделение на разделы) в Linux

В консоли диск можно разбить на разделы командой cfdisk. После неё укажите имя диска, с которым вы хотите выполнить действия:


Диск может быть GPT или MBR (показывается как dos). Вы без труда найдёте множество информации об этих таблицах разделов в Интернете. Только отмечу, что GPT является более современной и имеет больше возможностей. Поэтому если не нужно работать со старым железом, которое понимает только MBR, то выбираем GPT.

Для создания диска выберите Новый:


Введите его размер.

Если нужно, поменяйте тип раздела:


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

Форматирование разделов

Для форматирования в ext4:

Для форматирования в ext3:

Для форматирования в ext2:

Для форматирования в FAT32:

Мой пример (я не стал разбивать диск на разделы):


Кстати, если вы хотите отформатировать раздел, который уже используете, то его нужно сначала отмонтировать (об этом дальше).

Монтирование и размонтирование дисков

С дисками в /dev/ нельзя работать напрямую, то есть нельзя на них записывать файлы или копировать с них файлы. Для работы с ними их нужно смонтировать. Это делается командой mount.

Диск подключается к точке монтирования и уже в этой папке можно работать с содержимом диска.

Эта концепция может показаться непривычной пользователям Windows, но это очень удобно! Диск можно смонтировать в любую папку. Например, домашняя папка может быть на другом диске — удобно при переустановке системы — данные не нужно копировать в безопасное место, поскольку они уже на другом диске.

Для монтирования используется команда вида:

Допустим, я хочу, чтобы новый диск был подключён (смонтирован) к папке /mnt/disk_d. Название можно выбрать любое и точка монтирования необязательно должна быть в директории /mnt/ - можно сделать в домашней папке или в любой другой.

Начинаем с создания директории, в которую будет смонтирован диск:

Разрешаем доступ всем в этот диск, чтобы обычный пользователь также мог смотреть и записывать туда файлы:

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

Для размонтирования диска используется любая из двух команд:

Автоматическое монтирование диска при загрузке Linux

Диски для монтирования при запуске Linux прописаны в файле /etc/fstab.

Допустим, я хочу при загрузке монтировать диск /dev/sda в директорию /mnt/disk_d/. При этом я хочу чтобы диск был доступен для чтения и записи пользователем. Тогда я создаю каталог — точку монтирования:

Открываю файл /etc/fstab:

и дописываю туда следующую строчку:

В этой строке вам нужно заменить

  • /dev/sda — на диск, который вы желаете смонтировать
  • /mnt/disk_d — на вашу точку монтирования, которую вы выбрали для своего диска.
  • ext4 — на файловую систему вашего диска

Если вы не уверены в файловой системе или её обозначении, то выполните команду:

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

Чтобы ваш пользователь имел доступ к этой папке без необходимости повышать свои привилегии, выполните команду:

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

Обратите внимание, что если вы что-то неправильно сделали в файле /etc/fsta, то система не сможет загрузиться в графический интерфейс и вам придётся всё исправлять из консоли. Ссылка на дополнительную инструкцию в конце этой статьи.

Для проверки записей в файле /etc/fstab используйте команду


На скриншоте можно увидеть, что диск с UUID равным 26FC3023FC2FEC2D является недоступным (unreachable). Это может означать, что запись в файле /etc/fstab имеет ошибку. Но в данном случае диск с UUID=26FC3023FC2FEC2D — это съёмный диск, для его монтирования указана опция nofail (не вызывать фатальную ошибку, даже если диск отсутствует), поэтому предупреждение можно проигнорировать.

Для вывода более подробной информации добавьте опцию --verbose:


Все пункты успешно прошли проверку, рассмотрим более подробно записи проблемного диска:

  • /mnt/disk_e — точка монтирования
  • [ ] target exists — целевая папка (точка монтирования), существуют, то есть директория /mnt/disk_e имеется в системе
  • [ ] VFS options: rw — найдена такая опция монтирования как rw, то есть диск монтируется для чтения и для записи. VFS — это опции ядра, системных вызовов. Эти опции одинаковы для всех файловых систем.
  • [ ] FS options: utf8 — найдена опция, специфичная для данной файловой системы. Этой опцией является utf8, то есть для преобразования имён файлов будет использоваться кодировка UTF-8.
  • [ ] userspace options: noauto,nofail — здесь перечислены опции пользовательского пространства. Опция noauto означает не монтировать автоматически, а опция nofail означает не сообщает об ошибках для этого устройства, если оно не существует — эта опция важна для съёмных носителей и сетевых дисков, которые могут отсутствовать во время загрузки компьютера.

Подключение съёмного носителя (флешки, внешнего диска) в Linux

Между прочим, многие дистрибутивы Linux при подключении USB флешки или внешнего диска автоматически их монтируют. Автоматическое монтирование обычно является функцией окружения рабочего стола. То есть на одном и том же дистрибутиве Linux, но с разными рабочими столами (версии Linux Mint как пример) автомонтирование может иметься или отсутствовать.

Если этого не произошло, значит нужно смонтировать вручную. Этот процесс ничем не отличается от обычного монтирования дисков: также создайте точку монтирования и используйте команду mount.

Съёмные носители можно монтировать через /etc/fstab, для этого даже есть специальная опция nofail — игнорировать ошибки, если диск отсутствует.

Как просмотреть все диски и точки монтирования

Для этого используйте уже знакомую нам команду:


Как удалить разделы диска

Если вы хотите удалить всё содержимое диска, в том числе его разбивку на разделы, то это делается так:

Откройте диск в gdisk:

Для перехода в экспертный режим там введите

Затем для удаления GPT введите

Дважды согласитесь, чтобы полностью очистить диск.

Перемонтирование диска с правами записи

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

В ней /dev/sdb1 замените на имя вашего раздела.

Если вы столкнулись с ошибкой:

То нужно выполнить команду (замените /dev/sdb1 на ваш раздел):

После этого перемонтируйте диск.

Обратите внимание, что если вы монтируете диск с файловой системой NTFS, то у вас должен быть установлен пакет ntfs-3g, иначе что бы вы не делали, диск будет только для чтения.

Заключение

Если у вас ещё остались вопросы, то задавайте их в комментариях.

Ещё несколько советов и проблемных случаев рассмотрено в статье «Работа с дисками в BlackArch (монтирование, решение проблем)» - эта статья подходит для всех дистрибутивов, не только BlackArch.

Это очень полезный инструмент для выделения пространства для новых разделов, организации пространства на новых дисках, реорганизации старых дисков, а также копирования или перемещения данных на новых дисков. Он позволяет создавать до четырех первичных разделов и некоторое количество логических (расширенных) разделов в зависимости от размера жесткого диска в вашей системе.

Мы рассмотрим ряд базовых команд fdisk для управления таблицей разделов в Linux. Для запуска команды fdisk нужно обладать root-привилегиями (или использовать sudo), иначе будет выведена ошибка “command not found”.

Просмотр всех разделов диска


Просмотр разделов заданного диска

Для просмотра всех разделов заданного жесткого диска укажите опцию -l с именем устройства. Например, следующая команда отобразит все разделы диска /dev/sda :


Командный режим

Чтобы войти в командный режим, просто введите fdisk с именем жёсткого диска, например, /dev/sda , как показано ниже:


Для получения списка команд, которые fdisk может выполнить на диске, введите “m”. Рассмотрим значение этих команд.

Удаление раздела

Допустим, нам нужно удалить определенный раздел, например, /dev/sda4, с определенного жёсткого диска, например, /dev/sda. Сначала нужно зайти в командный режим:

Затем введите d для удаления раздела. После этого у вас будет запрошен номер раздела для удаления с диска /dev/xvdb. Для удаления раздела номер 2 (то есть, /dev/xvdb2) нужно ввести соответствующую цифру, 2. Затем нужно ввести команду w, чтобы записать таблицу на диск и выйти.



Как мы видим раздел /dev/xvdb2 был удален.

Внимание : будьте осторожны с этой командой, потому что удаление раздела полностью уничтожит все данные на нем.

Создание нового раздела

Войдите в командный режим и введите “n”:


При создании нового раздела нужно выбрать одну из двух опций: extended для логического раздела или primary для первичного и нажать, соответственно, e или p . Затем потребуется ввести номера первого и последнего цилиндра раздела (либо смещение в цилиндрах или размер). Лучше всего оставить заданное по умолчанию значение первого цилиндра и ввести нужный размер раздела, например, “+5000M”, что означает размер 5000 мегабайт. После создания раздела нужно нажать w для сохранения изменений в таблице разделов.


Теперь мы видим на диске /dev/xvdb два раздела.

Также при создании раздела можно указать размер раздела с помощью опции +size. Т.е если нужно создать раздел размером 2 Гб, в качестве последнего сектора можно указать +2G


Форматирование раздела

После создания нового раздела не забудьте отформатировать его командой mkfs. Для этого выполните следующую команду:

где в ключе -t указываем тип файловой системы в которую мы хотим отформатировать наш раздел.


Проверка размера раздела

Когда раздел отформатирован, проверьте его размер при помощи опции -s (размер отображается в блоках). Так можно узнать размер любого заданного устройства:


Исправление нумерации в таблице разделов

Если вы удалили логический раздел, возможны ошибки вида ‘partition out of order‘ (нарушение порядка разделов) или ‘Partition table entries are not in disk order‘ (записи таблицы разделов не соответствуют порядку дисков). Допустим у нас диск со следующими разделами


Флаг загрузочного раздела

Чтобы включить или отключить на заданном разделе флаг загрузочного раздела (отображается символом ‘*’ в таблице разделов), нужно выполнить следующие действия.

fdisk -l /dev/xvda

Вы увидите на диске /dev/sda1 флаг загрузочного раздела (звёздочка ‘*’)



Заключение

Мы рассмотрели базовые возможности команды fdisk, необходимые для работы с разделами. Более подробную информацию, в том числе об экспертных командах, доступ к которым осуществляется командой x , можно получить на соответствующей man-странице ( man fdisk ).

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Я хочу знать, как отформатировать накопитель из терминала. Полезные вещи в ответе - часто используемые опции для команд и базовые знания, которые можно использовать для экстраполяции будущего использования. В частности, я хотел бы знать, как форматировать в различных файловых системах, таких как NTFS, FAT32, EXT4 и т. Д. Также требуется информация о том, как разделить диск через терминал.

Я пытаюсь отформатировать внешний жесткий диск большой емкости (EHDD) в NTFS - с терминала.

Я знаю, что я могу использовать gparted для этого, а также другие программы с графическим интерфейсом, но я все еще хочу сейчас, как это сделать из терминала.

2 ответа

Есть несколько вариантов:

  1. fdisk (старше, не поддерживает GPT 4 ).
  2. parted (брат CLI GParted).
  3. Различные mkfs программы, если у вас уже есть разделы и вы хотите отформатировать.

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

fdisk

fdisk ожидает устройства (например, /dev/sda ) в качестве аргумента. У него есть следующие команды:

Я не пользуюсь fdisk столько. Я просто сосредоточусь на:

parted

parted аргумент не нужен (он пытается "угадать"), но вы всегда должны указывать диск. Учитывая выбор, parted это программа, которую вы должны предпочесть. У него есть следующие команды:

Команды могут быть заключены в уникальный префикс (например, h коротка для help ).

Я собираюсь использовать временный файл ( /tmp/part ) Я создал, чтобы показать вам команды, поэтому размеры будут несколько малы. Вы должны заменить это на нужное вам устройство ( /dev/sda , например).

Во-первых, если на вашем диске нет таблицы разделов, мы должны создать ее:

или же mklabel msdos , если вам нужна старая школа с четырьмя основными разделами (называемая таблицей разделов MBR или MSDOS). Затем мы делаем, скажем, раздел ext4, начинающийся с 3 ГБ (то есть оставляя начальный 3G свободным) и размером 2 ГБ (т.е. заканчивающийся на 5 ГБ). parted ожидает места в МБ для mkpartfs , но мы можем указать суффикс:

И еще один, теперь раздел NTFS 1 ГБ:

Обратите внимание, как он использует префиксы SI, тогда как GParted стойко использует двоичные префиксы (при этом отбрасывая глупые i ). Я обозначу разделы:

В то время как parted может создавать разделы файловой системы ntfs просто отлично, он не может отформатировать существующий раздел (!) в NTFS:

Действительно, parted скажет вам, что вы должны использовать его для управления разделами, а не файловыми системами, что приводит меня к:

mkfs , лайк fsck , по сути, является интерфейсом для различных команд, специфичных для файловой системы. В моей системе, например, mkfs.bfs , mkfs.cramfs , mkfs.ext2 , mkfs.ext3 , mkfs.ext4 , mkfs.ext4dev , mkfs.fat , mkfs.minix , mkfs.msdos , mkfs.ntfs , mkfs.vfat доступны.

Сейчас, к сожалению, пока parted работает очень хорошо с файлом, как тот, который я использовал выше, mkfs не могу охотиться за разделами в таких файлах. На самом деле, он ожидает блочные устройства, поэтому, если я собираюсь использовать новый файл /tmp/file за mkfs Я должен заставить это сделать. Вы будете использовать блочное устройство, соответствующее разделу, который вы хотите отформатировать, например: /dev/sda2 , Общий синтаксис для mkfs является:

Как видите, -t flag позволяет передавать специфичные для файловой системы флаги. Например, флаги NTFS:

Итак, давайте сделаем раздел NTFS с быстрым форматированием ( -Q ), заставляя его работать с файлом не блочного устройства ( -F ) и установка метки ( -L "hello world" ).

Очевидно, ему не понравилось работать с файлом.:) Не волнуйтесь, он должен автоматически определять большинство значений при работе на реальном диске. Даже этот "файл" прекрасно работает как файловая система:

(Видите странные разрешения?)

Заметки:

Обратите внимание на parted использование:

Синтаксис parted Программа это:

Когда ты бежишь parted без команды, как:

Вам будет представлена ​​простая оболочка, в которой вы можете запустить вышеуказанные команды. Однако эти команды также могут быть запущены напрямую с помощью parted программа. Итак, эти три эквивалентны:

Также обратите внимание, что при создании разделов с parted , полезным индикатором конца перегородок является -1s (это "1" между дефисом и "s"). Это полезно, если вы хотите, чтобы ваш раздел проходил от указанного начала до остальной части диска. Чтобы быть более конкретным, работает

создаст раздел /dev/sda который начинается в 3G и заканчивается в последнем секторе /dev/sda диск (т. е. он охватывает от 3G до всей оставшейся части диска). Обратите внимание, что -- необходимо, для 1s не следует интерпретировать как недопустимый параметр.

Целью статьи является рассмотреть вопросы разбития жестких дисков и создание на разделах различных файловых систем в Linux . Будет рассмотрено управление дисками MBR и GPT .

Использование утилиты mkfs.

Основные утилиты для работы с разделами жестких дисков и создания файловых систем: fdisk , gdisk , parted , gparted , mkfs , mkswap .

Для работы с жесткими дисками, такими операциями как изменение размеров логических разделов, разбиение жестких дисков, создание файловых таблиц на разделах жестких дисков требуются права суперпользователя. Переключится в данных режим из режима обычного пользователя можно командой sudo –s и введя пароль.

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

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

И так вводим команду fdisk –l и видим у на 3 физических жестких диска /dev/sda , /dev/sdb , /dev/sdc соответствующих размеров. Нас интересует раздел /dev/sdc/ на 10 GB с которым мы будем производить манипуляции.

Далее сделаем разбивку и создадим логические разделы.

fdisk / dev / sdc

Сразу получаем предупреждение, что раздел не содержит ни одного опознанного раздела.

Создадим новые разделы. Поделим на 2 части. У нас получится следующее.

Как мы можем увидеть создались 2 раздела и имеют ID 83, т.е. Linux раздел по умолчанию.

Теперь давайте поменяем тип раздела. Это сделать можно просто в меню выбираем t – смена раздела. Выбираем номер, например, 2 и нажимаем L , чтобы посмотреть hex коды, соответствующие разным типам. Изменим тип раздела Linux на swap раздел подкачки.

И теперь мы можем увидеть введя команду p .

У нас изменился тип раздела на раздел подкачки. Обычно данные раздел используется, когда не хватает оперативной памяти у машины. Теперь необходимо записать производимые изменения командой w. После ввода данной команды диски синхронизируются и таблица разделов изменена. После этого введя команду fdisk –l мы можем убедиться, что действительно появились разделы. Для того, чтобы этот раздел действительно стал работать, как раздел подкачки, его необходимо отформатировать, как раздел подкачки. Для этого есть команда специальная mkswap /dev/sdc2 . Указываем команду и раздел, который должен быть размечен. После команды mkswap раздел размечается и теперь его необходимо включить swapon /dev/sdc2 .

Для того, чтобы посмотреть какие разделы подкачки используются используем команду swapon –s .

Для выключения раздела подкачки можно использовать обратную команду swapoff /dev/sdc2 .

На самом деле, как мы убедились разделы подкачки создавать достаточно просто. Если не хватает оперативки, то пере разбили, отформатировали и включили.

Теперь поработает с первым разделом. Будем использовать команду mkfs.

В описании утилиты сказано, что данная утилита, строит Linux файловую систему. У данной утилиты, очень большое количество ключей. Использую данную утилиты мы можем отформатировать логический раздел в старую файловую систему ext2, с помощью команды mkfs –t ext2 /dev/sdc1 . А затем переформатировать в более новую ext3. Файловые системы различаются тем, что более новая файловая система журналируемая. Т.е. ведется журнал изменений происходящего на данной файловой системе и в случае чего-нибудь мы можем восстановить или откатить изменения. Еще более новая файловая система ext4. Отличия данной файловой системы от предыдущей в том, что она может работать с большими размерами жестких дисков, может в себе хранить большие размеры файлов, намного меньше фрагментация. В случае если мы хотим использовать, какие-то более экзотические файловые системы, то нам необходимо скачать соответствующую утилиту. Например, если мы хотим использовать файловую систему xfs.

Если мы попробуем отформатировать mkfs –t xfs /dev/sdc1 то мы получим ошибку. Попробуем поискать в кэше необходимый пакет apt-cache search xfs .

Находим необходимый пакет. Как мы можем видеть это утилита для управления XFS файловой системой. Следовательно, необходимо установить данный пакет, и мы сможем отформатировать в xfs файловую систему. Устанавливаем apt-get install xfsprogs . После установки пробуем отформатировать в xfs. Учитывая то, что мы уже форматировали в файловую систему ext4, нам необходимо команду на форматирование запускать с ключом –f . Получаем в следующем виде:

mkfs – t xfs – f / dev / sdc1

Теперь думаю интересно будет посмотреть, как сделать данный раздел рабочим под Windows операционную систему.

Возвращаемся обратно в редактирование логических разделов fdisk /dev/sdc и говорим , что мы ходим поменять тип первого нашего раздела с помощью команды t . Далее выбираем метку, которую понимает операционная система Windows, это FAT/FAT16/FAT32/NTFS. Например, NTFS id 86. Изменили. В этом можно убедится выведя таблицу с помощью команды p .

После изменения типа логического раздела, не забываем записать изменения с помощью команды w . Далее необходимо логический раздел отформатировать mkfs -t ntfs /dev/sdc1 .

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

Если посмотреть мануал по fdisk , то мы увидим, что он не умеет работать с дисками GPT и не может работать с большими разделами, только с MBR. Как известно в современных ПК уже используется UEFI, которая работает с GPT. А как следствие мы можем сделать вывод, что fdisk не сможет работать с дисками размер которых более 2 ТБ. Для работы с большими дисками можно использовать другую программу gdisk .

Читайте также: