Не захотел добавлять диск.Spoiler:
Дело было в VirtualBox, svn3227. Сначала я копировал с CD на tmp файл размером 14 Мб и одновременно с этим копировал на tmp все файлы и папки с RD. После этого нельзя было зайти на tmp. Я его удалил, создал новый tmp и снова повторил копирование. Снова не заходит на tmp, я его удалил, но создать уже не получилось.
Вот, теперь можно говорить предметно. На скриншоте падение в коде драйвера из-за того, что ему передали указатель на буфер, выходящий за пределы выделенной памяти. Теоретически возможны два варианта: приложение вызывает функцию 70, передавая ему неправильный буфер или неправильный размер - так, что конец буфера выходит за границы памяти, выделенной приложению, - или код файловой системы в какой-то момент сходит с ума и читает из буфера всё подряд, выходя за его границы. При отсутствии дополнительной информации я склоняюсь к первому варианту.
Нет, ошибка 7 родом из тех времён, когда ещё не было динамически выделяемой памяти. Сейчас такие проверки невозможны, ошибка 7 никогда не возвращается.
Мусор в корневой папке был вызван ошибкой в коде форматирования FAT16 в драйвере tmpdisk, драйвер обнулял меньше, чем надо, в результате в корневую папку могло попасть всё, что ранее находилось в невыделенной памяти. При загрузке системы там, как правило, и были нули, но если добавлять/удалять диски много раз и что-нибудь делать в промежутке между удалением и добавлением, то появляется мусор. Я исправила ошибку в r3285.
SoUrcerer wrote:То есть в драйвере есть форматирование в FAT16, которое потенциально можно использовать для жестких? Хотеть!
Spoiler:По личному опыту скажу, что сделать форматер FAT/12/16/32 относительно несложно, но времязатратно. Наличие одной лишь поддержки FAT16 сделанной для частного случая не сильно облегчит ситуацию. Есть еще вопрос - можно выдавать обезьяне пользователю - гранату функцию позволяющую записывать в любой сектор любого диска. Даже если исключить наличие вирусов и злого умысла, всегда есть шанс, что пользователь угробит свой диск с уютной виндюшечкой, а мы сволочи такие будем все равно виноваты, хоть и предупреждали. Помнишь истории с CTR мониторами, да?
Именно по этой причине мы с Евнением Гречниковым мягко говоря разошлись во мнениях - я предлагал при отсутствии прав доступа включать такую функцию в специально скомпилированную версию ядра, а он желал прямо в trunk разместить.
Разумеется все вышесказанное исключительно мое субъективное оценочное суждение. Можно просто забить и делать как вздумается. Просто вспоминается еще моя первая работа на заводе, где мне велели прочитать подробную технику безопасности и пояснили что каждый пункт окроплен кровью пострадавших идиотов обоих полов.
З.Ы. Если посчитаете оффтопом - можете сносить мое сообщение.
Last edited by Mario_r4 on Wed Feb 27, 2013 5:43 pm, edited 2 times in total.
С целью большей практической целесообразности в менеджер нужно добавить отображение размеров созданных дисков, если такой функции нет в ядре, то нужно добавить.
З.Ы. Разумеется это моей субъективное мнение и авторы могу думать иначе.