Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » HDD #2 | страница 103
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 103 из 111
На страницу: Пред.  1, 2, 3 ... 102, 103, 104 ... 109, 110, 111  След.    Перейти:   Все страницы
Поиск в этой теме:
Железный канал: «HDD #2»
Dimaxx
 981 EGP


Рейтинг канала: 8(868)
Репутация: 204
Сообщения: 5745
Откуда: Северодвинск
Зарегистрирован: 26.06.2002
Diff :
И ни разу не терял информацию

Видимо везло. Нам постоянно в СЦ носят такие винты - дернули за хвост и все, не то что записанные файлы не читаются, а вообще раздел с ошибкой. При любой файловой операции считываются каталог, MFT и другие служебные данные ФС. Все они попадают в кэш. Исправляются в соответствии с выполненными операциями и снова в кэш. Так вот если ОСь не успела произвести запись этих данных на диск физически, то при выдергивании они будут потеряны (ошибка отложенной записи). Если на флэху с FAT32 можно записать и сразу выдернуть, то с NTFS таких экспериментов лучше не производить.
_________________
"Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс
    Добавлено: 21:41 06-01-2017   
AnrDaemon
 857 EGP


Модератор
Рейтинг канала: 8(784)
Репутация: 37
Сообщения: 12292

Зарегистрирован: 17.10.2004
КладенецЪ :
Я никого ни к чему не агитирую

Вот и не агитируй.
Лекций на два часа "структура записи информации на жесткий диск" устраивать не буду, просто ещё раз напомню про кеширование.
_________________
Люблю свободный полёт... :)

Последний раз редактировалось: AnrDaemon (21:42 08-01-2017), всего редактировалось 1 раз
    Добавлено: 21:41 08-01-2017   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
xabuV :
Вопрос, если диск отформатировать и заполнить файлами, а потом сделать из него внешник - проблем по идее не будет? Или лучше сначала сделать из него внешний диск, а потом уже форматировать\записывать?
По идее не должно проблем быть, но хочу уточнить на всякий случай.

Если "внешник" - это диск, подключенный через SATA-USB адаптер, то могут и проблемы возникнуть. Не факт, что обязательно возникнут, но могут.
Потому что когда диск подключается напрямую к SATA, то размер сектора на больших дисках определяется правильно (4 кб). А когда через адаптер - то сектор будет 512 байт ("режим совместимости", вместо 1 сектора по 4 кб видится 8 секторов по 512 байт).
Ну и, понятно, если ты разметишь диск как состоящий из секторов по 4 кб, а потом переткнешь в адаптер, и сектора станут определяться как 512-байтные - нихрена хорошего с диска уже не прочитается.
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 15:00 09-01-2017   
Dimaxx
 981 EGP


Рейтинг канала: 8(868)
Репутация: 204
Сообщения: 5745
Откуда: Северодвинск
Зарегистрирован: 26.06.2002
Grebomet :
нихрена хорошего с диска уже не прочитается

Режим совместимости для того и нужен, чтобы данные читались везде - что 4к, что 512. И неважно как, чем и где размечен винт.
_________________
"Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс
    Добавлено: 23:38 09-01-2017   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Dimaxx :
Режим совместимости для того и нужен, чтобы данные читались везде - что 4к, что 512.

Это в теории.
А на практике получается немножко по-другому.

Смотри: режим совместимости рапортует (точнее, подразумевает), что размер сектора - 512 байт. Все прекрасно, все работает. Но.

Никто не запрещает операционной системе запросить физический размер сектора и использовать его везде, где только можно. Для этого даже есть весомая причина: чтение-запись целых физических секторов быстрее, чем более мелких логических. Собственно, современные ОСи так и делают: если после опроса диска выясняется, что физический размер секторов - 4кб, то ОСь использует соответствующую адресацию. Например, в таблицах размещения разделов используются адреса не "совместимых" 512-байтных секторов, а физических - т.е. поделенных на 8.

