Как отключить, когда нет системных / init (например, использование init = / bin / bash)?

У вас есть доступ для записи на жесткий диск машины, поэтому вы можете добавлять и изменять файлы по своему желанию.

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

Однако с точки зрения безопасности вредоносные программы обычно не поставляются с установщиком, это либо один файл .exe, который вы спрятали, а затем добавляете соответствующую запись в реестр, чтобы он запускался при загрузке, либо вы полностью заменяете критически важную систему. файлы на свои (вредоносные).

8
11.12.2018, 02:06
4 ответа

Размонтируйте смонтированные файловые системы. Корневая файловая система — это особый случай; для этого вы можете использовать mount / -o remount,ro. В Linux umount /также работает, поскольку эффективно преобразуется в предыдущую команду.


Тем не менее, вам не нужно слишком много беспокоиться о размонтировании, если только

  1. Вы смонтировали старую файловую систему, такую ​​как FAT -, используемую системным разделом EFI -или ext2, в которой не реализовано ведение журнала или что-то подобное. В современной файловой системе syncдолжно быть достаточно, и файловая система очень быстро восстановится при следующей загрузке.
  2. Возможно, вы оставили работающий процесс, выполняющий запись в файловую систему, и намеревались корректно завершить его работу. В этом случае полезно попытаться размонтировать файловые системы, потому что размонтирование завершится ошибкой и покажет ошибку занятости, чтобы напомнить вам об оставшемся модуле записи.

Вышеизложенное является важной частью. После этого вы также можете удобно отключить аппаратное обеспечение с помощью poweroff -f. Или перезагрузитесь с помощью reboot -f.

Существуетsystemd-конкретный эквивалентpoweroff -f:systemctl poweroff -f -f. Однако poweroff -fделает то же самое, и systemdподдерживает эту команду, даже если она была собрана без совместимости с SysV.


Технически,Я помню, что мой жесткий диск USB был задокументирован как требующий «безопасного удаления» Windows или эквивалентного. Но это требование не является безопасным при сбое питания, и Linux в любом случае не выполняет этого во время нормального завершения работы. Это лучше интерпретировать как означающее, что вы не должны толкать жесткий диск во время его вращения -, в том числе пытаясь отключить его. Полное отключение питания должно остановить вращение диска. Возможно, вы услышите, почувствуете или увидите, не прекратится ли оно :-).

10
27.01.2020, 20:08

Итак, мне пришло в голову, что у меня есть возможность exec init. Оттуда я, вероятно, смогу позже poweroff. Однако мне интересно, есть ли лучшие альтернативы.

4
27.01.2020, 20:08

Я просто выполню ниже две команды:

echo s > /proc/sysrq-trigger    <= For sync
echo o > /proc/sysrq-trigger    <= For shutdown the system

Предполагая, что волшебный ключ включен в ядре

7
27.01.2020, 20:08

Фактически, вы хотите вызвать перезагрузку (2)системный вызов.

Два способа сделать это:

  1. Запустите reboot -fили poweroff -f, это должно вызвать reboot(2)напрямую.

  2. Если вы используете настоящий виртуальный терминал Linux (, а не эмулятор терминала с графическим интерфейсом ), нажмите Ctrl + Alt + Delete .

Обратите внимание, что сочетание клавиш может быть отключено некоторой программой пользовательского пространства (, обычно инициализирующей ).

Все вышеперечисленные команды следует выполнять после размонтирования -всех дисков или повторного монтирования только для чтения и запуска синхронизации, иначе вы можете потерять незаписанные данные. Если ваша оболочка является единственным запущенным процессом, синхронизации может быть достаточно.

3
27.01.2020, 20:08

Теги

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