LINUX.ORG.RU

как записать файл/информацию/байты в определённое место/сектора на диске?

 , , ,


0

1

и какие есть утилиты для этого?

как в https://qna.habr.com/q/1113952 описан вопрос в начале



Последнее исправление: anon39 (всего исправлений: 2)
Ответ на: комментарий от Avial

Но это не будет в определенные сектора.

В смысле? Диск - тоже файл, назначаешь его в качестве of. Ставишь bs равным размеру сектора. Сдвиг будет соответствовать номеру сектора.

Vidrele ★★★★
()
Ответ на: комментарий от Vidrele

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

Avial ★★★★★
()
Ответ на: комментарий от Avial

Я очень сомневаюсь, что на HDD (не SSD) без черепичной записи кому-то придет в голову наворачивать еще один уровень адресации, который не будет делать ничего полезного.

Vidrele ★★★★
()
Ответ на: комментарий от Vidrele

кому-то придет в голову наворачивать еще один уровень адресации

А она таки есть. Не в таких масштабах как на SSD где мапится вообще всё, но есть. Reallocated sector count именно об этом.

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer

На SSD мы имеем полноценную виртуальную адресацию, как в случае с виртуальной памятью. Логическая адресация на жестком диске логическая в том смысле, что абстрагируется от цилиндров, головок и секторов, но она такая же однозначная, как и CHS. Reallocated sectors - механизм избегания бэдов поверх нормальной однозначной адресации. То есть, если бэдов нет, всё должно записаться именно в указанный блок.

Тебе надо писать именно в бэды? Или ты знаешь что-то, чего не знаю я?

Vidrele ★★★★
()
Ответ на: комментарий от Vidrele

Тебе надо писать именно в бэды?

Как девелоперу - да нет конечно. Более того - я от дисков с bad sectors максимально быстро избавляюсь. А вот для RAID controllers - это стандартная практика: как только детектится bad он из redundancy поднимается и пишется обратно, тем самым триггеря remapping.

Или ты знаешь что-то, чего не знаю я?

Ну, что-то так точно знаю, но вряд ли это к HDD имеет отношение :) В обратную сторону тоже работает :)

А если серьёзно - всё правильно Вы говорите. Более того - если бы такой mapping появился он очень много чего поломал бы в плане перформанса, потому как все IO schedulers предполагают что чтение / запись соседних логических секторов не требуют seek.

bugfixer ★★★★★
()
Ответ на: комментарий от Rootlexx

это записывает со смешением относительно начала определённого файла и к тому-же увеличивает размер файла но для кого-то может сгодится

а как если я хочу без смешение? а просто записать в определённый адрес?

anon39
() автор топика
Ответ на: комментарий от anon39

наверно чтобы это сделать можно создать файл и изменить его начала и конец с fallocate и потом записать в него с помощью dd, но у меня он почему-то только увеличивает и по разному как-то, такая же проблема у чела в Динамическое выделение места под swap

anon39
() автор топика
Последнее исправление: anon39 (всего исправлений: 1)
Ответ на: комментарий от anon39

а как если я хочу без смешение? а просто записать в определённый адрес?

Адрес это и есть смещение. Например, чтобы записать нули в сектор 123 диска /dev/sdz с размером сектора 512 байтов:

dd if=/dev/zero of=/dev/sdz seek=123 bs=512 count=1

Обратите внимание, что секторы индексируются с нуля!

Но на вашем месте я бы с этим не баловался. Если вы не на 100% понимаете, что делаете, то угробить данные на диске — раз плюнуть.

Rootlexx ★★★★★
()
Последнее исправление: Rootlexx (всего исправлений: 1)
Ответ на: комментарий от Avial

Если это хард - не может. Т.е. может, но только при ремапе битых. А если ssd - тут ты вообще в принципе не имеешь над ним власти. Может быть, на каком нибудь стенде, в специальном отладочном режиме... но кому это надо?

kirill_rrr ★★★★★
()