Теперь - внимание: мы подключаем диск через USB-адаптер. Адаптер - не просто тоненькая прослойка между интерфейсами, там есть кое-какая логика. Например, некоторые адаптеры всегда рапортуют размеры как 512/512 - т.е. 512-байтные сектора. Соответственно, если не повезет и попадется именно такой адаптер - то ОС не будет использовать 4кб сектора и получится нехорошо.

Dimaxx :
И неважно как, чем и где размечен винт.

Как видим, на практике таки бывает и важно.
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 20:28 10-01-2017   
Dimaxx
 981 EGP


Рейтинг канала: 8(868)
Репутация: 204
Сообщения: 5745
Откуда: Северодвинск
Зарегистрирован: 26.06.2002
Grebomet :
Никто не запрещает операционной системе запросить физический размер сектора и использовать его везде, где только можно.

ОС по барабану размер сектора: низкий уровень - это прерогатива драйвера.

Grebomet :
в таблицах размещения разделов используются адреса не "совместимых" 512-байтных секторов

Эти секторы абсолютно совместимы. Это все равно, что кластер в ФС. 8 физических "старых" секторов и есть 1 кластер в 4Кб. Точно также и в винте на низком уровне в одном 4Кб секторе 8 "старых" 512-байтных. И информация оттуда никуда не делась. А винту пофигу как отдавать данные - старыми по 512 как запросят или 1 новым.

Grebomet :
ОС не будет использовать 4кб сектора и получится нехорошо

Еще раз - ОС по барабану физический размер сектора. Хоть мегабайт.

Grebomet :
Как видим, на практике таки бывает и важно.

2013 год - у них в те времена были проблемы с совместимостью. Нынешние не имеют такой проблемы. Если использовать старый USB-док для винтов более 2Тб, то он не может работать с таким объемом. И размер сектора тут не причем. Дело в объеме, а не в размере сектора.
_________________
"Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс
    Добавлено: 22:32 10-01-2017   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Dimaxx :
ОС по барабану размер сектора: низкий уровень - это прерогатива драйвера.

Хм.
А что, драйвер - уже не часть ОС? С каких пор?

Dimaxx :
Эти секторы абсолютно совместимы. Это все равно, что кластер в ФС.

Налицо некоторое недопонимание(2).

Видишь ли, адресация-то по диску идет именно в этих "кластерах". И записываются всяческие оффсеты в системных таблицах - тоже в этих "кластерах". И если таблицы записывались для секторов по 4 кб, а потом интерпретируются как для секторов по 512 байт - получается нескладушка и данные читаются с неправильных оффсетов.

Dimaxx :
Еще раз - ОС по барабану физический размер сектора. Хоть мегабайт.

Еще раз - ОС адресует диск именно по физическим секторам. Поэтому с чтением как таковым проблем нет, а вот с чтением из правильного сектора (т.е. адресацией данных на диске) - таки может быть.

Dimaxx :
2013 год - у них в те времена были проблемы с совместимостью.

Потому я и написал - проблемы могут быть.

"Те времена" - это всего 3 года назад, на минуточку. Ну ладно - 4. Да и не факт, что все выпускающиеся сейчас адаптеры безглючны: проблема возникает только при подключении к адаптеру диска, записанного при прямом подключении к SATA, а значит, для адаптеров, встроенных во всякие внешние HDD ошибка не вылезет никогда. Ну а если пользователь настолько суров, что разобрал корпус и поменял диск самостоятельно - это случай негарантийный и производитель глюки лечит не будет.
Так что ненулевой шанс нарваться на грабли имеется и сейчас.
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 16:48 11-01-2017   
Dimaxx
 981 EGP


Рейтинг канала: 8(868)
Репутация: 204
Сообщения: 5745
Откуда: Северодвинск
Зарегистрирован: 26.06.2002
Grebomet :
А что, драйвер - уже не часть ОС? С каких пор?

Самой ОС кухня драйвера по барабану. Драйверу дается читать данные - как он это будет делать, ОС не касается.

Grebomet :
Видишь ли, адресация-то по диску идет именно в этих "кластерах". И записываются всяческие оффсеты в системных таблицах - тоже в этих "кластерах". И если таблицы записывались для секторов по 4 кб, а потом интерпретируются как для секторов по 512 байт - получается нескладушка и данные читаются с неправильных оффсетов.

Уууу, налицо полное непонимание. Какие неправильные оффсеты? По новой адресации - кратность 1 сектору в 4Кб, по старому - кратность в 8 "старых" секторов. 1*4Кб=8*512байт. Если дана команда считать данные с сектора 4000, то абсолютное смещение будет (в режиме AF) в 4кб*4000=16000кб. По-старому, с учетом режима совместимости, будет 512байт*8*4000=16000кб. Арифметику вспомни... Режим совместимости обсчитывает контроллер винта. Винде же абсолютно по барабану как он это делает. Для винта запросы просто будут кратны 8. В новых сигейтах, к примеру, режим выравнивания выполняет уже сам контроллер, то бишь старое смещение в 63 сектора будет скорректировано в новый формат. И ни одна программа этого не заметит.

Grebomet :
Еще раз - ОС адресует диск именно по физическим секторам.

См. выше - все уже разжевано.
_________________
"Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс
    Добавлено: 20:15 11-01-2017   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Dimaxx :
Самой ОС кухня драйвера по барабану. Драйверу дается читать данные - как он это будет делать, ОС не касается.

И тем не менее - драйвер есть часть ОС.

Dimaxx :
Уууу, налицо полное непонимание. Какие неправильные оффсеты? По новой адресации - кратность 1 сектору в 4Кб, по старому - кратность в 8 "старых" секторов. 1*4Кб=8*512байт. Если дана команда считать данные с сектора 4000, то абсолютное смещение будет (в режиме AF) в 4кб*4000=16000кб. По-старому, с учетом режима совместимости, будет 512байт*8*4000=16000кб. Арифметику вспомни...

Ну что ж, давай вспомним арифметику.

Берем твой пример. Для определенности будем считать, что в секторе 4000 у нас насположен загрузочный сектор первого раздела диска.

Итак, следим за руками:
1. Диск подключен напрямую, физический сектор равен 4 кб:

- Создаем таблицу разделов. В ней указываем, что первый раздел - загрузочный, и начинается он с сектора 4000.
- Записываем эту таблицу на диск в сектор номер 0. Тут нам размер сектора по барабану, т.к. на что ноль ни умножай - все равно получится ноль.
- Записываем загрузочную запись на диск в сектор 4000. Поскольку драйвер знает, что физический сектор равен 4 кб, запись идет в логический сектор 4000 * 8 = 32000. Точнее - пишутся сразу 8 секторов, чтобы диску не пришлось делать трюк "прочитал данные - обновил часть - записал обратно". Команды "запиши сектор размером энцать кб" в спецификации ATA нет, и номер сектора в командах всегда указывается именно логический.

Теперь втыкаем наш диск в кривозадый старый адаптер, который всегда рабпортует размер сектора как 512 байт, и пытаемся прочитать первый раздел.

2. Диск подключен в режиме "физический сектор=512 байт".

- Читаем таблицу разделов. Тут никаких проблем нет, нулевой сектор прочитается прекрасно.
- Из таблицы разделов узнаём, что первый раздел расположен с сектора 4000.
- Читаем логический сектор 4000 * 1. Да, здесь мы не умножаем на 8. Следовательно, мы прочитаем содержимое логического сектора 4000 * 1 = (сюрприз!) 4000, а не 32000. К чему это приведет? Да ни к чему особенному: винда просто покажет диск как неразмеченное пространство объемом в 1/8 от реально созданного.

Возражения, замечания?
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.

Последний раз редактировалось: Grebomet (16:06 12-01-2017), всего редактировалось 1 раз
    Добавлено: 21:12 11-01-2017   
Dimaxx
 981 EGP


Рейтинг канала: 8(868)
Репутация: 204
Сообщения: 5745
Откуда: Северодвинск
Зарегистрирован: 26.06.2002
Grebomet :
И тем не менее - драйвер есть часть ОС.

Я это не отрицал.

Grebomet :
чтобы диску не пришлось делать трюк "прочитал данные - обновил часть - записал обратно"

Что за ересь? Винт умеет работать с 512-байтными секторами. Это не SSD, где обмен ведется страницами (по сути теми же секторами).

Grebomet :
Возражения, замечания?

[facepalm] Винт узнает от драйвера (драйвер кривозадого адаптера же не умеет работать с секторами не-512 байт), что обратились по старому 512-байтному варианту. Следовательно, номер сектора будет приведен самим контроллером к 4кб AF. И прочитает винт именно 16000, а не 4000.
_________________
"Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс
    Добавлено: 00:44 12-01-2017   
AnrDaemon
 857 EGP


Модератор
Рейтинг канала: 8(784)
Репутация: 37
Сообщения: 12292

Зарегистрирован: 17.10.2004
Grebomet :
Это в теории.

А на практике получается немножко по-другому.

Все современные диски рапортуют 512б/сектор.
То, что физически там сектор 4к, можно узнать, только если специально спросить.
_________________
Люблю свободный полёт... :)
    Добавлено: 07:34 12-01-2017   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Dimaxx :
Grebomet :
чтобы диску не пришлось делать трюк "прочитал данные - обновил часть - записал обратно"

Что за ересь? Винт умеет работать с 512-байтными секторами. Это не SSD, где обмен ведется страницами (по сути теми же секторами).

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

Это делается по очевидным причинам: мы меняем только часть данных в физическом секторе, но диск не может записать сектор "частично" - ему надо сначала прочитать старые данные, подправить их, а потом записать все обратно.

А вот когда диску дается команда записать сразу 8 секторов, контроллер в состоянии понять, что в физическом секторе перезаписываются все данные. Соответственно, старое содержимое уже не важно и его читать не требуется.

Dimaxx :
[facepalm] Винт узнает от драйвера (драйвер кривозадого адаптера же не умеет работать с секторами не-512 байт), что обратились по старому 512-байтному варианту. Следовательно, номер сектора будет приведен самим контроллером к 4кб AF. И прочитает винт именно 16000, а не 4000.

Вот именно, что facepalm.

Еще раз, прямо по пунктам:
1. Все команды чтения-записи секторов в стандарте ATA всегда (подчеркиваю - всегда) оперируют с логическими секторами. Размер логического сектора для жестких дисков - 512 байт, и рапортуется самим девайсом. Нельзя (подчеркиваю - нельзя) перевести диск в режим, когда ты запросишь чтение одного логического сектора, а в буфер запишется более 512 байт. Чтение/запись нескольких логических секторов производится специальными командами read multiple/write multiple (ну и есть еще вспомогательная команда set multiple mode, которая позволяет оптимизировать длинные операции чтения-записи за счет более редкого вызова прерываний).

2. Адресация секторов в командах ATA - всегда по номеру логического сектора. Нельзя (подчеркиваю - нельзя) перевести диск в режим, когда вместо номера логического сектора в командах указывается номер физического сектора.

3. Маппинг внутри контроллера происходит всегда. Когда мы говорим о том, что ОС (драйвер) работает с секторами размером 4к - это означает, что драйвер внутри себя делает свой собственный "зеркальный" маппинг логических секторов на физические.

Поэтому твои рассуждения о том, что диск якобы понимает, "что обратились по старому 512-байтному варианту" - тащемта фееричны.

AnrDaemon :
Все современные диски рапортуют 512б/сектор.
То, что физически там сектор 4к, можно узнать, только если специально спросить.

На самом деле не все, но не суть.

Речь о том, что когда диск подключен через адаптер, "специально спросить" может не сработать - адаптер не пропустит команду или подменит результат, возвращенный диском. Другое дело, что такие адаптеры надо еще поискать, но в природе они есть (у меня где-то валялся старенький).
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 15:25 12-01-2017   
SecondShadow
 365 EGP


Рейтинг канала: 6(372)
Репутация: -4
Сообщения: 1454 Заблокирован
Откуда: Бийск. Алтай.
Зарегистрирован: 09.02.2008
Вся последняя страница - ересь. Спорите не зная о чем.
Уже лет десять HDD плюют на команды ОС. Мало того, они плюют и на все прораммы, типа низким уровнем, пытающимся к ним подобраться.
Типа количество секторов, головок, всё это фуфло. Пока не подключишь к РС3000 - не узнать.
_________________
Склероз - классная болезнь, ничего не болит и новости каждый день.
    Добавлено: 20:07 12-01-2017   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
SecondShadow :
Уже лет десять HDD плюют на команды ОС.

На команды чтения-записи данных - тоже плюют? Гы-гы
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 21:26 12-01-2017   
Dimaxx
 981 EGP


Рейтинг канала: 8(868)
Репутация: 204
Сообщения: 5745
Откуда: Северодвинск
Зарегистрирован: 26.06.2002
Grebomet :
Поэтому твои рассуждения о том, что диск якобы понимает, "что обратились по старому 512-байтному варианту" - тащемта фееричны.

Феерично твое утверждение, что винт понятия не имеет в каком режиме ему работать. Имеет, иначе как он поймет, что надо включать режим совместимости или не использовать его? Скорее всего, это происходит в процессе подачи АТА-команды 0xEC.
_________________
"Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс
    Добавлено: 21:51 12-01-2017   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Dimaxx :
Имеет, иначе как он поймет, что надо включать режим совместимости или не использовать его?

Никак не поймет - потому что режим совместимости или включен постоянно, или его нет вообще (и тогда диск нативно работает с секторами размером 4 кб). Зависит это от фирмвари, залитой в контроллер, и командами не управляется.

Dimaxx :
Скорее всего, это происходит в процессе подачи АТА-команды 0xEC.

Как говорится - шит квесчен, берем спецификацию команд ATA, читаем:

 Многабукав на вражеском   (кликните здесь для просмотра)

7.12.2 Description
The IDENTIFY DEVICE command specifies that the device shall send a 512-byte block of data to the host. See
7.12.7 for a description of the return data.
Incomplete data may be returned by this command (see 7.12.7.2).
The IDENTIFY DEVICE data contains information regarding optional features and command support. If the host
issues a command that is indicated as not supported in the IDENTIFY DEVICE data, the device shall respond as
if an unsupported command has been received (see 7.1.9).


Краткое содержание: команда возвращает разнообразные параметры устройства. Изменить параметры через нее нельзя - следовательно, ни для каких переключений режимов она не предназначена.

Но! Именно эта команда используется, чтобы узнать размеры логического и физического сектора.

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

Читаем ее описание, и.... и-и-и-и... И? Где там хоть слово об установке режима совместимости? Включение-выключения всяческих фич - есть, но ни единого слова о режиме совместимости и размерах секторов.

А таки нету.

Потому что это не управляемая фича, а вшитая в фирмварь.
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 22:23 12-01-2017   
Dimaxx
 981 EGP


Рейтинг канала: 8(868)
Репутация: 204
Сообщения: 5745
Откуда: Северодвинск
Зарегистрирован: 26.06.2002
Grebomet :
Краткое содержание: команда возвращает разнообразные параметры устройства. Изменить параметры через нее нельзя - следовательно, ни для каких переключений режимов она не предназначена.

Опять рукалицо. Я не говорил менять там что-то, я говорил о том, что AF-винт попытается отдать идентификационный сектор целиком, 4кб. Драйвер же считает столько, сколько умеет и понимает. Если винт увидит, что забрали 512 байт - значит включаем совместимость. Если полностью - работаем в AF-режиме. Либо через GET MEDIA STATUS (0xDA).

Grebomet :
Но! Именно эта команда используется, чтобы узнать размеры логического и физического сектора.

Ага, а там ВСЕГДА 512 байт на сектор!! Тадам!!
_________________
"Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс

Последний раз редактировалось: Dimaxx (23:00 12-01-2017), всего редактировалось 2 раз(а)
    Добавлено: 22:56 12-01-2017   
AnrDaemon
 857 EGP


