Хорошо, извините за то, что так быстро ответил на свой вопрос, но я заметил кое-что ошеломляющее. Файл .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
Здесь слишком много вопросов, которые нужно решить, но это не поместится в комментарий, поэтому я буду публиковать его здесь, пока вопрос не будет удален.
Ваш /boot
не был смонтирован во время обновления, поэтому работающее ядро не имеет доступа к требуемым модулям.
efibootmgr показывает «команда не найдена», потому что вы ее не установили.
Ваш /boot
не был смонтирован для обновления, потому что у вас нет /boot
в вашем/etc/fstab
(или если он есть, он неверен ).
Решение этой задачи следующее:
Смонтируйте раздел EFI (, который является разделом VFAT для заглушки типа загрузки EFI в моем случае ), в удобный каталог:
#смонтировать /dev/nvme0n1p1 /efi
Обратите внимание, что в моем случае устройство имеет имя, подобное nvme0n1
, потому что это диск M2, но если вы используете диск SATA, имя устройства может быть чем-то вроде «sda1».
Запишите размеры файлов образа загрузки, чтобы вы могли отличить старые файлы от новых.
Скопируйте обновленные загрузочные файлы из раздела ext4 в раздел EFI (это перезапишет старые загрузочные образы):
#cp /boot/ */efi
Убедитесь, что в каталоге /efi (разделе VFAT )есть новые файлы, проверив размеры файлов.
Добавить пустой файл в раздел EFI, чтобы вы могли увидеть разницу между этим каталогом и каталогом /boot в обычном файловом дереве (ext4 ):
#компакт-диск /efi
#коснитесь EFI -загрузочный -каталог
Добавьте в файл fstab строку, которая монтирует раздел VFAT в каталог /boot. Это затенит каталог /boot в вашем основном корневом каталоге Arch. Это не перезапишет версию каталога /boot на диске ext4, но сделает его недоступным. Типичная строка в fstab будет выглядеть так:
UUID=4AF7 -CA4B /boot vfat по умолчанию 0 0
Чтобы узнать UUID накопителя, используйте команду lsblk -f
.
Перезагрузите систему, чтобы проверить, работает ли она, а затем проверьте загрузочный каталог:
$ ls /boot
Должен отображаться файл тега («EFI -загрузочный -каталог» или любое другое имя, которое вы выберете ). Если каталог не содержит файла,тогда это означает, что ваш раздел EFI не монтируется, и вам нужно повторно -проверить файл fstab.
Если раздел EFI автоматически монтируется в /boot, он должен корректно обновляться при каждом обновлении системы, а образы загрузки должны синхронизироваться с установленными модулями.