#1 16.10.2014 09:33:47

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа

После успешной (так мне казалось) переустановки Windows, затертый GRUB был восстановлен с резервной копии на дискете. Правда, перед восстановлением Partition Table Doctor поругался на ошибочную таблицу разделов и предложил ее исправить. После чего Магея3 грузится, но Windows загрузить уже не удается!
GRUB:
root (hd0,0)
Filesystem type unknown, partition type 0x7
makeactive
chainloader +1
A disk read error occured.

Затем была попытка в Магее смонтировать этот диск С:


Тоже самое и с другим NTFS разделом - /dev/sda6 (Е:), который при переустановке также был отформатирован. Геометрия всех разделов в Управлении дисковыми разделами вроде как определяется верно, но UUID этих двух разделов там отсутствует.
Ничего понять не могу, но когда загрузилась с Paragon Recovery CD, то оказалось, что оба NTFS раздела unformatted(!!!). Почему?! Пришлось заново на скорую руку переустанавливать Виндовс, но теперь сразу же после этой процедуры загрузилась с DVD Mageia3 и выбрала восстановление загрузчика


То есть видно, что опять что-то не так пошло... Partition Table Doctor вновь бранится на поврежденные разделы, и снова те 2 виндовых раздела не отформатированы! Тогда снова пытаюсь восстановиться с той дискеты, но все тоже самое...
Раз так, то снова выбираю re-install Boot Loader с диска Магеи:

Теперь Магея загружается, но винда — снова отдыхает! :D Или так или так — выбора нет!
ЗЫ. Дернул же меня черт эту винду переустанавливать! :'(

#2 16.10.2014 09:56:09

kostik87
Administrator
Зарегистрирован: 29.06.2014
Сообщений: 778
IP-адрес

Непонятная проблема с восстановлением GRUBа

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


fdisk -l /dev/sda

И вывод команды

blkid


У вас grub 0.97, пробуйте его восстанавливать так:
- загружаетесь с LiveCD;
- Если в LiveCD системе есть grub-0.97, то можете сразу приступать собственно к восстановлению:
a) вызываете команду grub

grub

б) выбираете корневой раздел загрузчика

root (hd0, N)

вместо N укажите номер раздела, где находится /boot установленной Mageia, отсчёт идёт от 0, т.е. если это /dev/sda1, то там нужно указать 0.
в) прописываете код загрузчика в mbr

setup (hd0)

- если grub на LiveCD нет, тогда монтируете корень Mageia, затем /dev и прочие разделы и делаете chroot .


Должны увидеть примерно следующее:

grub> root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  17 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.

#3 16.10.2014 10:10:42

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа


монтируете корень Mageia, затем /dev и прочие разделы и делаете chroot .

Должны увидеть примерно следующее:

grub> root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  17 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.


Так я ведь разве в последней операции не это сделала (3ий мой спойлер)? Проблема то не в том, что ГРУБ отсутствует, а то что он системный виндовый раздел отвергает - после переустановки этой самой винды.
Я ведь знаю уже эти наглые виндовы повадки - затирать МБР перед установкой (а стало быть, убивать ГРУБа). Проходила уже... потому и дискетки перед этим готовлю. Но раньше, правда, LILO стоял... малой кровью тогда решилась проблема...

#4 16.10.2014 10:23:04

kostik87
Administrator
Зарегистрирован: 29.06.2014
Сообщений: 778
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by lightwinter
что он системный виндовый раздел отвергает - после переустановки этой самой винды.

Он его не отвергает, виной всему, скорее всего, вот это:
Quote by lightwinter
потому и дискетки перед этим готовлю.

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

Скорее всего, на вашей дискете сохранилась старая таблица разделов с другими границами разделов, ну либо ваш partition doctor изменил границы разделов.

После того как найдёте все разделы вам нужно будет посредством fdisk создать таблицу разделов с указанием правильных границ разделов.

Поэтому вам нужно либо переустанавливать Windows заново, либо восстановить записи о разделах Windows.

А уже затем не используя ни какую дискету восстановить grub, например, описанным мной способом.


Для поиска разделов можете воспользоваться вот этим скриптом:

[console]
#!/bin/sh
for ((sector=62; ; sector++))
do
offset=$(($sector*512))
cmd="mount -t ntfs-3g /dev/sdb /mnt/tmp/ -o ro,offset=$offset"
echo "sector: $sector offset: $offset"
$cmd 2>/dev/null && echo "partition found @ offset $offset!" && break
done
[/console]

За пояснением вот сюда: www.linux.org.ru/forum/general/9472378?cid=9474130
Или вот этот скрипт:
[console]
#!/usr/bin/perl -w
for ($sector = 0; ; $sector++)
{
$offset = $sector * 512;
$cmd = "mount /dev/sdb /mnt/tmp -t xfs -o ro,offset=$offset > /dev/null";
`$cmd`;
print "sector: $sector offset: $offset\n";
die "partition found @ offset $offset!" if ($? == 0);
}
[/console]
он по функционалу аналогичен, только написан на perl.

Пояснение:

Смотрите сами, сверяйте начальные номера секторов разделов, смотрите вывод fdisk (первый блок кода) и номера сектора, на которых останавливается скрипт (монтируется файловая система). Начальные номера секторов, с которых скрипт начинает «поиск», указаны не далеко от границ разделов (файловых систем). После результатов работы скрипта приведён вывод 'losetup -a' с выборкой информации по конкретному устройству, в котором видно, что создано loop устройство, которому сопоставлена область на жёстком диске с некоторым смещением, можете сравнить со смещением, найденным в скрипте. Ну и далее выборка из списка смонтированных файловых систем.

fdisk  -l /dev/sdb

Disk /dev/sdb: 320.1 GB, 320072933376 bytes, 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf74ef74e

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdb1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sdb2          206848   163846143    81819648    7  HPFS/NTFS/exFAT
/dev/sdb3       163846935   625137344   230645205    5  Расширенный
/dev/sdb5       163846998   625137344   230645173+   7  HPFS/NTFS/exFAT


Ищем первую файловую систему:

#!/bin/sh
for ((sector=2047; sector<=625142448 ; sector++))
do
   offset=$(($sector*512))
   cmd="mount -t ntfs-3g /dev/sdb /mnt/tmp/ -o ro,offset=$offset"
   echo "sector: $sector offset: $offset";
   $cmd 2>/dev/null && echo "partition found @ offset $offset!" && break
done


# /tmp/script.sh
sector: 2047 offset: 1048064
sector: 2048 offset: 1048576
partition found @ offset 1048576!
losetup -a | grep sdb 
/dev/loop4: [0005]:7288 (/dev/sdb), offset 1048576
mount | grep mnt\/tmp
/dev/sdb on /mnt/tmp type fuseblk (ro,nosuid,nodev,allow_other,blksize=4096)
umount /mnt/tmp

Ищем вторую файловую систему


for ((sector=206840; sector<=625142448 ; sector++))
sector: 206840 offset: 105902080
sector: 206841 offset: 105902592
sector: 206842 offset: 105903104
sector: 206843 offset: 105903616
sector: 206844 offset: 105904128
sector: 206845 offset: 105904640
sector: 206846 offset: 105905152
sector: 206847 offset: 105905664
sector: 206848 offset: 105906176
partition found @ offset 105906176!


losetup -a | grep sdb 
/dev/loop4: [0005]:7288 (/dev/sdb), offset 105906176
mount | grep mnt\/tmp
/dev/sdb on /mnt/tmp type fuseblk (ro,nosuid,nodev,allow_other,blksize=4096)


Ищем третью файловую систему:

