Как изменить gpt на mbr ubuntu

I keep receiving this error: Warning!! Unsupported GPT (GUID Partition Table) detected. Use GNU Parted I want to go back to the normal MBR. I found some advice here and did: parted /dev/sda mk...

This should work for most cases. You know you cannot use a MBR when you have partitions larger than 2TB, or for more than 15 partitions.

  • Use parted to check partition’s sizes (i.e. are all smaller than 2TB?), parted /dev/sdX p
  • In case there are larger partitions, shrink the filesystem in question and everything else that needs to be done. (More on this at the end of this posting.)
  • Dump all the exact partition sizes, parted /dev/sdX u B p (show sizes in bytes), so you know how you could eventually recreate the partition layout. Use your phone to make a photo from both parted outputs.
  • Remember you can only have four primary partitions with a MBR due to its internal structure. So if you have more partitions, you need free space somewhere on your disk (ofc you need to know where this could be!), to create a logical partition where a VBR can be put onto so you can ‘allocate’ the other 4th/5th/6th partition that previously existed.
  • Use gdisk to zap the GPT.
  • Create a new MBR.
  • Recreate your partitions, the 1st/2nd/3rd as primary partitions, then on some free space (WHERE NO DATA WAS LOCATED PRIOR!!!) create a logical partition, then create the others.
  • Save, quit.
  • Pray.
  • Reboot.

You should use a livedisk like grml for all this. In case you did something wrong, reboot and retry.

As long as you do not write any data onto the disk, nothing is lost. Remember you still have all your partition layout on your phone, so you can recreate the original GPT if really need be.

In case your really fuck something up and did not take photos, try testdisk for discerning the partition boundaries. But don’t bet any money on it as soon as your layout was anything extraordinary.


On the resizing stuff for making partitions smaller, birds eye perspective:

  • First you always have to shrink the filesystem. Easy for ext4 (resize2fs -M dev/sdX), but impossible for XFS as it cannot be shrunk. Know what you are using and google before attempting such stunts.
  • If you have LVM, shrink the logical volume next. (lvreduce -L 20G /dev/mapper/<VG>-<LV>)
  • Next LVM step is downsizing the physical volume. pvresize --setphysicalvolumesize 25G /dev/sdX is the way to go.
  • Afterwards use the partitioning tool of choice, delete the partition where your lvm is put on, and recreate it smaller.

Sizes for all mentioned elements mentioned here are like: Filesystem < LV < PV < partition, if this is not the case after the next reboot you will see you have to do a FS check. Don’t do it, just reboot into the livedisk again, and make your adjustments. If you fix things there, your system will boot again, I promise.

To be able to do all this, in case you have PARTITION + LUKS + LVM + FILESYSTEM, here are some hints on how to do this from the shell:

  • df -h is your friend for showing the filesystem size when you mounted the partition
  • lsblk and lsblk -f are your friends for showing partitions
  • If you use LUKS, open the crypto container via cryptsetup open /dev/sdX asdf, enter your password and it should become available unter /dev/mapper/asdf. Cryptocontainers do not need to be resized. (Skip this if you don’t have an encrypted partition, of course.)
  • vgchange -aay to activate all logical volumes so you can work with them.
  • mkdir asdf; mount /dev/mapper<VG>-<LV> asdf and then df -h to check the size of your filesystem prior to resizing.
  • umount asdf so it is unmounted again.
  • resize2fs -M /dev/mapper/<VG>-<LV>.
  • mount /dev/mapper/<VG>-<LV> asdf; df -h to check how big your filesystem still is.
  • Make the LV 1GB bigger than the file system. Chances are, this will not be sufficient. Make it even bigger than that if you can affort it, else linux will tell you after the reboot that it won’t work. DONT do the FS check when prompted, reboot into the livedisk and start again, no data is lost if that was the case.
  • Make the PV 1GB bigger than the LV.
  • Make the partition 1GB bigger then the PV. 100M should easily be sufficient, too, as LVM creates extents in size of 4M (that’s somewhat like blocks on the harddisk directly, but for LVM), and you only want it to not omit the last extent by making the partition too small. But as I said, should. Don’t calculate everything, just adjust things and fix them if they break. It’s linux after all, it let’s you do this.

Make things bigger than they need to be, so you don’t have to reboot as often.

To easily discern what is what with LVM, always use your hostname as name for the VG and the mountpoint (root, swap, var, …) for the LV when creating your LVM setup, if you didn’t already do it. This is general hint, not something you are required to do for anything of the above steps.

На ноутбук HP Probook 470 с SUSE, для тестов потребовалось поставить Windows 7. К сожалению возможности создать разделы C и D не увенчались успехом (MBR). Так как на диске уже присутствовали 3 основных раздела (BOOT, HP_Recovery, HP_Tools) то создавая 4-й раздел диск C мы больше не можем создавать других разделов в связи с известными ограничениями таблицы MBR. Просто и понятно написано здесь: «В чем разница между GPT и MBR»

Было принято решение конвертировать диск в GPT формат, на котором разделов можно создать сколько душе угодно. Довольно простым и рабочим (на половину) оказался вариант, который я нашел в соседнем блоге howto-press.blogspot.com. Можно использовать для преобразования из MBR в GPT без потери данных linux утилиту gdisk.

Был скачан последний дистрибутив Ubuntu 15.04 и очень прикольная утилита Universal-USB-Installer. С помощью утилиты образ был записан на флешку. 

Загружаемся с флешки, появляется сообщение, что делать с Ubuntu, выбираем запустить с флешки без установки. После загрузки Ubuntu нажимаем в левом верхнем углу что то типа виндовой кнопки «Пуск» и в поисковой строке пишем terminal. Откроется окно с командным интерфейсом в котором необходимо вводить все необходимые команды.

Устанавливать gdisk мне не пришлось, утилита уже была включена в дистрибутив. Ну а все остальные команды в выше упомянутой статье привели тому, что таблица разделов была конвертирована в нужный мне GPT формат.

Что не получилось? Почему я выше написал, что вариант рабочий но на половину? Дело в том, что после конвертации загрузочная запись MBR помахала мне ручкой и система не загружалась, но вторя половина которая мне была нужна — все данные на дисках остались на своих местах. Это гораздо удобнее чем утилита diskpart которая после команды clean дает вам вовсе чистый диск. А загрузочную запись можно и пофиксить.

Статья называется … из MBR в GPT и обратно… да, эта утилита так же легко (правда все с тем же затиранием загрузочной информации) проводит конвертирование таблицы разделов без потери данных из GPT в MBR. Все что для этого нужно — запуститься с флешки с Ubunut открыть командный терминал, и ввести следующие команды:

sudo gdisk

Затем указать диск с которым мы хотим проводить операции в моем случае это был /dev/sda.
Потом с помощью help’а введя ? мы узнаем что нужно ввести следующие команды по очереди:
r, g, w  затем для подтверждения вводим y. Все таблица разделов успешно конвертирована из GPT в MBR без потери данных.


Хотя утилита не дает 100% гарантию в том, что конвертация пройдет успешно и ваши данные никуда не денутся. Поэтому рекомендую делать бэкап критически важных файлов.


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


На этом все, пойду воскрешать загрузочную запись после конвертации.

Переходим на Линукс  »  Разметка диска GPT или MBR Linux

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

Существует 2 типа таблиц разметки:

  • Устаревшая MSDOS (MBR) [часто обозначается как BIOS, Legacy BIOS] — главная загрузочная запись — Master Boot Record, редакторы его могут отображать как dos или msdos.
  • И современная UEFI (GPT) — GUID Partition Table.

Диск можно разметить и поделить при установке операционной системы или в случае с многими установочными образами Линукса — операционная система запускается с флешки или с диска и можно в графическом режиме разметить диски. И не только — можно наставить софта, сделать какие-то изменения и все они будут записаны при установке операционной системы (это как вариант). Т.е. под рукой всегда живой образ системы с которого можно загрузиться и что-то сделать..

В графическом режиме доступны утилиты, например Редактор разделов System — PartitionManager, или GParted, кому что больше нравится.. Ниже покажу как это можно сделать из командной строки (консоли Linux).

Смысл делить диск на разделы в Линуксе — чтоб директория /home была в отдельном разделе (папки и настройки пользователей). В случае переустановки операционной системы отформатируем первый (корень) раздел и установим недостающий софт, и вуаля все настройки программ автоматом подцепятся из /home.. Сегодня достаточно 20Гб под корень / и от 10 ГБ под /home. т.е. создаём 2 раздела на диске + EFI раздел если доступен UEFI (GPT)..

Своп (linux-swap — раздел подкачки) я не использую, начиная с Ubuntu 18.04 отказываются от раздела swap, вместо него будет использоваться файл подкачки (swapfile)… Он может понадобиться для режима сна ноутбука или если мало памяти — система менее 1 — 2 Гб памяти использует (в зависимости от сборки).. Для режима сна необходим раздел/файл подкачки = размер памяти + 2 Гб. т.е. просто добавьте запас места в корневом разделе..

Если используете SSD диск — оставляйте 10% (от 10 до 20%) места в конце неразмеченными, это продлит его ресурс, поскольку там будут проходить фоновые операции записи.. (По умолчанию на SSD диске есть скрытая область для этого, эта неразмеченная пойдёт в плюс к ней..) И судя по тестам из интернетов — эта дополнительная область увеличит IOPS — количество операций ввода и вывода, тем самым ускоряя операции с диском.

Просмотр разметки диска и прочей информации в консоли

# перечислит тома на диске, подробно с точками монтирования и удобным размером
df -h
# подробная информация о всех дисках
sudo fdisk -l
# о конкретном диске
sudo fdisk -l /dev/sda
# перечислит диски, тома и размер оных
cat /proc/partitions
# только диски
fdisk -l
# диски и размер
sudo sfdisk -s

Вариантов намного больше, но первых 4-х вполне достаточно..

Диск с таблицей разделов MBR

Где-то в 80-х был создан формат для загрузки диска с таблицей разделов MBR, он имеет ограничение поддержки дисков объёмом до 2.2 Тб и ограничения по количеству(4) первичных (главных — primary) разделов, остальные создаются в расширенном разделе.. Необходимо выставлять флаг с какого раздела грузиться для БИОС-а компьютера, его ещё активным разделом называют.. Запись MBR занимает первые 512 байт в первом секторе на диске..

В консоли создать MBR и поделить можно так (пусть диск будет 30 Гб):

sudo fdisk /dev/sda
# создать новую таблицу разделов MBR
o
# создаём разделы
n: enter (default p), enter (default 1), enter, +20G
n: enter (default p), enter (default 2), enter, +7G
# остаток 10% неразмечен для SSD или
#n: enter (default p), enter (default 2), enter, enter

# устанавливаем boot flag (флаг загрузочного раздела) у корневого раздела.
a: 1
# применить - записать изменения, q - выйти без изменений
w

Дополнения и пояснения:
# — значок комментария.
p — посмотреть разделы.
d — удалить разделы.
b — редактировать метки диска (edit bsd disklabel).

Изменяем тип таблиц на Linux (L введите чтоб уточнить, зависит от версий).
Должно по умолчанию назначаться..

t: 1, 83 (или 20).
t: 2, 83.

# отформатировать (создать файловую систему)
sudo mkfs.ext4 -L 'mylabel1' /dev/sda1
sudo mkfs.ext4 -L 'mylabel2' /dev/sda5

Скопировать разметку на диск 2, для MBR это делается так (в случае с RAID — полезно):

sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb

Диск с таблицей разделов GPT

Диск с таблицей разделов GPT устроен по иному и имеет ряд преимуществ:

  • Размер диска может быть до 9.4 Зеттабайт, для сравнения:
    MBR=2,2Тб против GPT=10 093 173 145,6 Тб.
    Запас на будущее колоссальный, весь трафик интернета за 2016 примерно 1,1 Зеттабайт.
  • GPT допускает 264 = 18 446 744 073 709 552 000 основных разделов, но вот Windows допускает не более 128 разделов, хотя в реальной жизни более 3-х не используется..
  • GPT хранит копию данных раздела в конце диска и значения контрольной суммы для проверки целостности данных, позволяя восстановить их в случае повреждения основного заголовка GPT. (MBR же такого не умеет и помнится у меня были случаи повреждения этой записи под Windows.)
  • Загрузка операционной системы происходит быстрее, с UEFI быстрее инициализируется железо.. (На EFI разделе находятся драйверы аппаратных компонентов, к которым может получать доступ запущенная операционная система и в этом случае загрузка происходит прямо с этого раздела, что быстрее.)
  • Нет необходимости в boot флаге разделу.

В биосе должен быть включён режим UEFI или UEFI + Legacy ищите где-то в Boot Options (загрузка итп..), обычно спаренный режим уже включен на новом железе. Естественно грузимся из под UEFI при установке с флешки (F2, F8, F10, F11, бут меню в БИОС-е или иные)..

Если связь между оборудованием и операционной системой (ОС) осуществляется только через режим UEFI (а не Legacy BIOS), использование GPT для разбивки разделов становится практически обязательным, иначе могут быть проблемы совместимости с MBR. Советую из консоли или при помощи редактора разделов GParted итп. установить тип таблицы gpt, при установке операционной системы, установщик может по умолчанию dos поставить..

UEFI имеет собственный загрузчик операционных систем с интегрированными менеджерами их запуска. Для загрузчика UEFI на диске должен быть создан небольшой загрузочный раздел, который называется EFI System Partition, он же ESP, он же EFISYS и имеет тип EF00.
При установке Linux будет возможность обозначить тип — системный раздел EFI.
EFI — Extensible Firmware Interface System Partition — системный раздел расширяемого интерфейса прошивки.

На дисках расширенного формата 4K Native (секторы по 4 Кб, по сути это неминуемо в будущем (сейчас 512кб в ходу), с 2010г операционные системы поддерживают новый формат) EFI должен быть не менее 256 Мб в виду ограничений FAT32, посему я делаю его с запасом = 260 Мб (этого хватит на несколько ОС на 1 диске), но можно и 100 Мб.. В интернете встречаются экспериментаторы советующие делать размер не менее 520 Мб (546 Мб), чтоб любой каприз влез, но Линукс занимает около 4 Мб.

На каждом диске может быть не более одного раздела EFI. По стандартам, раздел должен быть отформатирован в файловой системе FAT32 (для USB HDD, USB Flash могут быть поняты при загрузке более старые FAT12, FAT16 (в том числе и EFI)).

Запись GPT занимает первые 2048 секторов (1 Мб) на диске и включает в себя резерв — отступ для MBR 512 байт.

В консоли создать GPT и поделить можно так (пусть диск будет 30 Гб):

Посмотреть разметку диска:

# перечислит тома на диске, подробно с точками монтирования и удобным размером
df -h
# подробная информация о всех дисках
sudo fdisk -l
sudo gdisk -l /dev/sda
# разметка и флаги
sudo parted /dev/sda print

Непосредственно работа с дисками

Тип таблиц на Linux (L введите чтоб уточнить, обозначение зависит от версий)
8200 Linux swap
8300 Linux filesystem

sudo gdisk /dev/sda
# p - посмотреть разделы
# d - удалить разделы

# создаём новую таблицу GPT
o: y
# создаём разделы
n: enter (default 1), enter, +260M, ef00
n: enter (default 2), enter, +20G, enter (8300)
n: enter (default 3), enter, +7G, enter (8300)
# остаток 10% неразмечен для SSD или
#n: enter (default 3), enter, enter, enter (8300)
# сохраняем
w: y
# Проверям
sudo parted /dev/sda print

Копирование разметки диска для GPT (в случае с RAID — полезно):

# sgdisk [от куда] [ключ] [куда]
sudo sgdisk /dev/sda -R /dev/sdb

Будьте бдительны, какому гению в голову пришло в обратном порядке выстраивать диски, точнее применять сразу после ключа -R, —replicate=second_device_filename. Поэтому запись в логичном/привычном порядке sgdisk -R /dev/sda /dev/sdb приведёт к затиранию первого диска sda, в этой форме первым пишется диск на который копируется разметка, а вторым с которого копируют.

This should work for most cases. You know you cannot use a MBR when you have partitions larger than 2TB, or for more than 15 partitions.

  • Use parted to check partition’s sizes (i.e. are all smaller than 2TB?), parted /dev/sdX p
  • In case there are larger partitions, shrink the filesystem in question and everything else that needs to be done. (More on this at the end of this posting.)
  • Dump all the exact partition sizes, parted /dev/sdX u B p (show sizes in bytes), so you know how you could eventually recreate the partition layout. Use your phone to make a photo from both parted outputs.
  • Remember you can only have four primary partitions with a MBR due to its internal structure. So if you have more partitions, you need free space somewhere on your disk (ofc you need to know where this could be!), to create a logical partition where a VBR can be put onto so you can ‘allocate’ the other 4th/5th/6th partition that previously existed.
  • Use gdisk to zap the GPT.
  • Create a new MBR.
  • Recreate your partitions, the 1st/2nd/3rd as primary partitions, then on some free space (WHERE NO DATA WAS LOCATED PRIOR!!!) create a logical partition, then create the others.
  • Save, quit.
  • Pray.
  • Reboot.

You should use a livedisk like grml for all this. In case you did something wrong, reboot and retry.

As long as you do not write any data onto the disk, nothing is lost. Remember you still have all your partition layout on your phone, so you can recreate the original GPT if really need be.

In case your really fuck something up and did not take photos, try testdisk for discerning the partition boundaries. But don’t bet any money on it as soon as your layout was anything extraordinary.


On the resizing stuff for making partitions smaller, birds eye perspective:

  • First you always have to shrink the filesystem. Easy for ext4 (resize2fs -M dev/sdX), but impossible for XFS as it cannot be shrunk. Know what you are using and google before attempting such stunts.
  • If you have LVM, shrink the logical volume next. (lvreduce -L 20G /dev/mapper/<VG>-<LV>)
  • Next LVM step is downsizing the physical volume. pvresize --setphysicalvolumesize 25G /dev/sdX is the way to go.
  • Afterwards use the partitioning tool of choice, delete the partition where your lvm is put on, and recreate it smaller.

Sizes for all mentioned elements mentioned here are like: Filesystem < LV < PV < partition, if this is not the case after the next reboot you will see you have to do a FS check. Don’t do it, just reboot into the livedisk again, and make your adjustments. If you fix things there, your system will boot again, I promise.

To be able to do all this, in case you have PARTITION + LUKS + LVM + FILESYSTEM, here are some hints on how to do this from the shell:

  • df -h is your friend for showing the filesystem size when you mounted the partition
  • lsblk and lsblk -f are your friends for showing partitions
  • If you use LUKS, open the crypto container via cryptsetup open /dev/sdX asdf, enter your password and it should become available unter /dev/mapper/asdf. Cryptocontainers do not need to be resized. (Skip this if you don’t have an encrypted partition, of course.)
  • vgchange -aay to activate all logical volumes so you can work with them.
  • mkdir asdf; mount /dev/mapper<VG>-<LV> asdf and then df -h to check the size of your filesystem prior to resizing.
  • umount asdf so it is unmounted again.
  • resize2fs -M /dev/mapper/<VG>-<LV>.
  • mount /dev/mapper/<VG>-<LV> asdf; df -h to check how big your filesystem still is.
  • Make the LV 1GB bigger than the file system. Chances are, this will not be sufficient. Make it even bigger than that if you can affort it, else linux will tell you after the reboot that it won’t work. DONT do the FS check when prompted, reboot into the livedisk and start again, no data is lost if that was the case.
  • Make the PV 1GB bigger than the LV.
  • Make the partition 1GB bigger then the PV. 100M should easily be sufficient, too, as LVM creates extents in size of 4M (that’s somewhat like blocks on the harddisk directly, but for LVM), and you only want it to not omit the last extent by making the partition too small. But as I said, should. Don’t calculate everything, just adjust things and fix them if they break. It’s linux after all, it let’s you do this.

Make things bigger than they need to be, so you don’t have to reboot as often.

To easily discern what is what with LVM, always use your hostname as name for the VG and the mountpoint (root, swap, var, …) for the LV when creating your LVM setup, if you didn’t already do it. This is general hint, not something you are required to do for anything of the above steps.

Понравилась статья? Поделить с друзьями:
  • Как изменить fov варфейс
  • Как изменить fov mw3
  • Как изменить cvv киви карты
  • Как изменить embed discord py
  • Как изменить admin на компьютере windows