- Вопрос или проблема
- Проблема
- Предыстория
- Обновление
- Загрузка
- Что я пробовал
- Режим восстановления
- Графический режим восстановления
- Проверка плохих секторов
- Gparted
- Проверка /var
- Остановка fsck при загрузке
- Загрузка на батарейном питании
- tune2fs
- Дополнительная информация
- Вопрос
- Ответ или решение
- Проблема с fsckd после обновления системы Debian
- Описание проблемы
- Предыстория обновления
- Шаги, предпринятые для устранения проблемы
- Режим восстановления
- Дополнительные проверки
- Предотвращение запуска fsck на загрузке
- Рекомендации по решению проблемы
- Заключение
Вопрос или проблема
Проблема
После обновления с stretch на buster, мой ноутбук зависает во время загрузки во время проверки fsckd, с сообщением:
fsckd-cancel-msg: Нажмите Ctrl+C, чтобы отменить все проверки файловых систем, которые выполняются
Он не отвечает на ‘Ctrl+C’ или что-либо еще.
Предыстория
Обновление
Я обновил систему с stretch на buster, следуя этому руководству. Чтобы избежать проблем с недоступностью ссылки, вот команды в последовательном порядке:
su
sed -i 's/stretch/buster/g' /etc/apt/sources.list
apt update
apt upgrade
apt dist-upgrade
apt autoremove
apt clean
shutdown -r now
Ошибок не было.
Загрузка
Во время перезагрузки была обязательная проверка fskd, которая раньше никогда не вызывала проблем. Теперь же она заканчивается вышеупомянутым сообщением об ошибке. Ручное выключение и повторное включение приводят к тому же результату.
Что я пробовал
Этот вопрос имеет ту же проблему в Ubuntu. Поскольку Debian и Ubuntu похожи, я подумал, что принятый ответ может исправить мою проблему. Мой подход основан на ответе:
Режим восстановления
У меня не было под рукой Live USB, поэтому я загрузился в Linux 4.19.0-12-amd64 x86_64 (режим восстановления) и ввел пароль root для обслуживания.
fdisk -l
Устройство Загрузка Начало Конец Секторы Размер Id Тип
/dev/sda1 * 2048 499711 497664 243M 83 Linux
/dev/sda2 501758 625141759 624640002 297.9G 5 Расширенный
/dev/sda5 501760 625141759 624640000 297.9G 83 Linux
Затем я запустил вручную fsck на всех перечисленных дисках, также на /dev/mapper/debian--vg-root
и /dev/mapper/debian--vg-home
, все из которых вернули чистые результаты. Затем я перезагрузился, думая, что возможно проблема решена.
Графический режим восстановления
К сожалению, перезагрузка показала ту же ошибку. Поэтому я снова ручным способом выключил и включил, снова загрузившись в режиме восстановления. На этот раз, однако, вместо ввода пароля root, я нажал Ctrl+D
чтобы продолжить. Он завершил загрузку, показывая только черный экран. Поэтому я переключился на tty с помощью Ctrl+Alt+F1
, войдя под своей стандартной учетной записью без привилегий root. Затем я начал сеанс X11 с помощью startx
(нет особой причины для этого, кроме того, что мне удобнее работать в графическом сеансе).
Это уже показало мне, что обновление прошло успешно, поскольку визуальный интерфейс buster немного отличается от stretch. Чтобы убедиться, я проверил свою дистрибуцию с помощью lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
Проверка плохих секторов
Я выполнил sudo e2fsck -fccky
на всех /dev/sdaX
и /dev/mapper/debian-vg-X
, что заняло почти два часа. Перезагрузка показала, что ошибка все еще сохраняется.
Gparted
Я запустил gparted, но так как мой диск зашифрован LUKS, я не смог увидеть ничего полезного (сопутствующий вопрос).
Проверка /var
Я видел в нескольких источниках, что полный /var
может вызывать аналогичные проблемы. Так как я не мог проверить его с помощью gparted, как рекомендовали, я проверил его, как предложено здесь:
sudo du -ks *|sort -nr
Однако вывод не выглядит так, будто он сильно заполнен:
698456 lib
100720 cache
53824 log
6688 backups
76 spool
68 tmp
32 snap
8 mail
4 opt
4 local
0 run
0 lock
Также вывод df
выглядит так:
Файловая система 1K-блоки Использовано Доступно Использование% Смонтировано на
udev 1988192 0 1988192 0% /dev
tmpfs 402032 6508 395524 2% /run
/dev/mapper/debian--vg-root 28703652 10165160 17057380 38% /
tmpfs 2010160 133528 1876632 7% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 2010160 0 2010160 0% /sys/fs/cgroup
/dev/sda1 240972 89448 139083 40% /boot
/dev/mapper/debian--vg-home 273421644 24010648 235452240 10% /home
/dev/loop0 212864 212864 0 100% /snap/firefox/172
/dev/loop2 100096 100096 0 100% /snap/core/10185
/dev/loop1 100096 100096 0 100% /snap/core/10126
tmpfs 402032 24 402008 1% /run/user/1000
Так что я не думаю, что это проблема.
Остановка fsck при загрузке
Загрузка на батарейном питании
Я подумал, что могу просто предотвратить выполнение fsck при загрузке, как здесь. Однако загрузка на батарейном питании и нажатие Ctrl+C
не дало заметного эффекта, ошибка осталась прежней.
tune2fs
Как предложено здесь, я использовал tune2fs -c 0 -i 0 /dev/sda1
. Но даже несмотря на то, что Максимальное количество монтирования
установлено на -1
и Интервал проверки
на 0 (<без>)
, ошибка остается.
Я также нашел это решение, но так как это для archlinux, и также я ничего не знаю о grub, я не попытался это сделать.
Дополнительная информация
- При загрузке я был сбит с толку, увидев, что на моем ноутбуке, похоже, есть две версии ядра, 4.19 и 4.9. Это из-за обновления или это всегда было, и я просто никогда этого не замечал?
- Распространенная проблема, похоже, возникает, когда установлены драйверы nvidia, именно поэтому в указанном выше руководстве рекомендуется удалить их перед обновлением. Однако у меня никогда не было установленных драйверов nvidia, так что это не может быть причиной.
- Подобный вопрос был решен установкой
nvidia-drivers
. Однакоapt
сообщает мнеНе удается найти пакет nvidia-drivers
.
Вопрос
Как я могу предотвратить fsckd
от блокировки моей системы при загрузке?
Я предлагаю проверить, достаточно ли свободного места на том разделе, где находится Debian. Если он каким-то образом полон или почти полон, вам нужно увеличить его доступное пространство, а затем перезагрузить. Debian загрузится. Voilà.
Ниже то же самое предложение, но с подробностями для тех, кто не знаком с тем, как проверить доступное пространство и увеличить его.
Мы сталкиваемся с тем же самым вызовом с одним из наших устройств. В нашем случае причиной этой проблемы было то, что каким-то образом объем устройства, на котором хранится Debian, был полон. Ноль доступного пространства. В свою очередь, во время загрузки автоматически запускался fsck. fsck требует небольшое количество пространства, чтобы завершить свою автоматизацию. В свою очередь, fsck завис. Поскольку он не смог завершить свою автоматизацию. К сожалению, fsck не проверяет доступное пространство перед запуском своей автоматизации. Это было бы хорошей новой функцией.
Мы смогли воспроизвести эту проблему на еще трех устройствах. Просто заполнив их хранилище.
Шаги для решения этой проблемы:
-
С помощью терминала выполните эту команду, чтобы узнать, полны ли объемы
sudo df -h
-
В качестве альтернативы, если у вас есть доступ к GNOME, с помощью терминала выполните эту команду, чтобы открыть Baobab
sudo baobab
-
Подождите несколько секунд или минут, пока Baobab проанализирует объем. Он покажет, какие папки занимают больше всего места. Интерфейс интуитивно понятен.
-
Если необходимо, увеличьте доступное хранилище. Для этого, например, если это уместно, выполните эти команды, чтобы очистить временные кэшированные установочные пакеты:
sudo apt-get clean
sudo aptitude clean
-
Перезагрузитесь
-
fsck автоматически завершит свою автоматизацию. Иногда это очень быстро. Он даже не отобразится. Это нормально.
-
Debian загрузится. Voilà.
Ответ или решение
Проблема с fsckd после обновления системы Debian
Описание проблемы
После выполнения обновления системы с версии Stretch на Buster на вашем ноутбуке наблюдается зависание при загрузке, во время проверки файловой системы fsckd. На экране появляется сообщение:
fsckd-cancel-msg: Press Ctrl+C to cancel all filesystem checks in progress
Попытки отменить процесс при помощи ‘Ctrl+C’ не приносят результата, система не реагирует на нажатия клавиш, и требуется принудительное перезагрузку.
Предыстория обновления
Вы следовали инструкции по обновлению, описанной на сайте linuxbabe.com, и успешно выполнили команды:
su
sed -i 's/stretch/buster/g' /etc/apt/sources.list
apt update
apt upgrade
apt dist-upgrade
apt autoremove
apt clean
shutdown -r now
В процессе обновления не возникло никаких ошибок, однако после перезагрузки система не может завершить процесс загрузки.
Шаги, предпринятые для устранения проблемы
Режим восстановления
Не имея под рукой Live USB, вы загрузились в режиме восстановления 4.19.0-12-amd64 и начали диагностику.
-
Выполнили команду
fdisk -l
для проверки разделов:Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 499711 497664 243M 83 Linux /dev/sda2 501758 625141759 624640002 297.9G 5 Extended /dev/sda5 501760 625141759 624640000 297.9G 83 Linux
-
Провели ручную проверку файловых систем с помощью
fsck
на всех разделах, включая LVM-разделы, и обнаружили, что все они "чистые".
Дополнительные проверки
- Вы проверили состояние раздела
/var
, который, согласно вашим источникам, может вызывать проблемы, если заполнен. Однако, вывод командыdu -ks * | sort -nr
указал на то, что раздел не заполнен. - Можно использовать команду
df -h
для более детального анализа, результат также показал, что разделы не переполнены:Подключенные файловые системы Размер Использовано Доступно Использ.% /dev/mapper/debian--vg-root 28G 10G 17G 38% /dev/sda1 240M 89M 139M 40%
Предотвращение запуска fsck на загрузке
Вы пробовали запустить систему без проверки файловой системы, но это не дало результата. Ваша команда tune2fs -c 0 -i 0 /dev/sda1
также не привела к успеху, так как параметры не изменили поведение.
Рекомендации по решению проблемы
-
Проверка на наличие изменений в конфигурации fstab. Убедитесь, что все разделы правильно настроены в файле
/etc/fstab
. -
Переустановка пакетов обслуживания. После обновления может быть полезно переустановить пакеты, связанные с загрузкой и инициализацией системы:
sudo apt install --reinstall systemd
-
Проверка состояния ядра. Обратите внимание на наличие нескольких версий ядра (4.19 и 4.9) после обновления. Возможно, одна из них вызывает конфликт. Убедитесь, что вы загружаетесь в правильное ядро.
-
Создание резервной копии и переустановка. Если проблема не разрешается, рекомендуется создать резервную копию важных данных и рассмотреть возможность чистой установки с новой версией Debian.
-
Проверка целостности пакетов. Используйте
debsums
для проверки целостности установленных файлов пакетов, чтобы убедиться, что в процессе обновления не возникло повреждений.
Заключение
Проблема зависания при загрузке с сообщением fsckd может быть вызвана различными факторами, от отсутствия свободного пространства до неправильно настроенных разделов. Следуйте рекомендованным решениям выше, чтобы диагностировать и устранить ошибки, связанные с загрузкой. В случае невозможности решения проблемы, имеет смысл обратиться в специализированные форумы или службу поддержки Debian для получения дальнейшей помощи.