Как поменять название ОС в Solaris

6 Август 2010

Сегодня первый перевод из Solaris Infrequently Asked and Obscure Questions – как поменять строки в работающем ядре (How do I modify strings in the running kernel?). Одним из примеров, для чего это нужно – изменение названия операционной системы. Задача интересная, но редко встречающаяся. Иногда это делают по соображениям безопасности, но до конца понять такие соображения я не смог. Далее идет перевод:

Как поменять строки в работающем ядре.

Например, изменить имя и релиз работающей операционной системы (uname -sr).

Для этого необходимо изменить значения структуры ядра utsname.

1. Смотрим файл  /usr/include/sys/utsname.h

        #define _SYS_NMLN       257     /* 4.0 size of utsname elements */
        struct utsname {
	    char	sysname[_SYS_NMLN];
	    char	nodename[_SYS_NMLN];
	    char	release[_SYS_NMLN];
	    char	version[_SYS_NMLN];
	    char	machine[_SYS_NMLN];
        };

2. Получаем информацию о текущих значениях структуры:

    1. echo "utsname::print" | mdb -k

3. Определяем смещение:

    1. echo "0t257=x" | mdb
    2. 101

4. Конвертируем строку:

    1. echo "FunOS" | od -t x1
    2. 0000000 46 75 6e 4f 53 0a

5. Вносим изменения:

    1. Внимание: Изменяем работающее ядро!
    2. echo "utsname/v 46 75 6e 4f 53" | mdb -kw

6. Конвертируем строку:

    1. echo "5.12" | od -t x1
    2. 0000000 35 2e 31 32 0a

7. Вносим изменения:

    1. Внимание: Изменяем работающее ядро!
    2. echo "utsname+0x202/v 35 2e 31 32" | mdb -kw

8. Проверяем результат:

    1. Прямо из ядра:
        echo "utsname::print" | mdb -k
    2. Из утилиты в примере:
        /usr/bin/uname -sr
        FunOS 5.12

Я проверил, это работает не только в Solaris, но и в OpenSolaris. Вот скриншот OpenSolaris с изменениями в ядре, и актуальной информацией по системе из /etc/release:

Изменение названия ОС в Solaris


Нет похожих записей.

Рубрики: Полезные команды

Оставить комментарий

Оставить комментарий

Feed

http://solarisblog.ru / Как поменять название ОС в Solaris