Модератор
Рейтинг канала: 8(784)
Репутация: 37
Сообщения: 12292

Зарегистрирован: 17.10.2004
Ну теперь-то всё? Выяснили? Я могу идти спать? Глаза слипаются...
_________________
Люблю свободный полёт... :)
    Добавлено: 03:14 13-01-2017   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Dimaxx :
Я не говорил менять там что-то, я говорил о том, что AF-винт попытается отдать идентификационный сектор целиком, 4кб.

Щито?
В спецификации - специально для - английским по белому написано, цитирую: "The IDENTIFY DEVICE command specifies that the device shall send a 512-byte block of data to the host".

Dimaxx :
Драйвер же считает столько, сколько умеет и понимает. Если винт увидит, что забрали 512 байт - значит включаем совместимость.


Ты издеваешься, что ли? Винт, ля, увидит. Прям неделя фантастики на ЕГе - странно, что в ЖК, а не КТ.

Между драйвером и винтом еще куча всяких буферов (DMA controller, например - знакомые буквы?). И эти буфера могут быть как пустыми, так и частично занятыми, что приведет к ожиданиям при приеме данных. Поэтому у диска нет никакой возможности узнать, сколько там драйвер реально прочитал. Все размеры выясняются заранее - на этапе опроса оборудования.

Dimaxx :
Grebomet :
Но! Именно эта команда используется, чтобы узнать размеры логического и физического сектора.

Ага, а там ВСЕГДА 512 байт на сектор!! Тадам!!

А там - ровно столько, сколько отрапортовал диск. Тадам! Улыбка

А контроллер диска может отдать:
1. 512/512 - диск обычного формата (не AF)
2. 512/4096 - диск формата AF, работающий в режиме эмуляции (512е)
3. 4096/4096 - внезапно, диск формата AF, работающий в режиме 4Kn (4K native).
И это, заметим, только для жестких дисков. А еще можно подключить, например, цедером - и тогда контроллер отдаст 2048/2048. А некоторые SSD - кстати - могут отдать как 512/512, так и 4096/4096 - причем у некоторых это дело конфигуряется.

Прикольно, да? Улыбка

Собственно, мы отвлеклись от темы.

Еще раз повторю, самую мякотку: если USB-адаптер блокирует или подменяет ответ диска о размере секторов, то возможны проблемы с чтением через такой адаптер дисков, размеченных и записанных напрямую через SATA. Если возражений по этому утверждению нет - то предлагаю на этом закончить прения.
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 16:07 13-01-2017   
Dimaxx
 981 EGP


Рейтинг канала: 8(868)
Репутация: 204
Сообщения: 5745
Откуда: Северодвинск
Зарегистрирован: 26.06.2002
AnrDaemon :
Ну теперь-то всё? Выяснили? Я могу идти спать?

Не-не-не! Сгоняй еще за попкорном. Мы подождем... Гы-гы

Grebomet :
В спецификации - специально для - английским по белому написано

Написано было ХРЕН знает сколько лет назад. Тогда об AF слыхом не слыхивали.

Grebomet :
Ты издеваешься, что ли? Винт, ля, увидит. Прям неделя фантастики на ЕГе - странно, что в ЖК, а не КТ.

А ты, видимо, писатель фирмварей для винтов, раз с такой уверенностью утверждаешь обратное?

Grebomet :
Поэтому у диска нет никакой возможности узнать, сколько там драйвер реально прочитал.

Я вижу, что ты вообще не в курсе как происходит чтение данных с винта непосредственно через порты.

Grebomet :
4096/4096 - внезапно, диск формата AF, работающий в режиме 4Kn (4K native).

Таких еще мало и они в основном в серверных моделях.
_________________
"Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс
    Добавлено: 21:39 13-01-2017   
Железный канал: «HDD #2»
На страницу: Пред.  1, 2, 3 ... 102, 103, 104 ... 109, 110, 111  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Помнится, паранидский Пегас кричал: брось сквош, брось. Ну я и выбросил: сам просил, царство ему небесное... (xmagnat)

  » HDD #2 | страница 103
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18