2014-05-08 24 views
0

Я создаю настраиваемое ядро ​​Linux, которое должно иметь доступ к запоминающим устройствам cdrom и usb, но не к жестким дискам.Отключить поддержку жесткого диска Linux

Я попытался отключить CONFIG_BLK_DEV_SD, но я потерял поддержку массового хранения usb.

Как я могу это достичь? Если это невозможно, есть ли способ удалить узлы жесткого диска в/dev при запуске?

+0

В чем разница между подключением жесткого диска через USB или другим способом, например с IDE? –

+0

Я создаю живой компакт-диск, который дает вам изолированную систему: нет сети, нет локальных дисков (кроме cdrom, конечно). Но он должен иметь доступ к внешним USB-накопителям, которые являются scsi-дисками (/ dev/sd *). Идея состоит в том, чтобы не допустить, чтобы данные сеанса достигли сети, подключенной к сети. – fbbdev

ответ

1

Во-первых, вам нужно определить, что именно означает «жесткий диск».

Во-вторых, вам необходимо выразить приведенное выше определение как набор правил udev. Таким образом, узлы устройств для устройств, которые вам не нужны, даже не будут созданы в /dev/ в первую очередь.

Один хороший учебник для udev правил здесь:

http://www.reactivated.net/writing_udev_rules.html

Соответствующие Q/A: https://unix.stackexchange.com/questions/66897/what-is-the-udev-rule-to-allow-specific-thumb-drive-vendors

+0

Изменение правил UDEV не является очень комплексным решением, так как узлы устройств все еще могут создаваться вручную. –

+0

Чтобы создать узлы устройств вручную, необходимо иметь корневые эквивалентные разрешения, после чего пользователь может перекомпилировать ядро ​​и отредактировать правила udev по своему усмотрению. – oakad

0

Честно говоря, я удивлен вы даже удалось загрузочную систему с CONFIG_BLK_DEV_SD инвалидов: современный Ядра Linux вовлекают практически все входы/выходы хранения через уровень SCSI, а затем обрабатывают определенные типы (SATA, PATA, USB-накопители и т. Д.) В качестве разновидностей SCSI.

Я бы попробовал отключить вещи на следующем уровне вниз в системе: включить SCSI-диск и поддержку CD-ROM, а затем отключить все способы фактического общения с этими дисками: низкоуровневые SCSI-драйверы, поддержка ATA SFF, ACHI поддержка и т. д.

+0

Уровень блока устройств в Linux не эквивалентен уровню SCSI (в дальнейшем это зависит от первого). Множество устройств хранения данных не зависят от SCSI вместе (примерами являются различные устройства флэш-памяти, например, материал, поддерживаемый mtd, mmc/sd или даже Sony Memstick). – oakad

+0

@oakad, я знаю, но все обычные - даже большинство флэш-устройств передаются в систему как запоминающее USB-накопитель, в котором используется уровень SCSI. Это только флеш-устройства прямого доступа, которых нет. – Mark

Смежные вопросы