for ((sector=163846995; sector<=625142448 ; sector++))
sector: 163846995 offset: 83889661440
sector: 163846996 offset: 83889661952
sector: 163846997 offset: 83889662464
sector: 163846998 offset: 83889662976
partition found @ offset 83889662976!
losetup -a | grep sdb 
/dev/loop7: [0005]:7288 (/dev/sdb), offset 83889662976
mount | grep mnt\/tmp
/dev/sdb on /mnt/tmp type fuseblk (ro,nosuid,nodev,allow_other,blksize=4096)


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

#5 16.10.2014 10:36:14

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа


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

Скорее всего, на вашей дискете сохранилась старая таблица разделов с другими границами разделов, ну либо ваш partition doctor изменил границы разделов.

Да, эта дискета создается с помощью того же partition doctor и он делает полную копию МБР, а не только загрузчика. Но ведь границы разделов все те же самые! Просто была начисто переустановлена винда - на свое законное место, в sda1.
Есть все же у меня подозрение, что partition doctor дурит... нельзя его дискеткам доверять.

#6 16.10.2014 10:45:30

kostik87
Administrator
Зарегистрирован: 29.06.2014
Сообщений: 778
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by lightwinter
Есть все же у меня подозрение, что partition doctor дурит... нельзя его дискеткам доверять.

Как минимум не нужно было ничего делать при сообщении Partition Doctor о том, что есть проблема с разделами.

Но по большому счёту такие дискеты, да и сам Partition Doctor не нужен.

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

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

Если смонтировать всё же не удастся, тогда либо переустанавливайте Windows ещё раз, а потом восстанавливаете grub без использование ваших дискет, либо пробуйте создать правильную таблицу разделов описанным мной способом.

#7 16.10.2014 10:48:06

mvt
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 6 467
IP-адрес

Непонятная проблема с восстановлением GRUBа

lightwinter
Ну вот сколько таких проблем на этом форуме было... И где-то вы исхитряетесь брать то акронис, то какой-то доктор... А не проще http://gparted.org/livecd.php ?
Всё без проблем, даже та винда.

#8 16.10.2014 10:57:29

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа

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

То что диск С со свежеустановленной виндой вдруг оказывается "неотформатированным" - это и связано с не верными границами разделов?

#9 16.10.2014 11:00:32

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа

Если смонтировать всё же не удастся, тогда либо переустанавливайте Windows ещё раз, а потом восстанавливаете grub без использование ваших дискет, либо пробуйте создать правильную таблицу разделов описанным мной способом.

Может все же Виндовс по-новой переустановить, а затем ГРУБ по правилам? А то мне глядя на тот скрипт, как-то не по себе стало. :) Как все сложно!
А может вообще уже Магею 4 устанавливать - вроде как она уже стабильная? Или если неверная таблица разделов, то и переустановка Магеи не решит задачу?

#10 16.10.2014 11:00:59

kostik87
Administrator
Зарегистрирован: 29.06.2014
Сообщений: 778
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by lightwinter
друг оказывается "неотформатированным" - это и связано с не верными границами разделов?

Да или типом файловой системы.

Границы разделов указывают начальный и конечный сектор диска в пределах которых находится раздел (файловая система). При монтировании (подключении) файловой системы драйвер ищет с определённым смещением суперблок файловой системы, так сказать специальные внутренние структуры. Если границы указаны неправильно, то этот суперблок не будет найден.

#11 16.10.2014 11:01:55

kostik87
Administrator
Зарегистрирован: 29.06.2014
Сообщений: 778
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by lightwinter
Может все же Виндовс по-новой переустановить, а затем ГРУБ по правилам? А то мне глядя на тот скрипт, как-то не по себе стало.   Как все сложно!

Делайте как хотите, я вам предложил два варианта на выбор. Если вам легче переустановить Windows, то делайте так.

#12 16.10.2014 11:13:10

mvt
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 6 467
IP-адрес

Непонятная проблема с восстановлением GRUBа


То что диск С со свежеустановленной виндой вдруг оказывается "неотформатированным" - это и связано с неверными границами разделов?

Да вполне. Некоторые "левые" проги могут пересекать границу разделов. А потом мы ищем MBR, суперблоки и т.п.
А сделать один раз. Хорошо. А потом просто переставляем системы. Не?

#13 16.10.2014 11:54:40

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by mvt
А не проще http://gparted.org/livecd.php ?
Всё без проблем, даже та винда.

немного поняла, конечно, что там по-аглицки написано, но кол-во поддерживаемых ФС впечатляет, однако. Да и кол-во возможностей, вроде как тоже. Это уже явно не Парагон... это явно БОЛЬШЕ!

#14 16.10.2014 12:16:53

mvt
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 6 467
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by mvt
А не проще http://gparted.org/livecd.php ?
Всё без проблем, даже та винда.

немного поняла, конечно, что там по-аглицки написано, но кол-во поддерживаемых ФС впечатляет, однако. Да и кол-во возможностей, вроде как тоже. Это уже явно не Парагон... это явно БОЛЬШЕ!


А как-то так. А причём здесь Парагон? Это - маленькая универсальная программа. Мы о ней вспоминаем, когда "горит" :)
Но, работает всё чётко. Рекомендую.

#15 16.10.2014 13:12:55

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by kostik87
Покажите схему разметки диска:

fdisk -l /dev/sda

Disk /dev/sda: 160.0 GB, 160041885696 bytes, 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x44b03c17
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 63 42009974 21004956 7 HPFS/NTFS/exFAT
/dev/sda2 42009975 312576704 135283365 f W95 расшир. (LBA)
/dev/sda5 42010038 284703929 121346946 7 HPFS/NTFS/exFAT
/dev/sda6 284703993 289957184 2626596 7 HPFS/NTFS/exFAT
/dev/sda7 289957248 309893849 9968301 83 Linux
/dev/sda8 309893913 312576704 1341396 82 Linux своп / Solaris


Откуда этот /dev/sda2 f W95 расшир. (LBA) взялся?! Не было такого никогда!

#16 16.10.2014 13:14:50

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by kostik87
И вывод команды

blkid

/dev/sda5: LABEL="LIGHT" UUID="84DE6361856C724E" TYPE="ntfs"
/dev/sda7: UUID="100af032-781d-4854-babb-8248bc8beb19" TYPE="ext4"
/dev/sda8: UUID="18de3060-f52c-484f-8c04-b18be5e0adaf" TYPE="swap"

Ага! Тех sda1 и sda6 здесь как раз и не видно!

#17 16.10.2014 13:33:01

mvt
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 6 467
IP-адрес

Непонятная проблема с восстановлением GRUBа


Откуда этот /dev/sda2 f W95 расшир. (LBA) взялся?! Не было такого никогда!

Когда-то давно, когда миром руководили Биллы Гейцы пришло такое правило - что мы имеем только четыре первичных раздела. Но подпольный вход был найден. Любой из разделов - может быть Расширеным " . А там помещается 32 подчинёных раздела :)
Вот оттуда и пошло - "расширеный" :)

#18 17.10.2014 05:43:21

kostik87
Administrator
Зарегистрирован: 29.06.2014
Сообщений: 778
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by lightwinter
Откуда этот /dev/sda2 f  W95 расшир. (LBA) взялся?! Не было такого никогда!

Собственно, mvt уже написал, Уточню лишь: на первых дисках размер сектора был равен 512 байт, в том числе и нулевого сектора, в котором располагается главная загрузочная запись. При старте компьютера BIOS начинает опрос устройств с которых может производиться загрузка и в случае диска как раз считывает как раз нулевой сектор и передаёт управлению коду который в нём находится. В эти 512 байтах должен поместиться собственно сам код загрузчика и таблица разделов. 512 байт это не слишком много, поэтому под код загрузчика было отведено 446 байт, затем располагается место под 4 записи по 16 байт под информацию о параметрах 4 разделов и последние два байта отведены под специальную сигнатуру, своего рода метку, указывающую на то, что главная загрузочная запись корректна.

