2

Вопрос

При загрузке Linux, есть ли опция, которую я могу добавить в строку «vmlinuz…», которая не позволит ОС когда-либо (по крайней мере, в этом сеансе) видеть или получать доступ к твердотельным накопителям NVMe, сохраняя при этом все другое оборудование доступным для обнаружения и монтирования?

контекст

Я довольно новичок в Linux и все еще учусь. Я хочу создать мультизагрузочную настройку (с разных дисков, а не с разных разделов), в которой каждый экземпляр операционной системы эффективно «пропускает воздух» от другого. Затем я могу выбрать, с какого диска загружаться в BIOS при запуске и какой диск загружается, эта ОС не сможет увидеть другой диск.

Я использую ноутбук, где нецелесообразно физически менять диски (по крайней мере, не часто), и я хочу запустить Win 10 Pro с моего диска NVMe (с отключенным диском SATA в диспетчере устройств) и возиться с различными дистрибутивами Linux, запустив их с моего привода SATA или Live CD (с невидимым для них приводом NVMe), при этом сохраняя данные на моем приводе NVMe в безопасности.

Некоторая системная информация

  • BIOS
    AMI Aptio 2.18.126
    Прошивка Ver 1.05.03
  • Набор микросхем
    Intel Z170
  • Семейство процессоров
    Skylake
  • NVMe диск
    Samsung 950 Pro
  • Диск SATA
    Samsung 850 Pro

Большое спасибо @EugenRieck, @davidgo, @TwistyImpersonator, @dirkt, @KamilMaciorowski и всем, кто нашел время, чтобы ответить.

В ответ на вопрос Дирка. То, к чему я стремился, было мультизагрузочной установкой, где «диск a» с его данными и ОС был изолирован от всего, что работало на «диске b». В идеале было бы удобно отключить выбранный диск (или порт диска) в BIOS или, что еще лучше, через аппаратный переключатель, но в моей системе такой опции нет. Я видел некоторые вещи, относящиеся к настройке параметров ядра Linux при загрузке через командную строку, поэтому я подумал, могу ли я отключить диск таким образом. Такой подход выглядит как удобный, так как его легче применить к чему-то вроде предварительно сконфигурированного Live CD, а также ко всему, что я мог бы установить и настроить на «диске b». (Еще раз спасибо, Евгений, за подробности о том, как это сделать). Из того, что Дэвид сказал в своем посте, звучит так, что такие команды ядра не имеют преимущественной силы, и при таком подходе было бы довольно тривиально, если бы немного вредоносного ПО могло попасть на мой диск NVMe, если я, скажем, неправильно настрою IPTables или неправильно настрою виртуальную машину или установите пакет, который выглядел так, как будто бы имел уникальные творческие функции, но на самом деле был поврежден. Это верно?

1 ответ1

3

Это довольно просто: загрузочный параметр командной строки modprobe.blacklist=nvme выполнит эту работу.

РЕДАКТИРОВАТЬ

Как и просили в комментариях, вот немного предыстории:

  • modprobe - это механизм автоматической загрузки драйверов при обнаружении устройства. Поэтому, когда ваш NVMe-диск будет обнаружен на шине PCIe, он будет вызван для загрузки драйверов.
  • Поскольку существует несколько ситуаций, когда вы не хотите, чтобы драйвер загружался автоматически (каноническим примером является nouveau против драйвера двоичного драйвера nvidia производителя), этот механизм содержит функцию "черного списка", поэтому он прекратит автозагрузку для драйвера.
  • Этот черный список можно удалить, отредактировав файл в /etc/modprobe.d или через командную строку ядра. Я использовал последний, так как ваш вопрос явно сформулировал командную строку загрузки.
  • Драйвер (модуль ядра), который делает диски NVMe доступными как блочные устройства, неудивительно, что называется "nvme"

Объединение всего этого приводит к упомянутой командной строке - совершенно нередко использовать такой параметр, особенно на причудливых ноутбуках. По сути, это точный аналог отключения драйверов SATA в диспетчере устройств Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .