geom -> прямой доступ к девайсу...

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1330
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

geom -> прямой доступ к девайсу...

Непрочитанное сообщение dekloper » 2009-08-27 15:23:27

вот хотел кой чего поменять в бут-секторе

Код: Выделить всё

dd if=/tmp/ad4s2 of=/dev/ad4s2 count=1
dd: /dev/ad4s2: Operation not permitted
есть какая-нить сисцтлка на енту тему...?

Код: Выделить всё

sysctl -a | grep geom
kern.geom.collectstats: 1
kern.geom.debugflags: 16
kern.geom.label.debug: 0
kern.geom.gate.debug: 0
debug.sizeof.g_geom: 68
плз, проясните ситуацию...
зы. с2 в данном случае фряшный слайс
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35297
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение Alex Keda » 2009-08-27 19:05:51

а в мане чё
Убей их всех! Бог потом рассортирует...

Гость
проходил мимо

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение Гость » 2009-08-27 19:14:39

если не найдешь, то смотри в
geom(4) писал(а):
  • DIAGNOSTICS
    • Several flags are provided for tracing GEOM operations and unlocking pro?
      tection mechanisms via the kern.geom.debugflags sysctl. All of these
      flags are off by default, and great care should be taken in turning them
      on.

      0x10 (allow foot shooting)
      • Allow writing to Rank 1 providers. This would, for example,
        allow the super?user to overwrite the MBR on the root disk or
        write random sectors elsewhere to a mounted disk. The implica?
        tions are obvious.

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1330
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение dekloper » 2009-08-27 19:44:02

lissyara писал(а):а в мане чё
касательно слайсов - ничего не разглядел..

про дебажные флаги я в курсе..
kern.geom.debugflags: 16
но это снимает проблему только с мастербут..

интересно назначение других переменных по фильтру жеом..
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Гость
проходил мимо

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение Гость » 2009-08-27 22:33:53

покажи содержимое kern.geom.confxml

Код: Выделить всё

$ sysctl -b kern.geom.confxml
и кусок лога после "Operation not permitted" с помощью флага 0x04 (G_T_ACCESS). Что-то вроде

Код: Выделить всё

g_dev_open(ada1, 1027, 8192, 0xffffff005a2f1390)
g_access(0xffffff00051ae980(ada1), 1, 1, 0)
open delta:[r1w1e0] old:[r0w0e0] provider:[r2w2e5] 0xffffff0005116e00(ada1)
g_dev_open(ada1, 1026, 8192, 0xffffff005a2f1390)
g_access(0xffffff00051ae980(ada1), 0, 1, 0)
open delta:[r0w1e0] old:[r0w0e0] provider:[r2w2e5] 0xffffff0005116e00(ada1)
например, в моем .confxml 0xffffff0005116e00 используется PART классом, кой разбивает ada1 на ada1p1, ada1p2,... ada1pN.

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1330
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение dekloper » 2009-08-28 8:32:00

уже интересней.. :cz2:
Гость писал(а):покажи содержимое kern.geom.confxml

Код: Выделить всё

Aug 28 12:09:42 kaktus kernel: g_dev_open(ad4s2, 1027, 8192, 0xc4f78b40)
Aug 28 12:09:42 kaktus kernel: g_access(0xc4a0db00(ad4s2), 1, 1, 0)
Aug 28 12:09:42 kaktus kernel: open delta:[r1w1e0] old:[r0w0e0] provider:[r6w6e11] 0xc47d3e80(ad4s2)
Aug 28 12:09:42 kaktus kernel: g_dev_open(ad4s2, 1026, 8192, 0xc4f78b40)
Aug 28 12:09:42 kaktus kernel: g_access(0xc4a0db00(ad4s2), 0, 1, 0)
Aug 28 12:09:42 kaktus kernel: open delta:[r0w1e0] old:[r0w0e0] provider:[r6w6e11] 0xc47d3e80(ad4s2)
Гость писал(а):в моем .confxml

Код: Выделить всё

<geom id="0xc4aa6980">
      <class ref="0xc0d527c0"/>
      <name>ad4s2</name>
      <rank>3</rank>
        <consumer id="0xc4a0db00">
          <geom ref="0xc4aa6980"/>
          <provider ref="0xc47d3e80"/>
          <mode>r0w0e0</mode>
        </consumer>
    </geom>
и чобы енто значило...? есть какинить даташиты по теме..? :bn:
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Гость
проходил мимо

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение Гость » 2009-08-28 13:10:10

dekloper писал(а):и чобы енто значило...? есть какинить даташиты по теме..? :bn:
в том обрывке, что ты дал - ничего. Тебе нужно найти какой класс использует ad4s2 и ставит палки в колеса при попытке прямого доступа к провайдеру (полагаю BSD, кой используется bsdlabel(8)). Выкладывай либо полностью xml, либо строй граф с помощью graphics/graphviz и находи сам.

Код: Выделить всё