Получается, что на диске можно создать всего 4 раздела, но в некоторых случаях этого мало, поэтому для того, что бы разделов было больше создают логический (расширенный раздел) и записи об остальных разделах, которые находятся в его границах записываются уже в начале расширенного раздела.

Теперь к вопросу о том, что blkid не видит других разделов. Это нормально, у вас старая версия пакета util-linux, в котором blkid выводит информацию по разделам на которых есть файловая система. Вот пример из drweb livecd, там пакет util-linux версии 2.20.0:


Вот пример с более новым пакетом util-linux версии 2.24.0:

В обоих случаях на разделе не создана файловая система.

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

Если у вас нет на разделах, границы которых указаны неправильно важных данных, то вы можете их просто удалить, установить Windows создать на "свободном" месте новые разделы и восстановить загрузчик описанным выше способом. Если там есть важные данные, то вам придётся воспользоваться скриптами, которые я привёл выше и затем посредством fdisk создать правильные записи. Так же можете попробовать testdisk, возможно он определит правильные границы разделов.

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

/dev/sda2        42009975   312576704   135283365    f  W95 расшир. (LBA)
/dev/sda5        42010038   284703929   121346946    7  HPFS/NTFS/exFAT
/dev/sda7       289957248   309893849     9968301   83  Linux
/dev/sda8       309893913   312576704     1341396   82  Linux своп / Solaris


В случае если testdisk или вы повредите записи вы сможете восстановить таблицу разделов хотя бы для этих разделов.

Вообщем, с большой долей вероятности, первый раздел у вас должен начинаться с 2048 сектора, попробуйте смонтировать файловую систему так:

mkdir /tmp
mount -t ntfs-3g /dev/sda /mnt/tmp/ -o ro,offset=$((2048*512))"

Если файловая система смонтировалась, тогда смотрите вывод команды

df

в ней смотрите сколько блоков на файловой системе, это число вам пригодится при создании правильной записи о разделе.

К примеру, у меня есть раздел /dev/sda2:

# df
Файловая система 1K-blocks Использовано Доступно Использовано% Cмонтировано в
...
/dev/sda2                   81819644          71169676 10649968                       87% /media/sda2

вот его запись в таблице разделов:

# fdisk /dev/sda -l

Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf74ef74e

Устр-во   Загрузочный     Start          Конец         Blocks  Id System
...
/dev/sda2                        206848 163846143  81819648   7 HPFS/NTFS/exFAT

Как видите число блоков в выводе df и число блоков в выводе fdisk отличается на 4. При создании записи вам нужно будет во время указания верхней границы раздела указать "+81819648K" или перевести блоки в число секторов, т.е. умножить их число на два, т.к. размер сектора равен 512 байт, а 1 блок равен 1024 байтам, т.е. 1 килобайту, отнять один сектор, прибавить номер стартового сектора, т.е. 81819648*2 - 1 + 206848

# echo $((81819648*2 - 1 + 206848))
163846143

и ввести в таком случае просто "163846143".

Но я думаю, что для вас это будет сложно и большой шанс, что вы просто повредите даже то, что уже есть, поэтому лучше просто удалите записи об разделах, которые всё равно не видны, ставьте Windows и восстанавливайте загрузчик указанным выше способом.

#19 25.10.2014 11:39:24

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа


Откуда этот /dev/sda2 f W95 расшир. (LBA) взялся?! Не было такого никогда!

Когда-то давно, когда миром руководили Биллы Гейцы пришло такое правило - что мы имеем только четыре первичных раздела. Но подпольный вход был найден. Любой из разделов - может быть Расширеным " . А там помещается 32 подчинёных раздела :)
Вот оттуда и пошло - "расширеный" :)

Ах да! Чего это я, в самом деле! Конечно же, это расширенный, а в нем логические.
Странная какая-то логика тогда получается. Если 4 первичных раздела, то должно быть sda1, sda2, sda3, sda4 - нет? Тогда расширенный должен быть по сути sda5, а первый логический в нем - sda6 - не логично ли? А он, расширенный этот, вона где оказывается - sda2!
Голова болит очень :(

#20 25.10.2014 12:00:32

drBatty
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 17 053
IP-адрес

Непонятная проблема с восстановлением GRUBа

lightwinter, ну вы сохранили таблицу разделов, поставили венду(при этом создав ФС, ntfs в вашем случае), потом восстановили таблицу разделов.

Естественно, созданные вендой записи в таблице разделов были уничтожены восстановлением.

Корректно сохранять разделы нужно не каким-то "доктором", а обычной командой dd, самые первые 512 байт с диска.

Для UEFI это естественно НЕ работает.

Quote by lightwinter
но UUID этих двух разделов там отсутствует.
раз нет UUID, значит и файловой системы нет(либо она полностью испорчена).
Quote by kostik87
Но я думаю, что для вас это будет сложно и большой шанс, что вы просто повредите даже то, что уже есть, поэтому лучше просто удалите записи об разделах, которые всё равно не видны, ставьте Windows и восстанавливайте загрузчик указанным выше способом.
ИМХО это и для меня слишком сложно. Велика вероятность грохнуть вендовые разделы. ИМХО надёжнее в маздае всё делать(правда в маздае "диск Ц" не лечится).

#21 25.10.2014 12:01:56

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа


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

Это я, наконец-то поняла. Да, дела... :(
В общем, я вначале просто опять переустановила винду, затем восстановила ГРУБ командами, как Вы мне советовали. Здесь мне лично очень помогла команда find /boot/grub/stage2 - а то бы я со всеми этими нулями и единицами точно бы свихнулась. :) Загрузчик восстановился, доступ в обе ОСи - тоже, но... я забыла отформатировать диск Е: (sda6)! Вспомогательный такой раздельчик для Виндовс - туда перенесен своп, всякие временные файлы и т.п. Но я форматнула его уже после этих успешных процедур, и ГРУБ снова потерялся! :( Как только я не колдовала с Rescue CD Mageia, но вернуть все на место уже не получалось. Сообщалось что-то вроде
(hd0,6)
/boot/ gfxmenu - file not found
И потом что-то
find /boot/ gfxmenu
hd0,7
Сейчас уже все не могу воспроизвести в памяти...
Я так понимаю, что ГРУБ после этого куда-то переместился?
В общем в конец отчаявшись я просто переустановила Магею (на то же место, разумеется), установила там ГРУБ и... само собой, ничего не произошло... он не вернулся... Тогда то я и поняла, о чем Вы говорили - неправильная таблица разделов.

#22 25.10.2014 12:21:52

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа


Если у вас нет на разделах, границы которых указаны неправильно важных данных, то вы можете их просто удалить, установить Windows создать на "свободном" месте новые разделы и восстановить загрузчик описанным выше способом. Если там есть важные данные, то вам придётся воспользоваться скриптами, которые я привёл выше и затем посредством fdisk создать правильные записи. Так же можете попробовать testdisk, возможно он определит правильные границы разделов.

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

/dev/sda2        42009975   312576704   135283365    f  W95 расшир. (LBA)
/dev/sda5        42010038   284703929   121346946    7  HPFS/NTFS/exFAT
/dev/sda7       289957248   309893849     9968301   83  Linux
/dev/sda8       309893913   312576704     1341396   82  Linux своп / Solaris


В общем, кроме как на /dev/sda5 (D:), у меня нет никаких важных данных. Я так понимаю, что неправильные разделы у меня сейчас - это /dev/sda1 и /dev/sda6 - т.е. С и Е соответственно? Вот только Винду я уже не только переустановила, но и по-новой установила все программы и все-все настроила - а это занятие, сами понимаете, долгое, занудное, но необходимое. :(
Поэтому - если я сейчас сделаю образ С: на болванку, потом удалю все разделы, кроме /dev/sda5, затем воссоздам их - так? вроде верно я рассуждаю? Вот только потом образ С на новый раздел С нормально ли ляжет? - вот этого я не знаю.

#23 25.10.2014 12:26:46

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа

lightwinter, ну вы сохранили таблицу разделов, поставили венду(при этом создав ФС, ntfs в вашем случае), потом восстановили таблицу разделов.

Естественно, созданные вендой записи в таблице разделов были уничтожены восстановлением.

Корректно сохранять разделы нужно не каким-то "доктором", а обычной командой dd, самые первые 512 байт с диска.

Да, я наверное неверно (и не до конца) устройство всего этого понимаю. Но то что раньше этот резерв выручал (и вроде даже не один раз!) - это факт! Не знаю.. может, просто везло. :)
PS. Я кажется теперь вспоминаю! Выручала эта дискетка, но тогда я только виндов этот раздел С несчастный, чтоб его такого! с образа восстанавливала - вот как оно было! А теперь, значит, винду с нуля переустановить вздумалось.

#24 25.10.2014 12:31:39

drBatty
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 17 053
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by lightwinter
Да, я наверное неверно (и не до конца) устройство всего этого понимаю.
и не поймёте, пока будете юзать всякие костыли типа Partition Table Doctor.

#25 13.11.2014 19:41:24

lightwinter
Administrator
Зарегистрирован: 27.09.2010
Сообщений: 195
IP-адрес

Непонятная проблема с восстановлением GRUBа

Ух! Наконец-то вновь нашла время разбираться со всем этим! Не знаю чего я там наделала, но после предудыщего поста - тогда отформатировала диск Е: (sda6) - ничего такого не предпринимала больше. Но теперь команда fdisk -l /dev/sda показывает абсолютно все разделы (границы все те же), а по команде blkid опять же все разделы отображаются корректно - все-все UUID, LABEL, TYPE - все правильно.
теперь только пришлось /sda7 - где была Магея - временно отформатировать в NTFS, чтобы туда средствами винды закачать образ четвертой Магеи (ну нет к сожалению на других дисках свободного места!) и потом с болванки Магею на тот же sda7 устанавливать - такая вот петрушка!

Я только чего то не понимаю - раз там все диски нормально видны, то мне sda1 и sda6 перед этим не нужно удалять?

#26 14.11.2014 02:16:55

drBatty
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 17 053
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by lightwinter
тогда отформатировала диск Е:

в Linux нет "форматирования" и "диска Е".

"Форматирование" тут называется "создание файловой системы", и делается командой mkfs

"диск Е" тут называется: блочное устройство с X(буквы a-z), раздел Y(числа начиная с 1), и имеет имя внутри ФС /dev/sdXY.

Какое устройство куда вписалось можно узнать командой
[console]# dmesg[/console]
сразу после физического подсоединения этого устройства. (ну через пару секунд для флешек).

PS: и да, разделы делаются (создаются) утилитами
fdisk, cfdisk, gparted, причём cfdisk в Linux это типа fdisk в Win. А gparted в Lin это типа "администратор дисков", или как он в венде зовётся сейчас. Fdisk в Linux применяют обычно только для просмотра, и в скриптах, которые Linux ставят. Ручками неудобно.

PPS: И да, напоминаю, что UUID это атрибут файловой системы, и для EXT4 его лучше смотреть/менять утилитой tune2fs.

#27 07.12.2014 14:01:28

algri14
Administrator
Зарегистрирован: 25.08.2013
Сообщений: 216
IP-адрес

Непонятная проблема с восстановлением GRUBа

Quote by lightwinter
Не знаю чего я там наделала, но после предудыщего поста - тогда отформатировала диск Е: (sda6)

Уже неоднократно давал вот эту ссылку от Termo О жестких дисках и загрузчике , там он доходчиво объяснил новичкам про разделы и т.п., вроде бы одна и та же инфа, а воспринимается легче и лучше, чем сухие выкладки (они станут хорошо пониматься, когда повысится уровень знаний юзера)

Board footer