Как показать тэг Git последней версии с сообщением

Это binfmt_misc в действии: он позволяет сообщить ядру, как запускать двоичные файлы, о которых оно не знает. Посмотрите на содержимое /proc/sys/fs/binfmt_misc; среди файлов, которые вы там увидите, один должен объяснять, как запускать двоичные файлы Mono:

enabled
interpreter /usr/lib/binfmt-support/run-detectors
flags:
offset 0
magic 4d5a

(в системе Debian). Это говорит ядру, что двоичные файлы, начинающиеся с MZ (4d5a) должны быть переданы run-detectors. Последний определяет, использовать ли Mono или Wine для запуска двоичного файла.

Бинарные типы могут быть добавлены, удалены, включены и отключены в любое время; подробности см. в документации выше (семантика удивительна, используемая здесь виртуальная файловая система ведет себя не совсем как стандартная файловая система). /proc/sys/fs/binfmt_misc/status дает глобальный статус, а каждый двоичный "дескриптор" показывает свой индивидуальный статус. Другим способом отключения binfmt_misc является выгрузка его модуля ядра, если он собран как модуль; это также означает, что можно внести его в черный список, чтобы полностью избежать его использования.

Эта функция позволяет поддерживать новые двоичные типы, такие как исполняемые файлы MZ (которые включают двоичные файлы Windows PE и PE+, а также двоичные файлы DOS и OS/2!), Java JAR файлы... Это также позволяет поддерживать известные типы двоичных файлов на новых архитектурах, обычно используя Qemu; таким образом, с соответствующими библиотеками, вы можете прозрачно запускать двоичные файлы ARM Linux на процессоре Intel!

Ваш вопрос связан с перекрестной компиляцией, хотя и в смысле .NET, и это заставляет задуматься о binfmt_misc: некоторые конфигурационные скрипты ведут себя неправильно, когда вы пытаетесь выполнить перекрестную компиляцию на системе, которая может запускать перекрестно скомпилированные двоичные файлы. Обычно обнаружение кросс-компиляции включает сборку двоичного файла и попытку его запуска; если он запускается, то кросс-компиляции нет, если нет, то она есть (или ваш компилятор сломан). autoconf скрипты обычно могут быть исправлены в этом случае явным указанием архитектуры сборки и хоста, но иногда вам придется временно отключить binfmt_misc...

0
25.02.2019, 22:29
2 ответа

Глядя на исходный код для lsblk, для столбца STATE,определены только состояния runningилиsuspended

4
28.01.2020, 02:22

Вы можете указать параметры вывода -oдля lsblk, в этом случае STATE— это то, что вам нужно.

sudo lsblk -a -o NAME,MAJ:MIN,PARTTYPE,STATE
NAME   MAJ:MIN PARTTYPE                             STATE
sda      8:0                                        running
├─sda1   8:1   21686148-6449-6e6f-744e-656564454649 
├─sda2   8:2   0fc63daf-8483-4772-8e79-3d69d8477de4 
├─sda3   8:3   0fc63daf-8483-4772-8e79-3d69d8477de4 
└─sda4   8:4   0fc63daf-8483-4772-8e79-3d69d8477de4 

lsblk --helpпредоставит вам больше возможностей для включения, если это необходимо.

0
28.01.2020, 02:22

Теги

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