Рейтинг:2

Как я могу восстановить процесс загрузки (чтобы он использовал мой SSD)?

флаг vn

Я использую Lubuntu 20.04, которая загружается с SSD.

Сегодня я разрешил системе выполнять обновления, и впоследствии получил сообщение об ошибке, в котором говорилось, что update-initramfs не удалось. Я погуглил сообщение об ошибке и нашел это соединять в котором предполагалось, что проблема может быть решена путем освобождения места в /boot и переустановки пакета. Я думаю, что совершил ошибку, пытаясь сделать оба исправления в одной процедуре.

Я сделал:

sudo apt удалить initramfs-tools
sudo apt-получить автоматическое удаление 
sudo apt-очистить 
sudo apt установить initramfs-tools
sudo apt-получить обновление 

Все казалось исправленным, пока я не перезагрузил машину. Машина не могла перезагрузиться автоматически, но я вошел в загрузочное меню и выбрал более старое ядро. Это сработало. Осматривая сломанные и работающие команды загрузки, я считаю, что больше не загружаюсь с SSD (могу и ошибаться).

Сломанный вариант загрузки (который раньше работал):

menuentry 'Ubuntu с Linux 5.4.0-86-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-86-generic-advanced-f81f27eb-c1f2 -467c-a62b-fdd60b4f0592 '{
        сбой записи
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        если [x$grub_platform = xxen]; затем insmod xzio; инсмод изопио; фи
        insmod part_gpt
        insmod ext2
        если [x$feature_platform_search_hint = xy]; тогда
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        еще
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        фи
        echo 'Загружается Linux 5.4.0-86-generic...'
        linux /vmlinuz-5.4.0-86-generic root=/dev/nvme0n1p3 ro тихий всплеск $vt_handoff
    }

... и рабочий вариант:

menuentry 'Ubuntu с Linux 5.4.0-84-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-advanced-f81f27eb-c1f2 -467c-a62b-fdd60b4f0592 '{
        сбой записи
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        если [x$grub_platform = xxen]; затем insmod xzio; инсмод изопио; фи
        insmod part_gpt
        insmod ext2
        если [x$feature_platform_search_hint = xy]; тогда
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        еще
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        фи
        echo 'Загружается Linux 5.4.0-84-generic...'
        linux /vmlinuz-5.4.0-84-generic root=UUID=f81f27eb-c1f2-467c-a62b-fdd60b4f0592 ro тихий всплеск $vt_handoff
        echo 'Загружается начальный виртуальный диск...'
        initrd /initrd.img-5.4.0-84-общий
    }

Есть ли способ исправить повреждение и вернуть Lubuntu к загрузке с SSD? Теперь я думаю, что операция автоматического удаления, возможно, уничтожила некоторую важную информацию на SSD.

Параметр сломанной загрузки выдает этот вывод перед сбоем:

введите описание изображения здесь

Если я использую рабочий вариант загрузки, я теперь получаю следующий ответ от df (похоже, /boot находится на SSD, поэтому похоже, что моя идея о том, что этот вариант загружался с жесткого диска, вероятно, неверна).

дф-ч
Используемый размер файловой системы Доступно Использование % Установлено на
udev 16G 0 16G 0% /dev
tmpfs 3.2G 2.1M 3.2G 1%/запуск
/dev/nvme0n1p3 468 ГБ 121 ГБ 324 ГБ 28% /
tmpfs 16G 92M 16G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /выполнить/блокировать
tmpfs 16G 0 16G 0% /sys/fs/cgroup
tmpfs 16G 11M 16G 1% /tmp
/dev/loop1 128K 128K 0 100% /щелчок/голый/5
/dev/loop3 62M 62M 0 100% /snap/core20/1081
/dev/loop2 56M 56M 0 100% /snap/core18/2128
/dev/loop4 165M 165M 0 100% /snap/gnome-3-28-1804/161
/dev/loop5 243M 243M 0 100% /snap/gnome-3-38-2004/76
/dev/loop0 56M 56M 0 100% /snap/core18/2074
/dev/loop6 66M 66M 0 100% /snap/gtk-common-themes/1515
/dev/loop7 66M 66M 0 100% /snap/gtk-common-themes/1519
/dev/loop8 699M 699M 0 100% /snap/libreoffice/227
/dev/nvme0n1p2 510M 318M 155M 68% /загрузка
/dev/nvme0n1p1 532M 5,3M 527M 1% /boot/efi
/dev/loop9 163M 163M 0 100% /snap/gnome-3-28-1804/145
/dev/loop10 33M 33M 0 100% /snap/snapd/13170
/dev/loop11 33M 33M 0 100% /snap/snapd/12883
/dev/loop12 701M 701M 0 100% /snap/libreoffice/229
/dev/loop13 242M 242M 0 100% /snap/gnome-3-38-2004/70
tmpfs 3.2G 8.0K 3.2G 1% /выполнить/пользователь/1000
/dev/sdb1 1.9T 1008G 856G 55% /media/paul/Диск Seagate Backup Plus

Мой полный grub.cfg:

#
# НЕ РЕДАКТИРОВАТЬ ЭТОТ ФАЙЛ
#
# автоматически генерируется grub-mkconfig с использованием шаблонов
# из /etc/grub.d и настроек из /etc/default/grub
#

### НАЧАЛО /etc/grub.d/00_header ###
если [ -s $prefix/grubenv ]; тогда
  установить have_grubenv=true
  load_env
фи
если [ "${initrdfail}" = 2 ]; тогда
   установить initrdfail=
Элиф ["${initrdfail}" = 1 ]; тогда
   установить next_entry="${prev_entry}"
   установить пред_запись =
   save_env предыдущая запись
   если [ "${next_entry}" ]; тогда
      установить initrdfail=2
   фи
фи
если [ "${next_entry}" ] ; тогда
   установить по умолчанию = "$ {next_entry}"
   установить следующую_запись =
   save_env следующая_запись
   установить boot_once = истина
еще
   установить по умолчанию = "0"
фи

если [x"${feature_menuentry_id}" = xy]; тогда
  menuentry_id_option="--id"
еще
  menuentry_id_option=""
фи

экспортировать menuentry_id_option

если [ "${prev_saved_entry}" ]; тогда
  установить save_entry="${prev_saved_entry}"
  save_env сохраненная_запись
  установить prev_saved_entry =
  save_env prev_saved_entry
  установить boot_once = истина
фи

функция сохранения по умолчанию {
  если [-z "${boot_once}"]; тогда
    save_entry="${выбрано}"
    save_env сохраненная_запись
  фи
}
функция initrdfail {
    если [-n "${have_grubenv}"]; тогда если [ -n "${partuuid}" ]; тогда
      если [-z "${initrdfail}" ]; тогда
        установить initrdfail=1
        если [-n "${boot_once}" ]; тогда
          установить prev_entry="${по умолчанию}"
          save_env предыдущая запись
        фи
      фи
      save_env initrdfail
    фи; фи
}
функция записисбой {
  установить сбой записи = 1
  если [-n "${have_grubenv}"]; тогда если [-z "${boot_once}" ]; затем save_env RecordFail; фи; фи
}
функция load_video {
  если [x$feature_all_video_module = xy]; тогда
    insmod all_video
  еще
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    инсмод vbe
    инсмод вга
    insmod video_bochs
    insmod video_cirrus
  фи
}

если [x$feature_default_font_path = xy]; тогда
   шрифт = юникод
еще
insmod part_gpt
insmod ext2
если [x$feature_platform_search_hint = xy]; тогда
  поиск --no-floppy --fs-uuid --set=root f81f27eb-c1f2-467c-a62b-fdd60b4f0592
еще
  поиск --no-floppy --fs-uuid --set=root f81f27eb-c1f2-467c-a62b-fdd60b4f0592
фи
    шрифт = "/usr/share/grub/unicode.pf2"
фи

если загрузить шрифт $font ; тогда
  установить gfxmode=авто
  load_video
  insmod gfxterm
  установить locale_dir=$prefix/locale
  установить язык = en_GB
  инсмод gettext
фи
terminal_output gfxterm
если [ "${recordfail}" = 1 ] ; тогда
  установить время ожидания = 30
еще
  если [x$feature_timeout_style = xy]; тогда
    установить timeout_style = скрытый
    установить время ожидания = 0
  # Резервный код скрытого тайм-аута на случай, если функция timeout_style отключена.
  # недоступен.
  elif sleep --interruptible 0 ; тогда
    установить время ожидания = 0
  фи
фи
### КОНЕЦ /etc/grub.d/00_header ###

### НАЧАЛО /etc/grub.d/05_debian_theme ###
установить menu_color_normal=белый/черный
установить menu_color_highlight=черный/светло-серый
### КОНЕЦ /etc/grub.d/05_debian_theme ###

### НАЧАЛО /etc/grub.d/10_linux ###
функция gfxmode {
    установить gfxpayload="${1}"
    если [ "${1}" = "сохранить" ]; тогда
        установить vt_handoff=vt.handoff=7
    еще
        установить vt_handoff =
    фи
}
если [ "${recordfail}" != 1 ]; тогда
  если [-e ${префикс}/gfxblacklist.txt]; тогда
    если hwmatch ${prefix}/gfxblacklist.txt 3; тогда
      если [ ${match} = 0 ]; тогда
        установить linux_gfx_mode = сохранить
      еще
        установить linux_gfx_mode = текст
      фи
    еще
      установить linux_gfx_mode = текст
    фи
  еще
    установить linux_gfx_mode = сохранить
  фи
еще
  установить linux_gfx_mode = текст
фи
экспортировать linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-f81f27eb-c1f2-467c-a62b-fdd60b4f0592' {
    сбой записи
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    если [x$grub_platform = xxen]; затем insmod xzio; инсмод изопио; фи
    insmod part_gpt
    insmod ext2
    если [x$feature_platform_search_hint = xy]; тогда
      поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
    еще
      поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
    фи
    linux /vmlinuz-5.4.0-86-generic root=/dev/nvme0n1p3 ro тихий всплеск $vt_handoff
}
подменю «Дополнительные параметры для Ubuntu» $menuentry_id_option «gnulinux-advanced-f81f27eb-c1f2-467c-a62b-fdd60b4f0592» {
    menuentry 'Ubuntu с Linux 5.4.0-86-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-86-generic-advanced-f81f27eb-c1f2 -467c-a62b-fdd60b4f0592 '{
        сбой записи
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        если [x$grub_platform = xxen]; затем insmod xzio; инсмод изопио; фи
        insmod part_gpt
        insmod ext2
        если [x$feature_platform_search_hint = xy]; тогда
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        еще
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        фи
        echo 'Загружается Linux 5.4.0-86-generic...'
        linux /vmlinuz-5.4.0-86-generic root=/dev/nvme0n1p3 ro тихий всплеск $vt_handoff
    }
    menuentry 'Ubuntu, с Linux 5.4.0-86-generic (режим восстановления)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-86-generic-recovery -f81f27eb-c1f2-467c-a62b-fdd60b4f0592 '{
        сбой записи
        load_video
        insmod gzio
        если [x$grub_platform = xxen]; затем insmod xzio; инсмод изопио; фи
        insmod part_gpt
        insmod ext2
        если [x$feature_platform_search_hint = xy]; тогда
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        еще
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        фи
        echo 'Загружается Linux 5.4.0-86-generic...'
        linux /vmlinuz-5.4.0-86-generic root=/dev/nvme0n1p3 ro recovery nomodeset dis_ucode_ldr 
    }
    menuentry 'Ubuntu с Linux 5.4.0-84-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-advanced-f81f27eb-c1f2 -467c-a62b-fdd60b4f0592 '{
        сбой записи
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        если [x$grub_platform = xxen]; затем insmod xzio; инсмод изопио; фи
        insmod part_gpt
        insmod ext2
        если [x$feature_platform_search_hint = xy]; тогда
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        еще
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        фи
        echo 'Загружается Linux 5.4.0-84-generic...'
        linux /vmlinuz-5.4.0-84-generic root=UUID=f81f27eb-c1f2-467c-a62b-fdd60b4f0592 ro тихий всплеск $vt_handoff
        echo 'Загружается начальный виртуальный диск...'
        initrd /initrd.img-5.4.0-84-общий
    }
    menuentry 'Ubuntu, с Linux 5.4.0-84-generic (режим восстановления)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-recovery -f81f27eb-c1f2-467c-a62b-fdd60b4f0592 '{
        сбой записи
        load_video
        insmod gzio
        если [x$grub_platform = xxen]; затем insmod xzio; инсмод изопио; фи
        insmod part_gpt
        insmod ext2
        если [x$feature_platform_search_hint = xy]; тогда
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        еще
          поиск --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
        фи
        echo 'Загружается Linux 5.4.0-84-generic...'
        linux /vmlinuz-5.4.0-84-generic root=UUID=f81f27eb-c1f2-467c-a62b-fdd60b4f0592 ро восстановление nomodeset dis_ucode_ldr 
        echo 'Загружается начальный виртуальный диск...'
        initrd /initrd.img-5.4.0-84-общий
    }
}

### КОНЕЦ /etc/grub.d/10_linux ###

### НАЧАЛО /etc/grub.d/10_linux_zfs ###
### КОНЕЦ /etc/grub.d/10_linux_zfs ###

### НАЧАЛО /etc/grub.d/20_linux_xen ###

### КОНЕЦ /etc/grub.d/20_linux_xen ###

### НАЧАЛО /etc/grub.d/20_memtest86+ ###
### КОНЕЦ /etc/grub.d/20_memtest86+ ###

### НАЧАЛО /etc/grub.d/30_os-prober ###
### КОНЕЦ /etc/grub.d/30_os-prober ###

### НАЧАЛО /etc/grub.d/30_uefi-firmware ###
menuentry 'Настройки прошивки UEFI' $menuentry_id_option 'uefi-firmware' {
    fwsetup
}
### КОНЕЦ /etc/grub.d/30_uefi-firmware ###

### НАЧАЛО /etc/grub.d/40_custom ###
# Этот файл обеспечивает простой способ добавления пользовательских пунктов меню. Просто введите
# пунктов меню, которые вы хотите добавить после этого комментария. Будьте осторожны, чтобы не изменить
# строка 'exec tail' выше.
### КОНЕЦ /etc/grub.d/40_custom ###

### НАЧАЛО /etc/grub.d/41_custom ###
если [ -f ${config_directory}/custom.cfg ]; тогда
  источник ${config_directory}/custom.cfg
elif [-z "${config_directory}" -a -f $prefix/custom.cfg]; тогда
  источник $prefix/custom.cfg;
фи
### КОНЕЦ /etc/grub.d/41_custom ###
ChanganAuto avatar
флаг us
Как вы думаете, почему вы больше не загружаетесь с SSD? Нет, apt autoremove абсолютно ничего не делает ни с настройками загрузки, ни с другими командами.
Nmath avatar
флаг ng
Вы уже пробовали `boot-repair` из живого сеанса?
guiverc avatar
флаг cn
Вы должны были предоставить фактическое сообщение об ошибке; Из вашего описания я предполагаю, что у вас закончилось место на диске, где последующие команды также могут завершиться ошибкой или потенциально усугубить проблему. Прочтите фактическое сообщение об ошибке (особенно если это место на диске) и действуйте соответствующим образом (например, если это нехватка места на диске, вам нужно создать больше места на диске). Рабочий стол Ubuntu рекомендует как минимум 25 ГБ, чтобы избежать подобных проблем; однако сторонние блог-сайты часто рекомендуют меньше, что приводит к подобным ошибкам; меньше — это хорошо, но вам нужно больше контролировать и обслуживать свою систему.
флаг vn
@ChanganAuto - загрузка, которая перестала работать, указывает root=/dev/nvme0n1p3 (это мой SSD). Старая загрузка, которая все еще работает, указывает root=UUID=f81f27eb-c1f2-467c-a62b-fdd60b4f0592. Я не знаю, что это значит, но я предположил, что это может быть на жестком диске.
флаг vn
Я добавил больше информации к исходному вопросу. @Nmath - я не пробовал восстанавливать загрузку. Это следующее, что я планирую сделать, но я пытаюсь сначала понять, что произошло, и получить совет, так как я действительно не хочу делать хуже!
флаг vn
@guiverc - я не копировал сообщение об ошибке, полученное в результате обновления: я думал, что оно незначительное, и оно просто исчезнет, ​​когда я освободим место. Все, что я помню, это то, что проблема касалась update-initramfs и совпадала с проблемой, описанной в ссылке.
Рейтинг:0
флаг vn

Решил! Я объясню, как для тех, кто сталкивается с подобной проблемой. Два сообщения помогли мне решить проблему.

Я загрузил систему, используя предыдущее ядро ​​(если бы у меня его не было, я бы попробовал загрузиться с USB-накопителя).

Во-первых, я узнал, как использовать journalctl для просмотра ошибок из-за неудачной загрузки:

журналctl -b -2 -e

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

журналctl --list-boots 

Пост, который мне помог здесь

Во-вторых, я определил ключевую проблему из журнала как:

Паника ядра - не синхронизируется vfs, невозможно смонтировать root fs на неизвестном блоке (0 0)

Это было решено:

sudo update-initramfs -u -k 5.4.0-86-общий
sudo update-grub

Где 5.4.0-86-generic — это имя ядра, которое сломалось и перестало загружаться.

Пост, который мне помог это

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.