Как создать разделы на linux. Разбивка дисков в Linux для самых маленьких

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

За перевод этой части благодарим andrewww . Продолжение следует...

Об авторах

Daniel Robbins

Дэниэль Роббинс - основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo , написал множество технических статей для IBM developerWorks , Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure .

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее - платформа HP ePrint . В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Актуально для всех версий Ubuntu.
Структура файловой системы в Linux отличается от Windows.

В Windows диски c: d:, в Linux это просто папка.
Всё, включая устройства, есть файлы.

Корень файловой системы обозначается / , в котором находится множество папок, доступ к которым, есть только у администратора (root).
Единственная папка доступная простому пользователю - это папка /home/user , которая содержит все файлы и папки пользователя, включая пользовательские фалы конфигураций.
Чтобы разделить системные файлы и пользовательские, обычно, /home выносят на отдельный раздел. Получается, аналог windows диска d:.
При переустановках системы, в том числе обновлении на новую версию, можно спокойно форматировать системный раздел и оставить нетронутым пользовательский.

Жесткие диски в Ubuntu именуются /dev/sda , /dev/sdb и т. д.

Разделы на жестких диска /dev/sda1 , /dev/sda2 и т. д.

Для Ubuntu я создаю три раздела:

/dev/sda1 - / ~15Гб корень, системный раздел;
/dev/sda2 - swap ~4Гб, по размеру оперативной памяти, раздел подкачки;
/dev/sda3 - /home все оставшееся место, пользовательский раздел.

Все манипуляции с диском, также удобно проводить в программе GParted, доступной на live диске Ubuntu.
Просто нажимаем клавишу WIN и в поиске вводим gparted. А при установке останется только выбрать точки монтирования и файловые системы.

Нажимаем "Новая таблица разделов", потом плюсик создаем раздел,

указываем размер, как договаривались 15 Гб. Использовать как Журналируемая файловая система Ext4. Точка монтирования / слэш.
Это корневой раздел.

Выбираем раздел подкачки.

И раздел под home. Где будут храниться файлы пользователя.

Если Ubuntu вы ставите рядом с Windows, то скорее всего первые разделы будут использованы под windows, тогда наши разделы будут именоваться /dev/sda3 и так далее.

Файловую систему будем использовать журналируемую ext4 .
Более подробно можно почитать .

Стоит отметить, что Ubuntu из коробки прекрасно работает с ntfs , правда медленнее.
Поэтому если вы ставите Ubuntu рядом с Windows и планируете часто ей пользоваться, то можно оставить диск d: большим и всю информацию хранить на нем.

При установке нужно выбрать диск с ntfs

и выбрать точку монтирования, папку в которой будет доступен диск, выбираем /home/имя_пользователя/название_папки, например, /home/goodigy/disk_d

После установки ос диски с Windows, автоматически будут монтироваться в указанную папку.
Все это можно сделать и после установки Ubuntu.

Напомню что, таблица разделов MBR, может содеражать только 4 первичных раздела, если нужно больше, то нужно создать расширенный, и в нем сколько угодно логических.
В случае установки рядом с Widows, так и получится. .

Ubuntu можно ставить в логические разделы, и в любое место диска.

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

Предупреждение : Не создавайте, не удаляйте и не изменяйте разделы, если вы не знаете, что вы делаете!

Утилита FDISK в Unix/Linux

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

Просмотр разделов в Unix/Linux

Начнем с самого легкого — просмотра разделов. Используйте опцию «-l» с командой FDISK, для просмотра доступных разделов в Linux (в Unix системах — данная опция может не сработать. Проверялось на Mac OS X). Все имеющиеся разделы в линукс отображаются по имени их устройства. Например: /dev/sda, /dev/sdb или /dev/sdc.

И так, запустим команду:

Вывод получаем следующий:

Можно узнать некоторую полезную информацию по конкретному блочному устройству. Например, следующая команда отобразит все разделы для /dev/sda:

Если у Вас есть разные названия устройств, простое имя устройства записи как /dev/sdb или /dev/sdc и так далее.

Вывод доступных команд по FDISK

Если вы хотели бы просмотреть все команды, которые доступны для FDISK, то просто используйте следующую команду, упомянув название жесткого диска, например /dev/sda, как показано ниже:

вывод все доступных команд для FDISK например для /dev/sda

Введите ‘m’, чтобы увидеть список всех доступных команд по FDISK, которые помогут с работой по жесткому диску /dev/sda. После, ввода ‘m’ на экране, вы увидите все доступные параметры для FDISK которые можете использовать для устройства /dev/sda (данное устройство взято как пример):

ПРЕДУПРЕЖДЕНИЕ: DOS-совместимый режим не рекомендуется. Настоятельно рекомендуется
выключить режим (команда ‘c’) и изменить units для сектора (команда ‘u’).

Допустимые опции при работы с fdisk

  • a:- Данная опция служит для переключение загрузочного флага.
  • b:- Данная опция служит для редактирования BSD метки диска.
  • c:- Данная опция служит для переключения флага совместимости дос.
  • d:- Данная опция служит для удаления раздела.
  • g:- Данная опция служит для создания новой, пустой таблицы разделов GPT.
  • G:- Данная опция служит для создание таблицы разделов IRIX (SGI).
  • l:- Данная опция служит для вывода известных типов разделов (Linux swap, Linux, GPT, Solaris и так далее).
  • m:- Данная опция служит для вывода доступных команд (меню).
  • n:- Данная опция служит для добавления нового раздела.
  • o:- Данная опция служит для создание новой пустой таблицы разделов DOS.
  • p:- Данная опция служит для вывода таблиц разделов.
  • q:- Данная опция служит для выхода из меню но без какого-либо сохранения изменений.
  • s:- Данная опция служит для создания новой и пустой Sun метки диска (disklabel).
  • t:- Данная опция служит для изменения типа «System ID» раздела (взять можно с вывода «l» опции).
  • u:- Данная опция служит для изменения блоков отображения/ввода.
  • v:- Данная опция служит для проверка таблиц разделов.
  • w:- Данная опция служит для записи всего измененного и потом выйти.
  • x:- Данная опция служит для вызова дополнительной функциональности (только для экспертов).

Вывод всех партиций (разделов) в Unix/Linux

Чтобы вывести таблицу разделов вашего блочного устройства, используйте:

# fdisk /dev/sda

После чего, вы попадаете в меню (в нем можно проводить различные операции с разделами), нас интересует только просмотр, по этому — вводим «p» опцию:

Создать таблицу разделов (disklabel) в Unix/Linux

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

Приеду основные таблицы для разметки:

  • MBR (msdos)

Чтобы создать таблицу разделов вашего блочного устройства, используйте:

# fdisk /dev/sda

Данным действием было выбрано блочное устройство /dev/sda и чтобы создать на нем новую таблицу разделов, используем одну из опций:

  • g — Чтобы создать новую, пустую таблицу GPT разделов.
  • o — Чтобы создать новую, пустую таблицу DOS разделов.

И переходим к созданию разделов.

Создать новый раздел в Unix/Linux

И так, допустим у вас есть свободное место на одном из устройств (у меня это /dev/sda) и вам необходимо создать новый раздел (например для установки ОС). Тогда вы должны запустить утилиту следующим образом (Введите следующую команду, чтобы войти в режим управления конкретного блочного устройства):

# fdisk /dev/sda

После входа в командный режим нажмите «n», чтобы создать новый раздел в /dev/sda с определенным размером.

После нажатия «n», вас просят выбрать тип будущего раздела:

  • p — Для «primary», т.е создать первичный раздел.
  • e — Для «extended», т.е создать расширенный раздел.

Хочу отметить следующее, что «primary» разделов можно создать до 4-х штук, а все остальные будут «extended» (т.е расширенными разделами). Т.к у меня — это всего лишь 1-й раздел, то я выбираю опцию «p». Как я сказал ранее, это мой первый, первичный раздел и для него, я должен указать номер (номер партиции), логично указать 1 (Но можно выбрать 1-4, т.к всего 4). Для создания полноценного раздела, необходимо указать сектор (начало позиции цилиндра для создаваемого раздела), мне подсказывают что это будет — 2048 (выбрал стандартное значение), а так же, нужно указать где будет заканчиваться данный сектор (конец позиции цилиндра для создаваемого раздела) — мне предлагают указать стандартное значение, но оно мне не подходит, т.к оно создаст 1 раздел максимальной длины (у меня это 21 Гб — тестовая машина). На данном этапе, можно указывать конец сектора в килобайтах (K), мегабайтах (M), гигабайтах (G). Предположим, я хочу создать 1-й раздел 5Гб, тогда я должен прописать «+5G» (или «+5000M» и так далее).

