Преобразовать логический раздел в первичный. Linux

Раньше, у девушки на нетбуке стояла Windows XP и в следствии моей криворукости, винда встала с флешки косовато.
boot.ini, ntldr и прочие файлы, относящиеся к загрузке поместились на диск C, а папка WINDOWS оказалась на диске E. Винда нормально работала в таком виде, пока я не поставил на компьютер убунту. На компьютере больше не планировалось запускать винду, но 30 GiB мне было не жалко и я оставил раздел с папкой WINDOWS на винчестере.
Через пару месяцев, девушке захотелось поиграть в The Sims 2. Установка игры на Ubuntu мне показалась плохим стилем, и я вспомнил о разделе с виндой. 


Я кинул на раздел с виндой файлы ntldr, boot.ini, Bootfonts.bin, ntdetect.com. Затем, 
sudo update-grub
В меню появилась винда. Но, при попытке загрузить ее, я получил черный экран с моргающим курсором. По симптомам я наткнулся на такую заметку: ссылка. Из чего следовало, что GRUB2 не дружит с ntldr. Странно, конечно, но уточнять я не стал. Я скачал grub4dos, бросил GRUB.exe и melu.lst в корень раздела с виндой.
И изменил пункт меню Windows XP в grub.cfg:
set root=(hd0,5)
linux16 (hd0,5)/grub.exe
Теперь при выборе Windows XP загружался grub4dos, который позволил подцепить ntldr. Однако, загрузки винды не произошло. Вместо этого, без каких либо уведомлений ntldr перезагружал компьютер. Нажав при загрузке ntldr F8 я получил меню с кракозябрами, из чего следовало, что ntldr не видит раздел. Раздел с виндой логический, а ntldr не умеет работать с логическими разделами, что в принципе, логично (Это сложнее, чем работать только с первичными разделами). Встала задача преобразовать раздел с виндой в первичный раздел. Сделать это можно либо при помощи загрузочного диска Acronis, либо при помощи sfdisk (ссылка). После недавней установки убунты у меня осталась загрузочная флешка, потому выбор был очевиден.
Загружаемся с флешки. Отмонтируем все разделы диска, если они были примонтированы по какой-либо причине. Получаем текущую таблицу разделов следующей командой:
sudo sfdisk -d /dev/sda
Сохраняем в файл ~/old_part_table и кидаем на флешку, на случай, если что-то не получится и вы потеряете доступ к разделам. Это, конечно, не смертельно, но неприятно.
Копируем этот файл и изменяем так, как вздумается. В моем случае, я перенес логический раздел sda5 на место sda1 и он стал первичным. Сохраняем изменения в файл ~/new_part_table. Теперь мы можем записать тщательно проверенную таблицу разделов в MBR следующей командой:
sudo sfdisk --force /dev/sda < ~/new_part_table
Если все прошло хорошо, то fdisk покажет вам разделы в соответствии с новой таблицей разделов. И вы можете перезагружаться. Подробнее тут.

ЕСЛИ ЧТО-ТО ПОШЛО НЕ ТАК:
Если вы потеряли доступ к разделам:
1. Загружайтесь с флешки.
2. Восстанавливайте старую таблицу разделов командой:
sudo sfdisk --force /dev/sda < ~/old_part_table








Комментарии

Популярные сообщения из этого блога

Siege Up! Editor (beta)

STM32F4 и программный выход в DFU

Git и Yandex.Disk