The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Эмуляция наличия жесткого диска в системе"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Файловые системы, диски / Linux)
Изначальное сообщение [ Отслеживать ]

"Эмуляция наличия жесткого диска в системе"  +/
Сообщение от brauntel (ok) on 29-Май-11, 14:19 
Добрый день!
Столкнулся со следующей проблемой при переходе на бездисковые (толстые) клиенты, где во время загрузки файловая система монтируется по NFS, а дальше все грузится как обычно.

Имеется в наличии проприетарная программа, которая привязывается к компьютеру по маку, имени и серийнику винта. Проблема в том, что в бездисковой машине винта-то нет :)
Разработчики проги вежливо посылают в лес со словами "возможно, мы когда-нибудь подумаем о том, чтобы такие ситуации разруливались корректно, но не сейчас".
Оставлять болтаться винт в системнике только ради одной этой проги - глупо. Они бы (винты) в хозяйстве пригодились бы.

Внимание вопрос: можно как-нибудь эмулировать устройства /dev/hda или /dev/sda в системе и, желательно, иметь возможность влиять на серийный номер эмулируемого жесткого диска?

Заранее спасибо за советы.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Эмуляция наличия жесткого диска в системе"  +/
Сообщение от PavelR (??) on 29-Май-11, 16:04 
>[оверквотинг удален]
> время загрузки файловая система монтируется по NFS, а дальше все грузится
> как обычно.
> Имеется в наличии проприетарная программа, которая привязывается к компьютеру по маку,
> имени и серийнику винта. Проблема в том, что в бездисковой машине
> винта-то нет :)
> Разработчики проги вежливо посылают в лес со словами "возможно, мы когда-нибудь подумаем
> о том, чтобы такие ситуации разруливались корректно, но не сейчас".
> Оставлять болтаться винт в системнике только ради одной этой проги - глупо.
> Они бы (винты) в хозяйстве пригодились бы.
> Внимание вопрос: можно как-нибудь эмулировать устройства /dev/hda или /dev/sda в системе

как-нибудь - можно.

> и, желательно, иметь возможность влиять на серийный номер эмулируемого жесткого диска?

Всё, что напишете - всё будет можно. Это опенсорс, тут можно много. )

> Заранее спасибо за советы.

Попробуйте сделать strace процесса проверки, увидеть, что пытается открывать программа, ну и далее.... создать что-то нужное - ноду устройства, файл, драйвер.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Эмуляция наличия жесткого диска в системе"  +/
Сообщение от brauntel (ok) on 29-Май-11, 21:01 
> Попробуйте сделать strace процесса проверки, увидеть, что пытается открывать программа,
> ну и далее.... создать что-то нужное - ноду устройства, файл, драйвер.

результат strace (отфильтрованно из кучи мусора):

open("/dev/sda", O_RDONLY|O_NONBLOCK)   = 12
ioctl(12, SG_IO, {'S', SG_DXFER_FROM_DEV, cmd[6]=[12, 01, 80, 00, 24, 00], mx_sb_len=0, iovec_count=0, dxfer_len=36, timeout=0, flags=0, data[36]=["\x00\x80\x00\x0c\x31\x35\x32\x44\x32\x30\x33\x32\x39\x30\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"], status=00, masked_status=00, sb[0]=[], host_status=0, driver_status=0, resid=20, duration=20, info=0}) = 0
close(12)= 0

в хексе там получается строка "152D20329000" - это таки серийник, но не такой, который в винде HDDScan показывается, а тот, что выдает в линуксе, например, команда scsiinfo -s /dev/sda
А ioctl подозрительно похожа на команду inquire, запрашивающую 80-ю страницу с информацией об устройстве. Соответственно вопрос: как обойти?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Эмуляция наличия жесткого диска в системе"  +/
Сообщение от PavelR (??) on 29-Май-11, 22:29 
>[оверквотинг удален]
> ioctl(12, SG_IO, {'S', SG_DXFER_FROM_DEV, cmd[6]=[12, 01, 80, 00, 24, 00], mx_sb_len=0,
> iovec_count=0, dxfer_len=36, timeout=0, flags=0, data[36]=["\x00\x80\x00\x0c\x31\x35\x32\x44\x32\x30\x33\x32\x39\x30\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"],
> status=00, masked_status=00, sb[0]=[], host_status=0, driver_status=0, resid=20, duration=20,
> info=0}) = 0
> close(12)= 0
> в хексе там получается строка "152D20329000" - это таки серийник, но не
> такой, который в винде HDDScan показывается, а тот, что выдает в
> линуксе, например, команда scsiinfo -s /dev/sda
> А ioctl подозрительно похожа на команду inquire, запрашивающую 80-ю страницу с информацией
> об устройстве. Соответственно вопрос: как обойти?

Можно написать драйвер, который будет создавать (обрабатывать запросы, а создавать можно и через mknod)  устройство, и отдавать нужные фейковые ответы.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Эмуляция наличия жесткого диска в системе"  +/
Сообщение от brauntel (ok) on 30-Май-11, 21:36 
> Можно написать драйвер, который будет создавать (обрабатывать запросы, а создавать можно
> и через mknod)  устройство, и отдавать нужные фейковые ответы.

Ответом практически на все вопросы стал стандартный модуль ядра scsi_debug. Так что решение найдено. В самом сложном случае можно подправить исходники для более гибкого влияния на серийник, но и сейчас механизмы для этого там имеются.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Эмуляция наличия жесткого диска в системе"  +/
Сообщение от PavelR (??) on 30-Май-11, 22:35 
>> Можно написать драйвер, который будет создавать (обрабатывать запросы, а создавать можно
>> и через mknod)  устройство, и отдавать нужные фейковые ответы.
> Ответом практически на все вопросы стал стандартный модуль ядра scsi_debug. Так что
> решение найдено. В самом сложном случае можно подправить исходники для более
> гибкого влияния на серийник, но и сейчас механизмы для этого там
> имеются.

Интересный модуль, надо посмотреть на него..

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру