LINUX.ORG.RU

Ошибка при восстановлении загрузчика.

 , ,


0

2

При стандартной процедуре восстановления загрузчика возникает проблема -
ошибка: invalid volume.
grub-install: ошибка: не удалось найти привод GRUB для /dev/sda5. Проверьте device.map.

Главное то, что файла device.map нет вообще. Кто-нибудь сталкивался с данной проблемой? Как можно её можно решить?


Ответ на: комментарий от Vsevolod-linuxoid

fdisk -l:

Диск /dev/loop0: 11,1 MiB, 11685888 байт, 22824 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop1: 252,3 MiB, 264560640 байт, 516720 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop2: 1,3 GiB, 1390817280 байт, 2716440 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop3: 396,6 MiB, 415879168 байт, 812264 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/sda: 931,5 GiB, 1000204886016 байт, 1953525168 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: dos
Идентификатор диска: 0x4b2d45a3

Устр-во    Загрузочный    начало      Конец   Секторы Размер Идентификатор Тип
/dev/sda1                   2048  901779455 901777408   430G             5 Расширенный
/dev/sda4              901779456 1659000831 757221376 361,1G            42 SFS
/dev/sda5                   4096    2101247   2097152     1G            ef EFI (FAT-12/16/32)
/dev/sda6                2103296  316676095 314572800   150G            83 Linux
/dev/sda7              316678144  350232575  33554432    16G            82 Linux своп / Solaris
/dev/sda8              350234624  901779455 551544832   263G            83 Linux

Элементы таблицы разделов упорядочены не так, как на диске.


Диск /dev/sdb: 7,6 GiB, 8103395328 байт, 15826944 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x00000000

Устр-во    Загрузочный  начало   Конец Секторы Размер Идентификатор Тип
/dev/sdb1  *                64 4177379 4177316     2G            cd неизвестный
/dev/sdb2              4177380 4185571    8192     4M            ef EFI (FAT-12/16/32)

sudo blkid -c /dev/null:

/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/sda1: UUID="5b0a7ba9-9e4a-4ac4-bbf5-aff4600ea754" TYPE="ext4" PTTYPE="dos"
/dev/sda2: UUID="c92184cf-cd4e-4b18-b643-6eaf69fdc12d" TYPE="swap"
/dev/sda3: UUID="7eeb30fc-6d2f-4a74-9b07-14196bd328ee" TYPE="ext2"
/dev/sda4: UUID="B64210C442108AEF" TYPE="ntfs" PARTUUID="4b2d45a3-04"
/dev/sda5: LABEL="boot" UUID="ddf6cf64-29b9-4b9f-b14a-adfcee563b8c" TYPE="ext2"
/dev/sda6: UUID="5053eb4d-b0d3-4b5c-874a-bb6fadef809b" TYPE="ext4"
/dev/sda7: UUID="5f9238e1-34c9-4ffe-b6dc-21b72dfdadec" TYPE="swap"
/dev/sda8: UUID="1a1c0ecc-7af0-4789-bd4f-1620f812b20e" TYPE="ext4"
/dev/sdb1: UUID="2017-12-31-08-51-47-00" LABEL="MJRO1710" TYPE="iso9660"
/dev/sdb2: SEC_TYPE="msdos" LABEL="MISO_EFI" UUID="14BD-19A4" TYPE="vfat"

sdmyt ()
Ответ на: комментарий от Vsevolod-linuxoid

Не могу ответить на этот вопрос, т.к вручную я EFI не настраивал. Возможно это является последствием дуалбута с виндой(извиняюсь, если написал какой-то бред).

sdmyt ()
Ответ на: комментарий от sdmyt

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

Vsevolod-linuxoid ★★★ ()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от sdmyt

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

Vsevolod-linuxoid ★★★ ()
Ответ на: комментарий от bormant

sudo gdisk -l /dev/sda

GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. 
***************************************************************

Disk /dev/sda: 1953525168 sectors, 931.5 GiB
Model: WDC WD1002F9YZ-0
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 42FCCDED-A893-4BFE-9534-16FB17BCA22D
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 2048-sector boundaries
Total free space is 294534509 sectors (140.4 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   4       901779456      1659000831   361.1 GiB   4200  Windows LDM data
   5            4096         2101247   1024.0 MiB  EF00  EFI System
   6         2103296       316676095   150.0 GiB   8300  Linux filesystem
   7       316678144       350232575   16.0 GiB    8200  Linux swap
   8       350234624       901779455   263.0 GiB   8300  Linux filesystem
sdmyt ()
Ответ на: sudo gdisk -l /dev/sda от sdmyt

По поводу кода 42 на ntfs разделе немного огорчу
https://www.win.tue.nl/~aeb/partitions/partition_types-1.html

42 Windows 2000 dynamic extended partition marker
If a partition table entry of type 0x42 is present in the legacy partition table, then W2K ignores the legacy partition table and uses a proprietary partition table and a proprietary partitioning scheme (LDM or DDM). As the Microsoft KnowledgeBase writes: Pure dynamic disks (those not containing any hard-linked partitions) have only a single partition table entry (type 42) to define the entire disk. Dynamic disks store their volume configuration in a database located in a 1-MB private region at the end of each dynamic disk.

Именно их видит ядро и не видят fdisk и gdisk (и могли насоздавать разделов на занятом месте, записью в которые могла быть убита накрытая ими ФС).

Давайте смотреть выхлоп:
cat /proc/partitions

bormant ★★★★★ ()
Ответ на: комментарий от bormant

cat /proc/partitions

Извиняюсь, что так долго не писал.
Выхлоп:

major minor  #blocks  name

   7        0      11412 loop0
   7        1     258360 loop1
   7        2    1358220 loop2
   7        3     406132 loop3
   8        0  976762584 sda
   8        1     102400 sda1
   8        2  146699264 sda2
   8        3  304087040 sda3
   8        4  378610688 sda4
   8        5   73400320 sda5
   8        6   73398272 sda6
   8        7       2048 sda7
   8        8     459776 sda8
   8       16    7913472 sdb
   8       17    2088658 sdb1
   8       18       4096 sdb2

sdmyt ()
Ответ на: cat /proc/partitions от sdmyt

Если судить по /proc/partitions, то размеры отдельных разделов в сумме не превышают размера диска. Но это так, скорее всего, из-за того, что ядро читает только старые данные LDM — это логично, на динамическом диске не должно быть значимых данных ни в MBR, ни в GPT. А отыскать их (прежние разделы) в выводе fdisk и gdisk не удалось, кроме sda4.

Рассказывайте, как был размечен диск изначально, если точнее, как именно было уменьшено место, занятое Windows.

Попробуйте смонтировать видимые в LiveUSB разделы, что-то получится? Возможно, принудительно.

Если повезло, и все данные Windows действительно внутри sda4 (в чем я очень сильно сомневаюсь), то даже удастся вытащить данные.

Можно попробовать получить границы LDM-разделов (чтобы понять, есть ли неповрежденные) при помощи ldmtool: https://www.mankier.com/1/ldmtool
Можно попробовать найти границы разделов при помощи testdisk и надеяться, что не разрушены управляющие структуры, скопировать данные.

Иначе, стирать 1Mb в конце диска, переразмечать и переустанавливать обе системы.

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 2)
Ответ на: комментарий от bormant

История дуалбута.

Итак, решил всерьёз подумать о переходе с windows на linux. В качестве первого дистрибутива выбрал Manjaro с окружением KDE. Windows решил оставить до тех пор пока полностью не освоюсь в linux. Скачал Acronis Disk Director и с помощью него отрезал 400 с лишним ГБ от дисков C и D. При установке самого manjaro решил воспользоваться функцией замены раздела. С этого момента и начались мои мучения. С начала были проблемы с fsck, потом device UUID=... not found. В итоге, многократно переустанавливая линукс с разными разметками, я пришёл к чёрному экрану с надписью GRUB и мигающим курсором:

GRUB _
Решил, что проблему может исправить переустановка загрузчика. Но она не удалась из-за ошибки, которая указана в самом начале поста.

sdmyt ()
Ответ на: История дуалбута. от sdmyt

Что и почему получилось — вполне понятно, ссылки выше уже давал.
Главная ошибка — необходимо было предварительно преобразовать динамический (Dynamic) диск в базовый (Basic) в терминологии Windows.

Без этого у вас получилось примерно следующее.
1) В MBR была запись о единственном первичном (primary) разделе с типом 0x42 и размером на весь диск; в последнем МБ этого раздела лежала реальная LDM-таблица разделов этого диска;

2) После

Acronis Disk Director и с помощью него отрезал 400 с лишним ГБ от дисков C и D.

возникает вопрос, действительно ли он умеет работать с LDM и что получилось при отрезании:
а) умеет, изменены (1) размеры ФС «дисков» C: и D:, (2) границы разделов внутри LDM, (3) границы внешнего контейнера в MBR;
б) не умеет, изменены размеры только внешнего контейнера.
Почему-то кажется, что у варианта (б) больше шансов :(, ведь динамический диск не может содержать дополнительных разделов внутри MBR и/или GPT... Но это мои домыслы, тут нужно исследовать вопрос по версии ADD, его документации, а при тишине в ней на эту тему — путем натурного эксперимента.

3) После создания разделов и установки Linux то, что получилось, могло выглядеть как-то так:

Было: (сверху данные MBR, снизу — LDM)

v----------------- раздел 4 тип 0x42 ---------------v
=====================================================
^-- диск C: тип 7 --^ ^---- диск D: тип 7 ----^ ^LDM^


Стало (если была поддержка):

v~~~ расш. sda1 ~~~v
v sda 5, 6, 7, 8 v v----- раздел 4 тип 0x42 ------v
=====================================================
^-диск C:-^ ^--диск D:---^ ^LDM^

Стало (если не было поддержки):

v--- расш. sda1 ---v
v sda 5, 6, 7, 8 v v----- раздел 4 тип 0x42 ------v
=====================================================
^-- диск C: тип 7 --^ ^---- диск D: тип 7 ----^ ^LDM^


На картинке оптимистичный вариант, когда «диск D:» не был затерт, но это не гарантировано.

Вон там: http://www.glazavezde.ru/nastroyka-programm-v-korporativnyh-setyah/tonkosti-n... пишут, что ADD 11 знает про динамические диски.

4) Если не было ценных данных, или есть их резервная копия, переразметьте и переставьте обе системы.
Если были — самое время озаботиться вопросом, 1) целы ли они и 2) куда переписать то, что еще не убито.

5) Если поддержка все же была, преобразование в Basic диск в том же ADD должно помочь, если он сможет оставить и MBR, и LDM разделы в MBR варианте.

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 3)
Ответ на: комментарий от bormant

На картинке оптимистичный вариант, когда «диск D:» не был затерт

К сожалдению, скорее всего «диска D» больше нет, т.к. из линукса можно взаимодействовать только с «C:».
Сейчас буду пытаться переустанавливать винду, а с неё уже посмотрю, что можно сделать.

sdmyt ()
Ответ на: комментарий от sdmyt

После переустановки что-либо делать будет уже поздно, скорее всего, прежним данным будет хана. Если такой ваиант устраивает, сразу делайте Basic разметку, не Dynamic. Если в интерфейсе установщика на эту тему ничего не найдете, shift+F10, diskpart в помощь.

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от anonymous

Вопрос 1: чем сносить LDM?
В установщике Windows это легко сделать из diskpart.
В Linux-ах на ум приходит только dd или ldmtool (мало где есть в установщиках?)

Пока на диске есть LDM, ядро не увидит разделов из MBR.

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от sdmyt

Успешная установка

Спустя 3 с небольшим дня всё же установил linux. Для этого пришлось скинуть файлы в облако и создать новую GPT(и решить 3-4 возникшие проблемы). Спасибо всем за помощь! В следующий раз буду внимательнее при установке какой-либо системы дуалбутом с виндой.

sdmyt ()