Обычно grub-mkconfig
должно автоматически -обнаруживать операционные системы с двойной загрузкой (с помощью утилиты os-prober
). Это, однако, требует, чтобы у вас был смонтирован диск Windows. Например, попробуйте это:
$ mkdir -p /mnt/windows
$ mount /dev/sda1 /mnt/windows
$ grub-mkconfig -o /boot/grub/grub.cfg
Теперь он должен автоматически определить вашу установку Windows, и вы сможете загрузиться в Windows.
Еще одна важная вещь, которую следует отметить в отношении предыдущего ответа на этот вопрос :вам не следует никогда редактировать вручную /boot/grub/grub.cfg
, так как он может быть легко перезаписан такими инструментами, как grub-mkconfig
(, а синтаксис не В любом случае все интуитивно понятно ).
Да, драйвер ядра может управлять данными, которые он предоставляет в sysfs/procfs, на основе идентификатора пользователя -и/или практически любой информации, к которой ядро имеет доступ.
Когда вы читаете что-то из procfs или sysfs, системный вызов для чтения информации в основном заканчивается вызовом функции в соответствующем драйвере. Эта функция может видеть всю информацию о пользовательском -пространственном процессе, вызвавшем операцию чтения, и, безусловно, может изменить свой вывод на основе этой или любой другой информации, к которой может получить доступ ядро.
В конкретном случае /sys/bus/pci/devices/<PCI device ID>/config
любые попытки его чтения завершатся функцией pci_read_config()
в файле drivers/pci/pci-sysfs.c
, которая проверит, имеет ли вызывающий пользовательский -космический процесс CAP _SYS _Возможность ADMIN (, которая в большинстве случаев означает, что пользовательroot
). Если у пользователя нет такой возможности, функция ограничит читаемые данные конфигурации PCI первыми (dev->cfg_size)
байтами (128 байтами на CardBus ).
В версиях ядра 2.6.5 и ниже ограничение составляло 256 байт, но в версии 2.6.6 оно было ужесточено до (dev->cfg_size)
. В современной системе (dev->cfg_size)
обычно имеет размер 64 или 256 байт в зависимости от рассматриваемого устройства.
Вы можете продемонстрировать это с помощью простого lspci -v
. Если вы запустите его как root, вы увидите возможности PCI/PCIe каждого устройства. Но если вы запустите его как обычный пользователь,вместо этого вы получите:
Capabilities: <access denied>