$ sysctl -b kern.geom.confdot | dot -Tpng >geom_conf.png
$ gimp geom_conf.png
Если ты копируешь слайсы по dd(1), то тебе сначала надо убить существующую разметку BSD, чтобы всякие ad4s1a, ad4s1b,... ad4s1N поисчезали из /dev. Потому что в твоем образе уже есть разметка.
Ну или ты можешь добавить в ядро `nooption GEOM_BSD', чтобы BSD класс не пробовал устройства и не ставил палки в колеса на время копирования образа на ad4s1.

Гость
проходил мимо

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение Гость » 2009-08-28 13:11:35

Гость писал(а):копирования образа на ad4s1.
пардон, я везде имел в виду ad4s2.

Гость
проходил мимо

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение Гость » 2009-08-28 13:15:24

но если тебе нужно просто записать загрузочный код, то используй опцию `-b' у bsdlabel или fdisk в зависимости от того есть ли у тебя BSD разделы на ad4s2 или нет.

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1330
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение dekloper » 2009-08-28 14:49:42

Гость писал(а):Если ты копируешь слайсы по dd(1), то тебе сначала надо убить существующую разметку BSD, чтобы всякие ad4s1a, ad4s1b,... ad4s1N поисчезали из /dev. Потому что в твоем образе уже есть разметка.
Ну или ты можешь добавить в ядро `nooption GEOM_BSD', чтобы BSD класс не пробовал устройства и не ставил палки в колеса на время копирования образа на ad4s1.
нипанял :bn:
как я убъю разметку, если я это делаю с живой фри?
вот картинка
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Гость
проходил мимо

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение Гость » 2009-08-28 16:16:15

судя по тому, что у тебя слайсами заведует GEOM_PART_(MBR|BSD) (а не GEOM_(MBR|BSD)) у тя 8-ка что ль? из доступных
  • ad4s2a (ffs)
    ad4s2b (swap)
    ad4s2d (ffs)
    ad4s2e (ffs)
    ad4s2f (ffs)
    ad4s2g (ffs)
какая-либо примонтирована? т.е. числиться ли в выводе mount(8) без аргументов? Если да, то это объясняет "Operation not permitted". Используй gpart bootcode для записи загрузочного кода.

Код: Выделить всё

$ dd if=/tmp/ad4s2 count=1 of=/tmp/blah
$ gpart bootcode -b /tmp/blah ad4s2

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1330
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение dekloper » 2009-08-31 9:01:51

ога, пасибо за наводку :drinks:
Гость писал(а):заведует GEOM_PART_(MBR|BSD) (а не GEOM_(MBR|BSD))
все замонтировано "стандартно" / /var /tmp /usr....
ОС - 8-ка (правда, теперь уже 9-ка :pardon: )

Код: Выделить всё

$ dd if=/tmp/ad4s2 count=1 of=/tmp/blah
$ gpart bootcode -b /tmp/blah ad4s2
короче, для дд путь закрыт...?
или может помочь одна из опций

Код: Выделить всё

SYNOPSIS
     To add support for the disk partitioning GEOM class, place one or more of
     the following lines in your kernel configuration file:

           options GEOM_PART_APM
           options GEOM_PART_BSD
           options GEOM_PART_GPT
           options GEOM_PART_MBR
           options GEOM_PART_PC98
           options GEOM_PART_VTOC8
хотелось бы иметь "сырой" доступ к произвольной области накопителя :st:
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Гость
проходил мимо

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение Гость » 2009-08-31 14:38:45

dekloper писал(а):хотелось бы иметь "сырой" доступ к произвольной области накопителя :st:
у тебя есть сырой доступ - ad4.
ad4s2 - это уже не сырой, а через GEOM_PART_MBR.

Попробуй убрать проверку на rank из sys/geom/geom_subr.c

Код: Выделить всё

        /* If foot-shooting is enabled, any open on rank#1 is OK */
        if ((g_debugflags & 16) && pp->geom->rank == 1)
                ;
просто если ты сам посмотришь на свою картинку, то там у ad4s2 rank#3. rank#1 там только у сырого провайдера ad4.

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1330
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение dekloper » 2009-09-02 10:47:47

Гость писал(а):Попробуй убрать проверку на rank
ога, пасиба, пропатчил, все пишется... :drinks:
тока вот чем чреват отказ от проверки ранга? не паламается ли процесс "отрыва" поставщика?
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Гость
проходил мимо

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение Гость » 2009-09-02 15:26:37

да большой разницы нет как отстреливать себе ногу. Убить BSD-таблицу можно как через ad4, так и через ad4s2. Просто через ad4s2 ты не можешь убить MBR-таблицу, она там просто не видна из-за offset'ов. А так, для безопасной записи загрузочного кода есть gpart(8) и опции `-b' и `-p'. Пользуйся ими, если не хочешь стать инвали^W^W потерять разделы.

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1330
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: geom -> прямой доступ к девайсу...

Непрочитанное сообщение dekloper » 2009-09-02 17:41:19

Гость писал(а):да большой разницы нет как отстреливать себе ногу.
:-D

я вот не пойму, как происходит проверка буткода ебр в sys/geom/part/g_part.c
решить бы ещщо беду...

зы. приатно, шо не фсе "гости" - злые "пингвины"... :smile:
зы1. блин, жеом-великая штука... и пингвинячий лвм уж нарисовался..
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!