Можно еще создать несколько разделов. Действия будут какие же.

Пожалуйста, имейте в виду, что после создания нового раздела, вы должны запустить (выполнить) команду ‘w’, чтобы все действия сохранились. Ну а после чего, выполнить перезапуск ОС, чтобы убедиться что создался раздел.

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

После того, как разделы создали, необходимо выполнить форматирование. Но прежде чем перейти к данному действию, нужно определится с файловой системой (ФС).

Я буду использовать утилиту «mkfs для форматирования раздела. Данная утилита поддерживает следующие ФС:

  • ext2: # mkfs.ext2 /dev/sda1
  • ext3: # mkfs.ext3 /dev/sda4
  • ext4: # mkfs.ext4 /dev/sda4
  • fat: # mkfs.fat /dev/sda4
  • minix: # mkfs.minix /dev/sda4
  • msdos: # mkfs.msdos /dev/sda4
  • vfat: # mkfs.vfat /dev/sda4
  • xfs: # mkfs.xfs /dev/sda4

Выбираем тип ФС и переходим к фармотированию.

Проверить размер раздела в Unix/Linux

После форматирования нового раздела, проверить размер раздела можно с помощью флага «s» и команды FDISK. Таким образом, вы можете проверить размер любого конкретного устройства. Например:

# fdisk -s / dev/sda3 5285413

Размер отображается в блоках.

Для вывода в гигабайтах (Гб), используйте:

# echo "`fdisk -s /dev/sda2`/(2^20)" | bc # echo "`fdisk -s /dev/sda1`/(2^20)" | bc # echo "`fdisk -s /dev/sda`/(2^20)" | bc

Выглядит юзабельно.

Включение/Выключение загрузки флага (*) из раздела в Unix/Linux

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

# fdisk /dev/sda

Первым шагом, будет просмотр имеющихся разделов, чтобы увидеть текущую таблицу разделов. Как вы помните — это «p» опция. У меня на скриншоте ниже, видно что загрузочный раздел на / dev/sda1 диске (вы видите, что это флаг загрузки — звездочка ‘*’), как показано ниже:

Затем введите ‘а’ опцию, чтобы отключить флаг загрузки. Нам предлагают выбрать номер раздела где будет убрана загрузка (я выбираю ‘1 ‘ т.е. / dev/sda1). Это отключит флаг загрузки на разделе / ​​dev/sda1:

Чтобы включить флаг с загрузки, используем «a» опцию. После того как нажали, необходимо будет ввести номер раздела который будет загружаться (например 1-й) и сново вернули все на места.

Удалить раздел в Unix/Linux

Если вы хотели бы удалить определенный раздел (т.е. /dev/sda4) от конкретного блочного устройства (например — /dev/sda). Вы должны выполнить:

# fdisk /dev/sda

Затем, введите ‘d’ — чтобы войти в меню удаления разделов. После ввода, просят ввести номер раздела, который я хочу удалить. Предположим, мне нужно удалить 4-й раздел, то я ввожу «4». Все, раздел был удален. Вводим ‘w’ для записи всех изменений! Новые изменения будут работать только после следующей перезагрузки системы. Это можно легко понять из приведенного ниже вывода.

Предупреждение: Будьте осторожны, выполняя этот шаг, потому что с помощью опции ‘d’ полностью удалит раздел из системы и вы можете потерять все данные с разделе!

Использование fdisk в bash скриптах

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

Fdisk /dev/hda << EOF n p 1 a 1 t c w EOF

Я не буду объяснять что делает данные буквы, т.к я описывал все опции выше.

Тема «Как использовать команду FDISK на Linux», я старался изо всех сил рассказать почти о всех основных командах fdisk, но все еще FDISK содержит множество других команд вы можете использовать их, введя «х». Для получения более подробной информации, введите команду ‘man Fdisk «в терминала.

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

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

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

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

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

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

устройство - жесткий диск с которым будет работать программа.

команда - действие которое нужно выполнить над жестким диском.

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

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

Вот опции:

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

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

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

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

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

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

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

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

dd if=/dev/zero of=/disk.iso count=2000M

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

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

parted /disk.iso

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

GNU Parted 3.1
Using /disk.iso
Welcome to GNU Parted! Type "help" to view a list of commands.
(parted)

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

Disk /home/sergiy/disk.iso: 1992MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

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

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

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

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

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

mkpart primary ext2 0 400М

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

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

Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:


1 17,4kB 400MB 400MB primary

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

mkpart primary ext2 400 1000M

mkpart primary ext2 1000M -0M

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

Number Start End Size File system Name Flags
1 17,4kB 400MB 400MB primary
2 400MB 1000MB 600MB primary
3 1000MB 1992MB 992MB primary

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

А теперь создаем:

mkpart primary ext4 1600M -0M

Number Start End Size File system Name Flags
1 17,4kB 400MB 400MB primary
2 400MB 1000MB 600MB primary
3 1000MB 1600MB 600MB primary
4 1600MB 1992MB 392MB primary

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

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

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

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

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

Выводы

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

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

Итак, в качестве примера мы будем использовать актуальную на данный момент версию Linux Ubuntu 17.04 , т.е. давайте представим, что Вы устанавливаете Ubuntu 17.04 (или любой другой производный дистрибутив, например, Kubuntu, Lubuntu, Ubuntu MATE и другие ) и дошли до шага, когда Вам необходимо выбрать «Тип установки », т.е. тип разметки диска, например: автоматический – это первый пункт «Стереть диск и установить Ubuntu », или «Другой вариант » — это именно тот тип, при котором мы можем самостоятельно разметить диск, его мы сейчас и рассмотрим.

Примечание! В данной статье мы рассмотрим первоначальную разметку чистого диска, т.е. на котором еще нет разделов и данных.

Создание разделов диска во время установки Linux Ubuntu

Для самостоятельного создания разметки диска во время установки Linux Ubuntu необходимо выбрать тип установки «Другой вариант » и нажать «Продолжить ».

Если у Вас несколько физических дисков (у меня один ) выбираем нужный и нажимаем «Новая таблица разделов ».


Затем нас предупреждают, что будет создана новая пустая таблица разделов, мы нажимаем «Продолжить », т.е. подтверждаете свое действие.


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

  • Размер – для корневого раздела минимально 15 гигабайт, на перспективу, конечно же, лучше указать больше, например 50 гигабайт. У меня для теста диск маленький, поэтому я указываю 15 гигабайт;
  • Тип нового раздела – указываем «Первичный », так как данный тип должен обязательно быть на диске;
  • – указываем «Начало этого пространства »;
  • Использовать как – здесь нам необходимо выбрать тип файловый системы, оставляем по умолчанию файловую систему Ext4 — это журналируемая файловая система для операционных систем Linux, которая наиболее подходит на текущий момент для файловой системы корневого раздела (да и для пользовательских данных );
  • Точка монтирования – указываем «/», так как это у нас корневой раздел.

Жмем «ОК ».


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

В данном случае нам необходимо указать:

  • Размер – по возможности максимальный, т.е. все оставшееся место, как я уже говорил у меня тестовый диск маленький, поэтому и осталось мало место;
  • Тип нового раздела – указываем «Логический »;
  • Местоположение нового раздела – указываем «Начало этого пространства »;
  • Использовать как – также выбираем файловую систему Ext4;
  • Точка монтирования – указываем «/home».

Жмем «ОК ».


Раздел подкачки «swap» (своп ) мы создавать не будем, так как в Ubuntu, начиная с версии 17.04, вместо раздела подкачки используется файл подкачки (как в Windows ). По умолчанию его размер составляет 5% от свободного места на диске, но не более 2 гигабайт. После установки размер файла подкачки в любое время можно будет изменить.

На этом разметка диска, которая подойдет для домашнего компьютера, закончена, нажимаем «Установить сейчас ».


Подтверждаем внесение изменений на диск, жмем «Продолжить » и продолжаем установку дистрибутива.


У меня на этом все, надеюсь, материал был Вам полезен, пока!

Понравилась статья? Поделитесь с друзьями!