Эмулировать жесткий диск в Linux
Я разработал файловую систему на основе FUSE как часть исследовательского проекта, и теперь мне нужно изучить фактические запросы на чтение / запись, полученные жестким диском. В попытке сделать это, я смотрю на вариант создания виртуального жесткого диска в Linux, который будет перехватывать запросы, генерируемые файловой системой, и регистрировать их.
Есть ли в Интернете доступные ресурсы, которые могут помочь мне написать эмулятор и / или разработать набор навыков, необходимый для его написания? В настоящее время я читаю книгу "Драйверы устройств Linux 3", чтобы понять, как Linux управляет блочными устройствами.
Любая помощь приветствуется.
Спасибо
2 ответа
Посмотрите на драйвер отладки SCSI. Цитирование с сайта
Драйвер адаптера scsi_debug имитирует переменное количество дисков SCSI, каждый из которых использует общий объем ОЗУ, выделенный драйвером для использования в качестве (энергозависимого) хранилища.
Если бы это был я, я бы включил ведение журнала отладки, уже присутствующего в этом драйвере, а затем улучшил бы его в соответствии с вашими потребностями.
Ну, есть способ смонтировать файл образа как раздел:
mount -t <fs type> -o loop file.img /mnt
замените его типом файловой системы, файл file.img должен быть образом нужного раздела.
Еще один способ: вы можете установить virtualbox, установить linux на виртуальную машину, добавить новый виртуальный жесткий диск и изнутри виртуальной машины отформатировать виртуальный жесткий диск с нужной файловой системой и использовать его. Преимущество этого подхода заключается в том, что он обеспечивает безопасную изолированную программную среду, чтобы вы случайно не повредили существующую систему во время экспериментов.