Изменить метку диска в linux
При переустановке системы, установке нового дистрибутива или просто реорганизации файловых систем мы часто имеем дело с жесткими дисками. Часто нужно добавлять, удалять или изменять размер разделов, управлять их флагами или конвертировать файловые системы. Для этого в Linux есть достаточно различных инструментов как с графическим интерфейсом, так и консольных. Разобраться в графическом интерфейсе Gparted, я думаю вам не составит труда, но в некоторых случаях бывает нужна разбивка жесткого диска на разделы linux в терминале, без доступа к Х серверу, а это может стать серьезной проблемой.
В этой статье мы разберем как выполнять основные операции, которые мы привыкли делать в Gparted, такие как разметка диска, удаление и создание раздела, в терминале, а поможет в этом команда parted Linux. Сначала рассмотрим саму команду parted.
Что такое fdisk?
fdisk обозначает "fixed disk" или "format disk". Это утилита командной строки, которая позволяет пользователям выполнять различные действия с дисками. Она позволяет нам просматривать, создавать, изменять размеры, удалять, перемещать и копировать разделы.
Она понимает таблицы разделов MBR, Sun, SGI и BSD, не понимает таблицу разделов GUID (GPT) и не предназначена для больших разделов.
fdisk позволяет нам создать максимум четыре основных раздела на диск. Один из них может быть расширенным разделом, и он может содержать несколько логических разделов.
1-4 зарезервировано для четырех основных разделов, а логические разделы начинаются с 5.
Как вывести список типов разделов с помощью команды fdisk
Если вы нажмете l в команде fdisk, она покажет вам доступные типы разделов.
Как делается клон
Сделать это просто: сначала нужно создать раздел такого же размера, как и образец. Как это сделать, зависит от ваших навыков и вашего дистрибутива. Программы Gparted и Fdisk доступны каждому. Раздел можно даже не форматировать, так как он будет полностью переписан.
Затем клонируем систему в новый раздел:
(bs=10M ≈ это величина блока (в данном случае ≈ 10 мегабайт), которыми будет происходить копирование на уровне секторов диска. Чем больше блок, тем быстрее копируется, но и меру нужно знать).
Полученный клон является побайтовой копией оригинала, поэтому он имеет ту же файловую систему со всеми своими суперблоками на тех же местах. Дублируется также и нулевой сектор, недоступный при обычном копировании. Кроме того, при копировании командой cp данные записываются на свободное место, а при клонировании ≈ на то же самое, что и в оригинале. Это приводит к тому, что оригинал и клон имеют абсолютно идентичные файловые системы, одинаковые UUID'ы и метки тома.
Так как мы собираемся пользоваться обеими копиями одновременно, то наличие у них одинаковых UUID'ов и меток (LABEL), неудобно в работе, так как приводит к путанице. Почему и нужно изменить UUID клона и дать ему новую метку.
Работа с файловой системой в Linux
Перед тем как переходить к работе с реальным жестким диском важно попрактиковаться. Если сменить метку или проверить на битые сектора можно и рабочий диск, то создавать новую файловую систему, изменять ее размер, рискуя потерять данные на реальном диске не рекомендуется. Можно отделить небольшой раздел диска для экспериментов с помощью Gparted и выполнять все действия в нем. Допустим, у нас этот раздел будет называться /dev/sda6.
Как отформатировать раздел или создать файловую систему на разделе
Файловая система контролирует, как хранятся и извлекаются данные через таблицы inode.
Без файловой системы система не может найти, где хранится информация на разделе. Файловая система может быть создана тремя способами. Здесь я собираюсь создать файловую систему в разделе /dev/sdc1.
Когда вы создаете файловую систему на этом разделе, это даст вам следующие важные вещи.
Выводы
В одной из предыдущих статей мы рассмотрели как выполняется разметка диска с помощью parted. Из этой статьи вы узнали все что нужно о работе с файловой системой. Теперь у вас не возникнет проблем если у вас вдруг не будет доступа к графическим утилитам и нужно будет исправлять ошибки или настраивать файловую систему. Если остались вопросы, спрашивайте в комментариях!
Изменение размера файловой системы Linux
Раньше такая функция поддерживалась в утилите parted, но потом ее убрали и для этого действия приходится использовать утилиту из набора e2fsprogs - resize2fs.
Запустить утилиту очень просто. Ей нужно передать всего два параметра:
$ resize2fs [опции] устройство размер
Доступны также опции:
- -M уменьшить файловую систему до минимального размера
- -f - принудительное изменение, не смотря на потерю данных
- -F - очистить буфер файловой системы
Размер передается, как и во многих других утилитах, целым числом с указанием единиц измерения, например, 100М или 1G.
Для примера уменьшим размер нашего раздела до 400 Мегабайт:
sudo resize2fs /dev/sda6 400M
Resizing the filesystem on /dev/sda7 to 102400 (4k) blocks.
The filesystem on /dev/sda7 is now 102400 blocks long
Опции и команды parted
У parted всего несколько опций и огромное количество команд.
- -h - вывести справку о программе
- -v - вывести версию программы
- -s - скриптовый режим, программа работает без запросов к пользователю
- -i - интерактивный режим, пользователь вводит команды в интерактивном режиме. По умолчанию программа работает в этом режиме.
Команд не очень много, но даже помнить их все вовсе не обязательно. Рассмотрим только те, которые нам пригодятся в сегодняшних примерах:
- help команда - помощь по выбранной команде;
- mkpart тип раздела файловая система начало конец - создание раздела linux с файловой системой начиная с позиции начало заканчивая конец, два последних параметра задаются в мегабайтах по умолчанию;
- mktable тип - создать таблицу разделов;
- print - отобразить таблицу разделов;
- quit - выйти;
- resizepart раздел конец - изменить размер раздела;
- rm раздел - удалить раздел;
- select раздел - установить раздел как текущий;
- set раздел флаг состояние - установить флаг для раздела. Состояние может быть on (включен) или off(выключен).
Раньше поддерживались также опции работы с файловой системой mkfs, check, mkpartfs но начиная с версии 2.4 они были удаленны. Но программа не стала хуже.
Я понимаю что сейчас разметка дисков в linux для вас непонятна и расплывчата, но с примерами станет намного яснее. Больше не будем о теории, перейдем к примерам.
Создание файловой системы
Создать файловую систему linux, семейства ext, на устройстве можно с помощью команды mkfs. Ее синтаксис выглядит следующим образом:
sudo mkfs -t тип устройство
Доступны дополнительные параметры:
- -с - проверить устройство на наличие битых секторов
- -b - размер блока файловой системы
- -j - использовать журналирование для ext3
- -L - задать метку раздела
- -v - показать подробную информацию о процессе работы
- -V - версия программы
Создаем файловую систему на нашем устройстве. Будем создавать ext3:
sudo mkfs -t ext4 -L root /dev/sda6
Creating filesystem with 7847168 4k blocks and 1962240 inodes
Filesystem UUID: 3ba3f7f5-1fb2-47af-b22c-fa4ca227744a
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Дефрагментация файловой системы
Хотя и фрагментация нехарактерное явление для файловых систем семейства ext, при очень интенсивном использовании может накапливаться фрагментированость, что будет замедлять работу файловой системы. Для дефрагментации можно использовать стандартную утилиту e4defrag. Просто выполните:
Чтобы проверить нужна ли дефрагментация в Linux выполните эту же команду с опцией -c:
Total/best extents 26247/24953
Average size per extent 1432 KB
Fragmentation score 0
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This device (/dev/sda6) does not need defragmentation.
Done.
В поле Fragmentation score отображен процент фрагментации, как видите, у меня 0, нормой считается до 30, 31-55 небольшие проблемы, и больше 56 - нужна дефрагментация.
Проверка файловой системы Linux
При неправильном отключении носителей или неожиданном отключении питания, файловая система Linux может быть повреждена. Обычно проверка корневой файловой системы и домашнего каталога на ошибки выполняется во время загрузки. Но если эта проверка не была выполнена или нужно поверить другой носитель, придется все делать вручную. Для этого есть утилита fsck.
$ fsck [опции] устройство
- -p - автоматическое восстановление
- -n - только проверка, без восстановления
- -y - ответить да на все запросы программы
- -с - проверить на битые сектора (аналог badblocks
- -f - принудительная проверка, даже если раздел помечен как чистый
- -j - внешний журнал файловой системы
Проверка файловой системы Linux выполняется такой командой, проверим диск /dev/sda6, заметьте, что диск должен быть не примонтирован:
sudo fsck -a /dev/sda6
root: clean, 11/32704 files, 37901/102400 blocks
Как создать расширенный раздел диска с помощью команды fdisk
Обратите внимание, что вы должны использовать все оставшееся пространство при создании расширенного раздела, потому что вы затем можете создать в нем несколько логических разделов.
Как просмотреть нераспределенное дисковое пространство с помощью команды fdisk
Как описано в предыдущем разделе, мы полностью создали 4 раздела (3 основных и 1 расширенный). Дисковое пространство расширенного раздела будет отображаться как неразмеченное, пока вы не создадите в нем логические разделы.
Используйте приведенную ниже команду для просмотра неразмеченного пространства для диска. В соответствии с приведенным ниже выводом у нас есть 7ГБ неразмеченного диска.
Как смонтировать раздел в Linux
После того, как вы создали раздел и файловую систему, нам нужно смонтировать раздел для использования.
Для этого нам нужно создать точку монтирования для монтирования раздела. Используйте команду mkdir для создания точки монтирования.
Для временного монтирования используйте приведенную ниже команду. Эта точка монтирования не сохранится после перезагрузки вашей системы.
Для постоянного монтирования добавьте информацию о разделе в файл fstab. Это можно сделать двумя способами: добавить имя устройства или значение UUID.
Постоянное монтирование с использованием имени устройства:
Постоянное монтирование с использованием значения UUID. Чтобы получить UUID раздела, используйте команду blkid.
(C) В.А.Костромин, 2004.
Синтаксис parted
Синтаксис parted выглядит следующим образом:
$ parted [опции] устройство [команда]
В квадратных скобках указанны необязательные аргументы.
- опции указывают как будет работать программа, например, интерактивный режим работы или скриптовый, или нужно просто вывести справку.
- устройство - жесткий диск с которым будет работать программа.
- команда - действие которое нужно выполнить над жестким диском.
Как вывести список доступных дисков с помощью команды fdisk
Сначала мы должны узнать, какие диски были добавлены в систему, прежде чем выполнять какие-либо действия. Для просмотра списка всех доступных дисков в вашей системе выполните приведенную ниже команду. Она выведет возможные сведения о дисках, такие как имя диска, количество разделов на нем, размер диска, тип метки диска, идентификатор диска, идентификатор раздела и тип раздела.
Изменение UUID раздела
UUID (Universally Unique IDentifier ≈ Универсальный Уникальный ИДентификатор) дается разделу автоматически при его форматировании. UUID записан в суперблоках файловой системы.
Чтобы узнать UUID'ы всех разделов вашей системы нужно применить команду:
Такой синтаксис команды предпочтителен. Подробное объяснение в статье "Как узнать UUID'ы разделов?", там же описаны другие команды для этой цели.
Хотя теоретически можно самостоятельно придумать новый UUID, рекомендуется пользоваться командой uuid ≈ генератором UUID'ов. Если у вас нет этой команды, то нужно установить пакет uuid (или соответствующий ему в вашей системе) привычным вам способом. Команда без лишних слов генерирует новый UUID при каждом запуске.
Поскольку UUID есть атрибут файловой системы, то для его изменения применяется команда tune2fs, служащая для настройки файловых систем ext2, ext3, ext4.
Проверим, что получилось:
Отлично! Теперь займемся меткой тома.
Как изменить метку тома
Для чего вообще нужна метка тома? Дело в том, что в современных операционных системах все определение и монтаж / демонтаж разделов происходит автоматически при помощи udev и HAL. Если раздел не имеет метки тома, то он будет примонтирован как безликий /media/disk . А если разделов много, то разобраться где какой disk можно только "методом тыка". Другое дело, если раздел имеет LABEL (метку тома). В этом случае он и будет примонтирован под понятным вам именем. Кроме того, метку тома можно прописывать, как и UUID, в /etc/fstab и прочих конфигурационных файлах. Это даже удобнее, чем UUID'ы, так как сразу видно, что это за раздел.
Узнать, какой раздел кроется за данной меткой тома, можно при помощи команды:
Если вы часто удаляете / создаете разделы, то их имена (/dev/sdxx) могут измениться, зато UUID и LABEL останутся неизменными и никакой путаницы в конфигах не произойдет.
Итак, два раздела с одинаковой меткой тома ≈ это нонсенс! Давайте менять метку. Для этого применяется команда e2label. Она не входит в стандартный набор команд, поэтому скорее устанавливайте одноименный пакет. Пользоваться ей просто ≈ пишем имя раздела и за ним новый LABEL:
Теперь наш основной рабочий раздел (/dev/sda7 "squeeze") и его клон (/dev/sda8 "clone") имеют свои уникальные UUID'ы и понятные метки тома.
Оригинал: 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. Если вы работаете в большой компании, вам придется выполнять эту задачу несколько раз в день.
Как вывести список доступных действий для команды fdisk?
Если вы нажмете m в команде fdisk, вы увидите доступные действия.
Выводы
Теперь вы знаете как пользоваться parted Linux и этой информации достаточно чтобы не потеряться в случае, если окажетесь без доступа к графическому интерфейсу и вам понадобится разбивка жесткого диска в консоли Linux.
Если вы много экспериментируете со своей системой Linux, постоянно пробуете всякие новые программы, частый гость в репозиториях testing и Sid, пробуете удалить GRUB2 и поставить Grub Legacy и т.д. и т.п., то у вас, без сомнения, есть запасной клон вашей системы, спрятанный где-нибудь в надежном месте. О изготовлении таких клонов я писал в конце 2010 года.
Но, если вы "убили" систему, а клон еще не занял ее место, вы, лишенные привычного рабочего окружения, некоторое время испытываете определенные неудобства. Поэтому предлагаю для экспериментов иметь клон вашей системы в соседнем разделе того же диска.
Все эксперименты сначала проводятся на клоне ≈ подопытном кролике, и в случае удачи переносятся в основной вариант системы.
Разметка диска в 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 завершена. Работу с файловыми системами мы в этой статье опустим, так как для этого используются уже другие команды, которые мы рассмотрим в одной из следующих статей.
Изменение метки файловой системы
Утилита e2label позволяет изменить или посмотреть метку раздела диска. Принимает всего два параметра - устройство и новую метку если нужно.
sudo e2label /dev/sda6
sudo e2label /dev/sda6 root1
Настройка файловой системы linux
Различные параметры файловой системы, такие как размер блока данных, иноды или зарезервированное место под данные пользователя root можно настроить. Для этого существует утилита tune2fs.
Синтаксис команды очень прост:
$ tune2fs опции устройство
Поддерживаются следующие опции:
- -j - создать файл журнала. Позволяет превратить файловую систему ext2 в ext3.
- -J - настроить параметры журнала
- -l - получить содержимое суперблока
- -L - изменить метку раздела
- -m - изменить процент дискового пространства, зарезервированного для суперпользователя
- -M - изменить последнюю папку монтирования
- -U - задать UUID файловой системы
- -C - изменить значение счетчика монтирования
- -T - изменить последнюю дату проверки файловой системы
- -с - изменить периодичность проверок файловой системы с помощью fsck
- -O - изменить опции файловой системы.
Изменить размер зарезервированного места для суперпользователя до пяти процентов:
sudo tune2fs -m 5 /dev/sda6
Setting reserved blocks percentage to 5% (392358 blocks)
Посмотреть информацию из суперблока, эта команда показывает всю доступную информацию параметрах файловой системы:
Изменить счетчик количества монитрований:
tune2fs -C 0 /dev/sda6
Setting current mount count to 0
Думаю тут смысл понятен, нужно только немного со всем этим поэкспериментировать.
С помощью опции -O мы вообще можем превратить нашу ext3 в ext4 следующей командой:
sudo tune2fs -O extents,uninit_bg,dir_index
После этого действия нужно выполнить проверку файловой системы на ошибки в fsck. Подробнее об этом поговорим ниже.
sudo fsck -np /dev/sda6
Таким образом вы можете изменить файловую систему linux, и настроить по своему усмотрению любые ее параметры.
Как создать раздел на диске с помощью команды fdisk
Если вы хотите создать новый раздел, выполните следующие действия. В моем случае я собираюсь создать 4 раздела (3 основных и 1 расширенный) на диске /dev/sdc.
Поскольку он принимает значение из таблицы разделов, нажмите Enter для первого сектора. Введите размер, который вы хотите установить для раздела (мы можем добавить размер раздела, используя КБ, МБ, ГБ и ТБ) для последнего сектора.
Например, если вы хотите добавить раздел размером 1 ГБ, последним значением сектора должно быть + 1G. Как только вы создали 3 раздела, fdisk автоматически изменит тип раздела на расширенный по умолчанию. Если вы все еще хотите создать четвертый первичный раздел, тогда нажмите p вместо значения по умолчанию e.
Как создать логический раздел с помощью команды fdisk
Выполните ту же процедуру, описанную выше, чтобы создать логический раздел после создания расширенного раздела. Здесь я создал логический раздел размером 1 ГБ с именем /dev/sdc5, вы можете убедиться в этом, проверив значение таблицы разделов.
4. Программа parted и ее производные
Утилиты, рассмотренные в предыдущих частях статьи, имели своим основным назначением создание разделов на новых, девственно чистых дисках. И хотя в последних версиях таких утилит как DiskDrake или YaST предусмотрена возможность трансформации существующих разделов, для решения последней задачи были разработаны специализированные утилиты. Основной утилитой этого типа в Линукс является программа parted (или GNU/parted), название которой, очевидно, происходит от PARTition EDitor.
4.1. Программа parted
- raw access (я перевожу это как "прямой доступ") - используется для логических томов (LVM) и RAID-массивов,
- bsd,
- loop (raw disk access),
- gpt - Intel GPT partition tables,
- mac,
- msdos,
- pc98,
- sun.
Таблица 2. Файловые системы, поддерживаемые программой parted
Формат запуска программы имеет следующий вид
Впрочем, номер версии программа и так сообщает при каждом запуске. Указание на устройство хотя и не является обязательным (по умолчанию будет рассматриваться то устройство, на котором находится текущий рабочий каталог), но лучше, на мой взгляд, указать его явно, чтобы точно знать, с каким диском идет работа. Впрочем, если вы не указали диск при запуске, можно будет позже воспользоваться командой select.
Сама программа представляет собой оболочку, распознающую всего 16 команд, с помощью которых можно не только создавать новые разделы, но и изменять структуру существующих. Команды можно указывать непосредственно в командной строке, а можно и после входа в оболочку. Давайте рассмотрим работу с программой в интерактивном режиме (то есть через оболочку), после чего выполнение команд прямо из командной строки уже не должно представлять никаких затруднений.
После запуска первым делом следует посмотреть на существующую на диске структуру разделов. Это можно сделать с помощью команды print. Я на своем тестовом диске увидел следующую картину:
MINOR здесь и далее означает номер Linux-раздела на текущем диске, а величины START и END задают смещение начала и конца раздела от начала диска (в мегабайтах), причем я в ходе работы с программой всегда использовал целые значения, а программа сама приводила их к каким-то дробным, по ей самой ведомым правилам. Заметим также, что можно использовать отрицательные значения для указания границ размеров разделов. Это будет означать, что смещение будет отсчитываться от конца диска, то есть соответствующая величина будет вычитаться от общего размера диска (следовательно, "-0" равно объему всего диска).
Краткую справку по всем командам можно получить, введя знак вопроса или команду help в ответ на приглашение программы (рис.22).
Рис.22. Запуск программы parted в консоли
Теперь вы знаете с каким диском работаете (см. результат выполнения команды print) и какие действия вам доступны (результат выполнения команды help). Если вы хотите поменять диск, то самое время время воспользоваться командой select DEVICE.
Теперь давайте перейдем непосредственно к манипуляциям с разделами. Однако имейте в виду, что команды выполняются сразу, как только вы нажмете клавишу , то есть все изменения сразу же будут записаны на диск. Правда, программа parted будет выдавать предупреждения всякий раз, когда вы попытаетесь выполнить какое-то потенциально опасное действие, например, выполнить команды rm, mklabel или mkfs. Тем не менее, перед вводом каждой команды имеет смысл посмотреть подсказку по ее использованию, для чего выполнить команду help command (то есть с указанием в виде параметра имени нужной команды), а перед нажатием клавиши еще раз подумать, что вы намереваетесь сделать.
Поскольку на моем диске свобдного места не было, я начал освоение программы parted с уменьшения размера существующего раздела. Эта операция выполняется с помощью команды resize. Мне удалось с помощью этой команды уменьшить размер второго раздела вдвое, обеспечив тем самым наличие свободного пространства, необходимого для последующих операций.
Создание раздела на свободном пространстве осуществляется с помощью команды
(parted) mkpart тип-раздела [тип_FS] START END
где тип_раздела может принимать одно из трех значений: primary, logocal или extended. Параметр тип_FS не обязателен, файловую систему на созданном разделе можно сформировать и позже, с помощью отдельной команды
(parted) mkfs MINOR тип_FS.
Создание раздела без создания файловой системы (то есть без задания параметра тип_FS) используется в тех случаях, когда раздел предназначен для файловых систем, не поддерживаемых программой parted, а также при создании логических томов (LVM).
Мне без проблем удалось создать разделы типа ext2 и fat32, а вот разделы типов ext3, ntfs и xfs программа создавать отказалась (как оно и следует из приведенной выше таблицы 2).
Создание нового раздела и одной из возможных файловых систем можно выполнить за один раз, если воспользоваться командой
(parted) mkpartfs тип-раздела тип_FS START END
Как видите, она аналогична команде mkpart, только здесь параметр тип_FS обязателен.
Команда копирования cp, как оказалось, не может копировать разделы, она предназначена для копирования файловой системы со всеми хранящимися в ней данными из одного существующего раздела в другой. То есть, чтобы скопировать раздел, надо его предварительно создать, а потом уже копировать в него данные из существующего раздела.
Команды копирования и перемещения разделов работают только в пределах одного жесткого диска. Зато они доступны для любых файловых систем, поскольку данные операции выполняются посекторно. Например, команда
(parted) cp 2 3
скопирует все данные из второго раздела в третий, при этом не имеет значения, что третий раздел больше по размеру, и что на нем до выполнения этой команды была файловая система fat16, а на втором разделе была файловая система ext2. Естественно, все ранее записанные на 3-ий раздел данные будут этой командой уничтожены.
Команда rescue поможет восстановить структуру накопителя, если таблица разделов по какой-то причине оказалась разрушена. Достаточно лишь указать дисковое пространство (лучше с запасом), на котором находился раздел, и утилита попытается отыскать его сигнатуру. Я удалил со своего диска все разделы, кроме одного swap-раздела и запустил команду rescue. Результат вы видите на следующем рисунке!
Рис.23. Восстановление разделов
Как видите, разделы приходится восстанавливать по-очередно, по одному. И найти программа сумела не все только что удаленные разделы, а только два первых раздела диска. Два последних раздела (удаленных первыми) не нашлись. Причина, я полагаю, в том, что никакой структуры на этих разделах не было создано, поскольку файловые системы я на них не создавал. Во всяком случае, когда я снова создал раздел, затем создал на нем файловую систему, потом удалил раздел и снова выполнил команду rescue, удаленный раздел был успешно найден.
По тем же причинам после того, как вы подредактируете раздел, который был смонтирован, когда вы с ним работали (вы же могли проигнорировать выдаваемое программой предупреждение), следует сразу же внести соответствующие в fstab и немедленно перезагрузить систему.
Надо сказать, что интерфейс программы parted не назовешь интуитивно понятным, а поэтому работа с ней не является приятным занятием. Поэтому я закончу на этом ее расмотрение и перейду к рассмотрению графической облочки к утилите parted - программе QTParted.
4.2. Утилита QTParted
-
"QTParted является попыткой создать клон Partition Magic, работающий в Линукс-системах. В действительности такой клон уже сущестует и называется parted. Но parted имеет интерфейс, основанный на командной строке, что затрудняет использование программы неопытными пользователями.
Программа parted фактически является основанным на командной строке интерфейсом пользователя к библиотеке libparted. Эта библиотека является тем ядром, которое выполняет операции по редактированию разделов. QTParted является графическим пользовательским интерфейсом к той же библиотеке libparted, написанным с использованием QT (отсюда и название: QT + Parted = QTParted)."
После запуска программы вначале появляется окно, изображенное на рис. 24.
Рис. 24. Запуск программы QTParted
Чтобы увидеть разделы диска, необходимо вначале выбрать устройство из списка доступных, приведенного в левой части окна. Только после этого программа считывает таблицу разделов (рис. 25)
Рис. 25. Считывание информации о структуре разделов
и отображает структуру диска в графическом виде, и в виде таблицы в правой части окна. В левой части появляется краткая справка о выбранном диске:
Рис. 26. Отображение существующей структуры разделов
Поскольку QTParted является оболочкой к той же библиотеке libparted, что программа parted, она имеет примерно те же возможности, что и parted (смотри таблицу 2). Конечно, для работы с NTFS необходимо наличие пакета linux-ntfs . Впрочем, NTFS-разделы все же лучше изменять с помощью программ типа Partition Magic, поскольку более или менее сложные манипуляции с разделами NFTS в среде Linux все еще связаны с риском потери данных.
Для того, чтобы изменять размеры разделов с файловыми системами ReiserFS, должен быть установлен пакет progsreiserfs . Доступность данной операции просто определяется по наличию соответствующего пункта в контекстном меню.
Если вы видите, что меню операций не активно (все пункты или большинство отображаются серым цветом и щелчок мыши по ним не приводит к видимым результатам), то скорее всего на текущем диске имеются используемые системой разделы. У меня, например, использовался только один swap-раздел, тем не менее программа отказывалась выполнять какие-то действия с диском до тех пор, пока я не отключил его командой swapoff /dev/hdb1. Так что предварительно необходимо размонтировать все обычные разделы и отключить swap-разделы диска.
Хочу отметить одну особенность отображения разбиения диска утилитой QTParted. На рисунке 27 вы видите картину разбиения моего диска /dev/hda, как его показала эта утилита:
Рис. 27. Отображение неиспользуемых областей диска
Обратите внимание на то, что в первом первичном разделе и в каждом из расширенных разделов показаны неиспользуемые "пробелы" объемом 0,3 МБ каждый. Я вначале не мог объяснить причину появления этих "пробелов" и даже "грешил" на утилиту Disk Druid, с помощью которой разбивал диск на разделы в процессе инсталляции. И только когда стал разбираться с командой Maximize в утилите cfdisk, понял, откуда берутся эти "пустоты". Как уже было рассказано при описании утилиты cfdisk, первый раздел диска, а также все логические разделы начинаются со второй дорожки цилиндра, оставляя первую дорожку пустой. Эти пустые дорожки и отображаются утилитой QTParted.
4.3. Утилита Partition Morpher
Утилита QTParted, как уже было сказано, является просто графической оболочкой для библиотеки libparted, построенной на основе графической библиотеки QT. Другая аналогичная утилита - Partition Morpher, построена на основе библиотеки GTK2 и той же библиотеку libparted из проекта parted, а поэтому обладает примерно теми же возможностями, что и QTParted.
Я не работал с утилитой Partition Morpher, поэтому не могу подробно охарактеризовать работу с этой программой. Приведу только заимствованный с того же сайта рисунок окна программы Partition Morpher, по которому вы можете составить себе представление о программе и ее возможностях.
Рис. 28. Основное окно утилиты Partition Morpher
4.4. Программа gparted
Для создания разделов с файловыми системами разных типов утилита использует стандартные утилиты работы с файловыми системами. Например, для разделов с ext2/3 используется пакет e2fstools, а для работы с разделами reiserfs необходимы соответствующие утилиты от Namesys.
Во время выполнения различных задач по администрированию системы может понадобится работать с файловой системой Linux, форматировать разделы, изменять их размер конвертировать файловые системы, выполнить дефрагментацию в Linux или восстановление файловых систем.
Многие из этих действий выполняются в графическом интерфейсе, многие и вовсе автоматически. Но может возникнуть ситуация, в которой придется делать все через терминал. Также при администрировании удаленных серверов работать с ними приходится только через ssh, а это означает недоступность графического интерфейса.
В этой статье мы рассмотрим как выполняется работа с файловой системой Linux в терминале. За основу возьмем семейство файловых систем ext2/3/4, так как они самые распространенные среди большого многообразия дистрибутивов 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
Если раздел больше не используется в системе, мы можем удалить его, используя следующие шаги.
Убедитесь, что вы будете вводить правильный номер раздела, чтобы удалить его. В данном случае я собираюсь удалить раздел /dev/sdc2.
Основные команды
Для управления файловой системой ext в Linux используется целый набор команд из пакета e2progs. Сюда входят как команды для управления флагами файлов, создания и изменения файловых систем, так и утилиты для отладки файловой системы.
Рассмотрим основные утилиты, которые будем использовать:
- badblocks - если у вас старый жесткий диск и на нем накопилось много битых блоков, вы можете с помощью этой утилиты пометить их все на уровне файловой системы, чтобы больше не использовать.
- e2label - позволяет изменить метку раздела с файловой системой ext.
- fsck - проверка файловой системы linux и исправление найденных ошибок
- mkfs - позволяет создать файловую систему Linux.
- resize2fs - изменить размер раздела с файловой системой
- tune2fs - позволяет изменить файловую систему Linux, настроить ее параметры.
А теперь будет рассмотрена работа с файловой системой linux на примерах.
Как установить fdisk в Linux
Вам не нужно устанавливать fdisk в системе Linux, потому что он установлен по умолчанию как часть утилит core.
Читайте также: