/ usr / sbin / grub-mkconfig: 11: / etc / default / grub::В доступе отказано

У меня проблема при обновлении системы. Я выяснил, что есть проблема, обновив grub во время «sudo apt upgrade».

Removing linux-image-5.4.0-42-generic (5.4.0-42.46) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-5.4.0-42-generic
/etc/kernel/postrm.d/zz-update-grub:
Sourcing file `/etc/default/grub'
/usr/sbin/grub-mkconfig: 11: /etc/default/grub: : Permission denied
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 127
dpkg: error processing package linux-image-5.4.0-42-generic (--remove):
 installed linux-image-5.4.0-42-generic package post-removal script subprocess returned error exit status 1
dpkg: too many errors, stopping
Errors were encountered while processing:
 linux-image-5.4.0-42-generic
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)

затем я попробовал также «sudo update-grub» и получил это

Sourcing file `/etc/default/grub'
/usr/sbin/grub-mkconfig: 11: /etc/default/grub: : Permission denied

Сам файл grub (/ etc / default / grub) выглядит следующим образом:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX= ""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true                                                                                           
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

«ls -ldh / etc / default / grub»

-rw-r--r-- 1 root root 1,2K Nov 30 21:41 /etc/default/grub

У кого-нибудь есть идея?

1
задан 1 December 2020 в 00:04

1 ответ

Ошибка — это пробел в назначении в

GRUB_CMDLINE_LINUX= "" 

строке 11 файла /etc/default/grub. Это заставляет оболочку (вероятно, /bin/sh) анализировать ее как «ничего не назначать GRUB_CMDLINE_LINUX, а затем запускать команду без имени с GRUB_CMDLINE_LINUX в ее окружающая обстановка".

Вы можете воспроизвести формат ошибки следующим образом:

$ sh -c 'GRUB_CMDLINE_LINUX= ""'
sh: 1: : Permission denied

тогда как bash сообщает о более полезном сообщении

$ bash -c 'GRUB_CMDLINE_LINUX= ""'
bash: : command not found

Строка должна читаться

GRUB_CMDLINE_LINUX=""

хотя GRUB_CMDLINE_LINUX= также должно работать.

3
ответ дан 30 November 2020 в 23:39

Другие вопросы по тегам:

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