Как partprobe работает?

Вы уже нашли zle-keymap-select который выполняется каждый раз, когда режим изменяется. Вы могли использовать его для установки некоторого другого визуального индикатора, чем подсказка, в зависимости от того, что терминал поддерживает его (и вкус в дисплее индикатора режима, конечно).

Существует стандарт terminfo возможность изменить форму курсора. Однако некоторые терминалы отображают тот же курсор в обоих режимах. Понятие Xterm менее видимого курсора состоит в том, чтобы заставить его мигнуть (и это должно быть включено с -bc параметр командной строки или cursorBlink ресурс).

zle-keymap-select () {
  case $KEYMAP in
    vicmd) print -rn -- $terminfo[cvvis];; # block cursor
    viins|main) print -rn -- $terminfo[cnorm];; # less visible cursor
  esac
}

С некоторыми терминалами можно также изменить цвет курсора с print -n '\e]12;pink\a' (названием цвета) или print -n '\e]12;#abcdef\a' (спецификацией RGB). Эти последовательности описаны в xterm документации, в ctlseqs файл; современные эмуляторы терминала обычно эмулируют xterm, хотя они не могли бы поддерживать все его функции.

12
14.11.2010, 22:43
1 ответ

Partprobe звонит BLKRRPART ioctl, который документируется в, допускает ошибку, include/linux/fs.h, и кроме того источник ядра (суть находится в rescan_partitions()):

#define BLKRRPART  _IO(0x12,95) /* re-read partition table */

Самый легкий способ узнать это состоит в том, чтобы работать strace -e raw=ioctl -e open,ioctl partprobe /dev/sdb.

Я думаю, чем Вы попробовали /sys/*/*scan говорит ядру проверять, было ли изменение диска. Это не помогает, если диск не изменился (или был заменен в горячем режиме способом, который не обнаруживает ядро?), но структура раздела на нем изменилась.

12
27.01.2020, 19:56

Теги

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