Как я могу избежать своих разделов загрузки и ядра, выходя из синхронизации?

Хорошо, извините за то, что так быстро ответил на свой вопрос, но я заметил кое-что ошеломляющее. Файл .qcow2 имел размер 120400379904 байта, тогда как преобразование изображения с помощью qemu-img convert -O raw дало мне изображение размером 128849018880 байтов.

Большая разница.

Теперь, если мы возьмем размер в секторах, найденных testdisk , мы действительно заметим, что 512 * 251657216 равно 128848494592, что на 512 байт больше, чем размер файла "сырого" образа. . «Это выглядит многообещающе, - подумал я.

Я создал эти файлы несколько лет назад, поэтому я не уверен, создавал ли я их как разреженные изображения. Тем не менее, если qemu-img info показывает это именно так, я подумал про себя, давайте попробуем преобразовать формат изображения. Имейте в виду, что это не меняет исходный файл!

qemu-img convert -O raw input output

делает эту работу, хотя и медленно.

Повторный запуск testdisk с этим файлом сработал на удивление хорошо, хотя мне все еще не удалось убедить mount использовать другой суперблок, несмотря на -o sb = ... .

TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk bigdata/vm_disk_vdb.img - 128 GB / 120 GiB - CHS 15666 255 63
     Partition               Start        End    Size in sectors
>P ext3                     0   1  1 15664 239 62  251657216 [DATA]


Structure: Ok.


Keys T: change type, P: list files,
     Enter: to continue
ext3 blocksize=4096 Large file Sparse superblock, 128 GB / 119 GiB

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

Было несколько повреждений, таких как:

ext2fs_read_inode(ino=384492884) failed with error 2133571369.

, а также другие незначительные проблемы, но проблемы затрагивали только около 0,1% всех файлов и папок. Запустите testdisk следующим образом, чтобы определить, какие файлы следует считать поврежденными:

testdisk /log imagefile.img
3
08.01.2019, 03:16
2 ответа

Здесь слишком много вопросов, которые нужно решить, но это не поместится в комментарий, поэтому я буду публиковать его здесь, пока вопрос не будет удален.

  1. Ваш /bootне был смонтирован во время обновления, поэтому работающее ядро ​​не имеет доступа к требуемым модулям.

  2. efibootmgr показывает «команда не найдена», потому что вы ее не установили.

  3. Ваш /bootне был смонтирован для обновления, потому что у вас нет /bootв вашем/etc/fstab(или если он есть, он неверен ).

-3
27.01.2020, 21:48

Решение этой задачи следующее:

  1. Смонтируйте раздел EFI (, который является разделом VFAT для заглушки типа загрузки EFI в моем случае ), в удобный каталог:

    #смонтировать /dev/nvme0n1p1 /efi

Обратите внимание, что в моем случае устройство имеет имя, подобное nvme0n1, потому что это диск M2, но если вы используете диск SATA, имя устройства может быть чем-то вроде «sda1».

  1. Запишите размеры файлов образа загрузки, чтобы вы могли отличить старые файлы от новых.

  2. Скопируйте обновленные загрузочные файлы из раздела ext4 в раздел EFI (это перезапишет старые загрузочные образы):

    #cp /boot/ */efi

  3. Убедитесь, что в каталоге /efi (разделе VFAT )есть новые файлы, проверив размеры файлов.

  4. Добавить пустой файл в раздел EFI, чтобы вы могли увидеть разницу между этим каталогом и каталогом /boot в обычном файловом дереве (ext4 ):

    #компакт-диск /efi
    #коснитесь EFI -загрузочный -каталог

  5. Добавьте в файл fstab строку, которая монтирует раздел VFAT в каталог /boot. Это затенит каталог /boot в вашем основном корневом каталоге Arch. Это не перезапишет версию каталога /boot на диске ext4, но сделает его недоступным. Типичная строка в fstab будет выглядеть так:

    UUID=4AF7 -CA4B /boot vfat по умолчанию 0 0

Чтобы узнать UUID накопителя, используйте команду lsblk -f.

  1. Перезагрузите систему, чтобы проверить, работает ли она, а затем проверьте загрузочный каталог:

    $ ls /boot

Должен отображаться файл тега («EFI -загрузочный -каталог» или любое другое имя, которое вы выберете ). Если каталог не содержит файла,тогда это означает, что ваш раздел EFI не монтируется, и вам нужно повторно -проверить файл fstab.

Если раздел EFI автоматически монтируется в /boot, он должен корректно обновляться при каждом обновлении системы, а образы загрузки должны синхронизироваться с установленными модулями.

0
27.01.2020, 21:48

Теги

Похожие вопросы