- Как изменить UUID раздела и его метку
- А зачем?
- Как делается клон
- Изменение UUID раздела
- Как изменить метку тома
- Parted — управление разметкой и разделами дисков в Linux
- Установка parted в Linux
- Управление таблицей разделов в parted, разметка диска
- Создание нового раздела в parted
- Как расширить или уменьшить размер раздела диска с помощью parted
- Удаление раздела с помощью parted
- Восстановление случайно удаленных разделов с помощью rescue
- Команда parted в Linux
- Синтаксис parted
- Опции и команды parted
- Разметка диска в Linux
- Выводы
Как изменить UUID раздела и его метку
А зачем?
Если вы много экспериментируете со своей системой Linux, постоянно пробуете всякие новые программы, частый гость в репозиториях testing и Sid, пробуете удалить GRUB2 и поставить Grub Legacy и т.д. и т.п., то у вас, без сомнения, есть запасной клон вашей системы, спрятанный где-нибудь в надежном месте. О изготовлении таких клонов я писал в конце 2010 года.
Но, если вы «убили» систему, а клон еще не занял ее место, вы, лишенные привычного рабочего окружения, некоторое время испытываете определенные неудобства. Поэтому предлагаю для экспериментов иметь клон вашей системы в соседнем разделе того же диска.
Все эксперименты сначала проводятся на клоне ≈ подопытном кролике, и в случае удачи переносятся в основной вариант системы.
Как делается клон
Затем клонируем систему в новый раздел:
(bs=10M ≈ это величина блока (в данном случае ≈ 10 мегабайт), которыми будет происходить копирование на уровне секторов диска. Чем больше блок, тем быстрее копируется, но и меру нужно знать).
Полученный клон является побайтовой копией оригинала, поэтому он имеет ту же файловую систему со всеми своими суперблоками на тех же местах. Дублируется также и нулевой сектор, недоступный при обычном копировании. Кроме того, при копировании командой cp данные записываются на свободное место, а при клонировании ≈ на то же самое, что и в оригинале. Это приводит к тому, что оригинал и клон имеют абсолютно идентичные файловые системы, одинаковые UUID’ы и метки тома.
Так как мы собираемся пользоваться обеими копиями одновременно, то наличие у них одинаковых UUID’ов и меток (LABEL), неудобно в работе, так как приводит к путанице. Почему и нужно изменить UUID клона и дать ему новую метку.
Изменение UUID раздела
Чтобы узнать UUID’ы всех разделов вашей системы нужно применить команду:
Такой синтаксис команды предпочтителен. Подробное объяснение в статье «Как узнать UUID’ы разделов?», там же описаны другие команды для этой цели.
Хотя теоретически можно самостоятельно придумать новый UUID, рекомендуется пользоваться командой uuid ≈ генератором UUID’ов. Если у вас нет этой команды, то нужно установить пакет uuid (или соответствующий ему в вашей системе) привычным вам способом. Команда без лишних слов генерирует новый UUID при каждом запуске.
Поскольку UUID есть атрибут файловой системы, то для его изменения применяется команда tune2fs, служащая для настройки файловых систем ext2, ext3, ext4.
Проверим, что получилось:
Отлично! Теперь займемся меткой тома.
Как изменить метку тома
Узнать, какой раздел кроется за данной меткой тома, можно при помощи команды:
Если вы часто удаляете / создаете разделы, то их имена (/dev/sdxx) могут измениться, зато UUID и LABEL останутся неизменными и никакой путаницы в конфигах не произойдет.
Итак, два раздела с одинаковой меткой тома ≈ это нонсенс! Давайте менять метку. Для этого применяется команда e2label. Она не входит в стандартный набор команд, поэтому скорее устанавливайте одноименный пакет. Пользоваться ей просто ≈ пишем имя раздела и за ним новый LABEL:
Теперь наш основной рабочий раздел (/dev/sda7 «squeeze») и его клон (/dev/sda8 «clone») имеют свои уникальные UUID’ы и понятные метки тома.
Источник
Parted — управление разметкой и разделами дисков в Linux
Parted – (сокращенно от PARTition EDitor) редактор дисковых разделов для Linux, предназначенный для управления разметкой, создания, удаления и изменения размеров разделов диска. Утилита проста в использовании и доступна для всех дистрибутивов Unix/Linux систем. Кроме того, доступна GUI версия — Gparted. В данной статье, мы покажем, как управлять разделами диска с помощью parted на примере CentOS 8 (в других дистрибутивах Linux все работает аналогично). В Windows аналогом команды parted является diskpart .
Установка parted в Linux
Обновите набор по на сервере и установите пакет parted с помощью менеджера пакетов вашего дистрибутива Linux. Для CentOS 8 с менеджером пакетов dnf (который заменил yum), можете установить parted из базового репозитория командой:
# dnf update -y
# dnf install parted -y
Или в Debian/Ubuntu:
# apt-get install parted
Чтобы проверить версию утилиты, выполните команду:
Чтобы попасть в саму оболочку, введите:
Управление таблицей разделов в parted, разметка диска
Выведем список доступных дисков:
Доступен диск /dev/vdb размером 21 Гб, диску не присвоена метка (error /dev/vdb: unrecognized disk label), какая таблица разделов – не понятно.
Можно создать на диске разметку msdos (MBR)
Или таблицу разделов gpt ( GUIE partition table поддерживает размер раздела более 2 Тб) :
Теперь parted показывает тип таблицы разделов (разметки) на диске:
Как вы видите, на диске уже есть таблица разделов MBR, но сами разделы еще не созданы.
Если у вас на сервере имеется несколько свободных дисков, то можно переключаться между ними с помощью команды:
Создание нового раздела в parted
Для создания раздела в parted, используется утилита mkpart . При вводе команды в интерактивном режиме будут появляться вопросы о параметрах нового раздела:
- Partition type — указываем тип раздела (primary / extended)
- File system type — файловая система, по умолчанию предлагается ext2 (в дальнейшем мы ее изменим);
- Start — начальный сектор раздела
- End — конечный сектор раздела (в мегабайтах). В нашем примере мы указали 5000, это значит, что будет создан раздел размером 5Гб.
(parted) print free
Можно сразу создать раздел на весь диск:
# (parted) mkpart primary 0 0
или указать произвольный размер раздела так:
# (parted) mkpart primary 0 1GB
Также можно указывать размер диска в % и задать метку:
# (parted) mkpart «home part» ext4 2.5GiB 100%
Чтобы выйти из оболочки parted, выполните команду:
Отформатируем раздел в файловой системе ext4:
Проверяем файловую систему раздела и видим, что она изменилась (обратите внимание что команда print выводит теперь список разделов на диске, их номера, тип, размер и файловую систему).
Можно создать раздел и отформатировать его, не входя в оболочку parted, например:
# parted -a opt /dev/vdb mkpart primary ext4 0% 100% && mkfs.ext4 /dev/vda1
Данной командой мы создадим раздел на диске vdb, под который отдадим всё пространство.
Таким образом вы можете упрощать себе работу или же добавлять подобные команды в какие-то скрипты или файлы кикстарта.
Как расширить или уменьшить размер раздела диска с помощью parted
Чтобы расширить или уменьшить размер раздела в partedиспользуется субкоманда resizepart Можно изменить размер раздела в интерактивном режиме. В оболочке parted введите команду:
Система запросит номер раздела (берется из вывода команды print) и конечный размер раздела. В этом примере размер разделе будет увеличен с 5 до 10 Гб:
Для уменьшения размер файловой системы используются следующие команды. Для файловых систем ext2/3/4 :
resize2fs /dev/sdab size
btrfs filesystem resize /dev/sdab size
Изменять флаг раздела в parted тоже возможно, вы можете установить один из нужных вам:
Например сделаем раздел загрузочным:
Удаление раздела с помощью parted
Если вам требуется удалить раздел на диске, вы можете использовать команду rm в оболочке parted:
Эта команду удалит раздел с номером 1:
Будьте осторожны в использовании данной команды, так как она не требует подтверждение удаления.
Восстановление случайно удаленных разделов с помощью rescue
Удаленный раздел можно восстановить с помощью утилиты rescue, которая доступа в оболочке parted:
Команда запросит начальный и конечный размер разделе. Если на этих позициях есть инфа о разделе, команда попробует восстановить удаленный раздел.
Как видите, утилита parted проста в использовании и очень удобна для создания/изменения разделов вашего диска. Надеемся, что данная статья поможет вам разобраться во многих вопросах.
Источник
Команда parted в Linux
При переустановке системы, установке нового дистрибутива или просто реорганизации файловых систем мы часто имеем дело с жесткими дисками. Часто нужно добавлять, удалять или изменять размер разделов, управлять их флагами или конвертировать файловые системы. Для этого в Linux есть достаточно различных инструментов как с графическим интерфейсом, так и консольных. Разобраться в графическом интерфейсе Gparted, я думаю вам не составит труда, но в некоторых случаях бывает нужна разбивка жесткого диска на разделы linux в терминале, без доступа к Х серверу, а это может стать серьезной проблемой.
В этой статье мы разберем как выполнять основные операции, которые мы привыкли делать в Gparted, такие как разметка диска, удаление и создание раздела, в терминале, а поможет в этом команда parted Linux. Сначала рассмотрим саму команду parted.
Синтаксис parted
Синтаксис parted выглядит следующим образом:
$ parted [опции] устройство [команда]
В квадратных скобках указанны необязательные аргументы.
- опции указывают как будет работать программа, например, интерактивный режим работы или скриптовый, или нужно просто вывести справку.
- устройство — жесткий диск с которым будет работать программа.
- команда — действие которое нужно выполнить над жестким диском.
Опции и команды 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
Во всем, что вы изучаете нужна практика и работа с жесткими дисками linux не исключение. Но практиковаться на реальном диске, рискуя повредить файловую систему не совсем правильно, а создавать виртуальную машину для таких целей слишком непрактично. Но есть решение. В Linux все считается файлами, и жесткий диск в том числе представлен в виде файла. Из этого выплывает интересная возможность. Мы можем использовать обычный файл вместо жесткого диска для своих экспериментов.
Создадим себе тестовый полигон командой:
sudo dd if=/dev/zero of=/disk.img count=2000 bs=1M
Таким образом, мы получим файл размером 2000 мегабайт, заполненный нулями, с которым можно спокойно работать. Запустим parted, передав ему вместо устройства наш файл:
sudo parted /disk.img
Когда надо будет работать с реальным диском, просто передайте путь к файлу его устройства утилите:
sudo parted /dev/sda
Программа запустится в интерактивном режиме и вы сможете выполнять нужные команды. Сначала попытаемся посмотреть список разделов на устройстве:
Он пуст потому что даже нет таблицы разделов. Пока её нет, разметка дисков в Linux не может быть выполнена, нам предстоит ее создать. Для этого воспользуйтесь командой mktable:
(parted) mktable gpt
Будем мы создали таблицу разделов типа gpt, но можно выбрать одну из этих: aix, amiga, bsd, dvh, gpt_sync_mbr, gpt, mac, msdos, pc98, sun, loop
Теперь давайте создадим новый раздел с файловой системой ext2 размером 100 мегабайт. Для этого есть команда mkpart, как вы помните ей нужно передать три параметра: тип раздела, файловую систему и координаты. Тип раздела может быть: primary, logical, extended (первичный, логический и расширенный).
В gpt можно создавать нужное количество первичных разделов и не задумываться об их типе. Это все было создано для MBR, в этой таблице есть ограничение на количество первичных разделов — только четыре. Поэтому приходилось создавать три первичных и один расширенный, в который вкладывались уже сколько нужно логических.
Ну так вот, создаем первичный:
(parted) mkpart primary ext2 0 400М
Поскольку это первый раздел, начинаем мы с нуля, а заканчиваем нужным нам размером — 400 мегабайт.
Смотрим список разделов еще раз:
Создадим еще несколько разделов, например для корня системы и для домашней папки:
(parted) mkpart primary ext4 400 1000M
(parted) mkpart primary ext4 1000M -0M
Параметр -0 означает вести отсчет от конца раздела, таким образом будет занято все доступное пространство под третий раздел. Смотрим что получилось:
Работа с диском в Linux осуществляется по их номерам. Давайте уменьшим последний раздел и создадим после него ещё один:
(parted) resizepart 3 1600M
Также можно указать нужный размер в процентах:
(parted) resizepart 3 60%
А теперь создание раздела parted:
mkpart primary ext4 1600M -0M
Удалим только что созданный четвертый раздел:
Зададим метки для существующих разделов с помощью команды name:
(parted) name 1 boot
(parted) name 2 root
(parted) name 3 home
Сделаем первый раздел загрузочным командой set:
Можно устанавливать следующие флаги: boot, root, swap, hidden, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot, type, irst.
Вот в принципе и все. Разбивка диска на разделы Linux завершена. Работу с файловыми системами мы в этой статье опустим, так как для этого используются уже другие команды, которые мы рассмотрим в одной из следующих статей.
Выводы
Теперь вы знаете как пользоваться parted Linux и этой информации достаточно чтобы не потеряться в случае, если окажетесь без доступа к графическому интерфейсу и вам понадобится разбивка жесткого диска в консоли Linux.
Источник