Диски Advanced Format, выравнивание разделов, dd

IDE, SATA, SCSI, внешние USB-HDD, SSD, USB-Flash накопители

Модератор: Модераторы разделов

QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Диски Advanced Format, выравнивание разделов, dd

Сообщение QWERTYASDF »

Подскажите пожалуйста. Хочу проверять ноутбучные hdd на размер физического сектора (4 Кб или 512 Б) при помощи dd. В начале дисков раздел с образом дистрибутива винды, который хочу сохранить. Т.е. надо отступить не меньше 8 Гб от начала.

Проверять например так:

Код: Выделить всё

# dd if=/dev/zero of=/dev/sdX seek=X bs=4096 count=51200
# dd if=/dev/zero of=/dev/sdX seek=X bs=4096 count=51200


Я правильно понимаю, что в данном случае при указание bs=4094, значение seek также будет равняться 4096? Просто из ман-а не очень поняла.

А насчет отступа, это мне надо отступить где-то около 2,5 Миллионов блоков, если хочу отойти от начала Гб на 10? Ну, 10000000000/4096. А дальше просто выбираем порядковый номер блока, кратный 8 и отличающийся от него допустим на единицу.

Извините, если что. Не очень хорошая идея писать сейчас на форум, когда с утра может сообразила бы и сама...
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Hephaestus »

QWERTYASDF писал(а):
05.06.2015 03:45
Проверять например так:
А что это Вы такое проверяете?

QWERTYASDF писал(а):
05.06.2015 03:45
Я правильно понимаю, что в данном случае при указание bs=4094, значение seek также будет равняться 4096?
seek - сколько блоков нужно пропустить в выходном файле. Сколько укажете, столько и будет. А размер блока Вы указали в bs.

QWERTYASDF писал(а):
05.06.2015 03:45
А насчет отступа, это мне надо отступить где-то около 2,5 Миллионов блоков, если хочу отойти от начала Гб на 10? Ну, 10000000000/4096. А дальше просто выбираем порядковый номер блока, кратный 8 и отличающийся от него допустим на единицу.
Вы бы поаккуратней с цифрами. Ошибетесь - затрёте что-нибудь нужное.

Вы скажите, что хотите проверить? А то способ какой-то не очень подходящий.

Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7274
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение alv »

А чем не нравися команда типа

Код: Выделить всё

# fdisk -l /dev/sdb

которая ответит что-то подобное:

Код: Выделить всё

Disk /dev/sdb: 111,8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

или

Код: Выделить всё

# fdisk -l /dev/sdf                                                                     [~]

Disk /dev/sdf: 2,7 TiB, 3000592977920 bytes, 732566645 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes

Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение yars »

alv
А разве не возможна ситуация, когда система считает диск с сектором в 4 кбайт диском с сектором в 512 байт?
Меня тоже метод проверки смущает. Что ожидается от команды?
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7274
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение alv »

yars писал(а):
05.06.2015 07:27
alv
А разве не возможна ситуация, когда система считает диск с сектором в 4 кбайт диском с сектором в 512 байт?

Хороший вопрос...
Вот пример:

Код: Выделить всё

$=> sudo fdisk -l /dev/sda                                      [~]
[sudo] password for alv:

Disk /dev/sda: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes

Тем не менее, fdisk всё же говорит, что в самом деле физический блок 4К
И реальная передача будет:

Код: Выделить всё

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

По крайней мере, я так интерпертирую. Впрочем, все примеры, кроме одного - SSD, а с ними ещё непонятней, чем с фирмварью HDD. Реально ведь на HDD физические блоки давно переменной величины - на одном конце бельше, на другом меньше. Это фирмварь продаёт их системе порционно...
yars писал(а):
05.06.2015 07:27
Меня тоже метод проверки смущает. Что ожидается от команды?

Ну, Hephaestus уже отметил, что от такой команды можно ожидать безвозвратного затирания данных.
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение QWERTYASDF »

Добрый день. Как пишут во многих местах, в т.ч. на этом форуме, fdisk не всегда показывает размер физического сектора истинно т.к. его просто не сообщает контроллер диска. Поэтому поднимаются темы проверки сего другими способами, среди которых скорость записи с разным смещением секторов. Если блок данных не попадает на физ-блок, то скорость снижается. Вот на этом форуме я и взяла приведенные выше строки, только там было смещение на 63 и 64 блока. Мне же надо не тронуть раздел с образом винды, все остальное на момент проверки можно стереть. Побоялась, что при нужном значении bs значение seek будет все равно 512 и образ виды потрется.

В мане вот насчет seek написано, что пропускает число блоков, указанное в obs. Про bs написано, что ого перекрывает значения ibs и obs, однако не эквивалентно заданию в оных одинаковых значений. Вот и сомневаюсь.
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение s.xbatob »

QWERTYASDF писал(а):
05.06.2015 11:59
Добрый день. Как пишут во многих местах, в т.ч. на этом форуме, fdisk не всегда показывает размер физического сектора истинно т.к. его просто не сообщает контроллер диска. Поэтому поднимаются темы проверки сего другими способами, среди которых скорость записи с разным смещением секторов. Если блок данных не попадает на физ-блок, то скорость снижается. Вот на этом форуме я и взяла приведенные выше строки, только там было смещение на 63 и 64 блока. Мне же надо не тронуть раздел с образом винды, все остальное на момент проверки можно стереть. Побоялась, что при нужном значении bs значение skip будет все равно 512 и образ виды потрется.Добрый день. Как пишут во многих местах, в т.ч. на этом форуме, fdisk не всегда показывает размер физического сектора истинно т.к. его просто не сообщает контроллер диска. Поэтому поднимаются темы проверки сего другими способами, среди которых скорость записи с разным смещением секторов. Если блок данных не попадает на физ-блок, то скорость снижается. Вот на этом форуме я и взяла приведенные выше строки, только там было смещение на 63 и 64 блока. Мне же надо не тронуть раздел с образом винды, все остальное на момент проверки можно стереть. Побоялась, что при нужном значении bs значение seek будет все равно 512 и образ виды потрется.

Как на диске размещена информация, действительно, знает только он сам. (по секрету - диск организован сильно не так, как он об этом говорит) Только на поведении системы и, в частности dd, это никак не влияет: интерфейс i/o всё равно байт-ориентированный, от конструкции дисков не зависит и позволяет позиционироваться в любое место и обмениваться записями произвольной длины, как и в случае обычных файлов. В старые времена, когда диски были большими по размеру, капризными и тупыми, было два интерфейса и один из них - raw - действительно был с ограничениями. Но это давно в прошлом.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Bizdelnick »

QWERTYASDF писал(а):
05.06.2015 11:59
Как пишут во многих местах, в т.ч. на этом форуме, fdisk не всегда показывает размер физического сектора истинно т.к. его просто не сообщает контроллер диска. Поэтому поднимаются темы проверки сего другими способами

IMHO самый простой и надёжный способ — посмотреть документацию производителя.
Кстати, помимо fdisk ту же информацию показывает smartctl:

Shell

% sudo smartctl -i /dev/sda smartctl 6.4 2014-10-07 r4002 [x86_64-linux-3.16.0-4-amd64] (local build) Copyright © 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Seagate Barracuda 7200.14 (AF) Device Model: ST500DM002-1BD142 Serial Number: Z2AGGH41 LU WWN Device Id: 5 000c50 03f534634 Firmware Version: KC45 User Capacity: 500 107 862 016 bytes [500 GB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 7200 rpm Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS T13/1699-D revision 4 SATA Version is: SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s) Local Time is: Fri Jun 5 12:39:12 2015 MSK SMART support is: Available - device has SMART capability. SMART support is: Enabled %



s.xbatob писал(а):
05.06.2015 12:32
на поведении системы и, в частности dd, это никак не влияет

На поведение системы не влияет, а на скорость этого поведения влияет.
Хотя при разметке можно просто считать, что размер блока любого диска — 4K, и исходить из этого. Практически все современные инструменты разметки так и делают (а то и вовсе помегабайтно разделы выравнивают).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение QWERTYASDF »

Ребята, а подскажите пожалуйста - как мне с помощью hexdump (ну или другого средства, доступного с initrd в установочном диске слакваря) посмотреть содержимое произвольного диапазона секторов на диске? Хочу сначала попрактиковаться с dd, позаписывать например фразу hello куда-нибудь, а потом посмотреть верно ли по тому адресу она попала.

Оу, пардон, опции -s и -n. Если есть, что добавить - рада буду почитать )
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение s.xbatob »

QWERTYASDF писал(а):
05.06.2015 13:39
Ребята, а подскажите пожалуйста - как мне с помощью hexdump (ну или другого средства, доступного с initrd в установочном диске слакваря) посмотреть содержимое произвольного диапазона секторов на диске? Хочу сначала попрактиковаться с dd, позаписывать например фразу hello куда-нибудь, а потом посмотреть верно ли по тому адресу она попала.

Вы бы лучше попрактиковались на обычных файлах. Это куда безопаснее, а поведение файлов дисковых устройств от обычных ничем не отличается (ну, практически ничем)
Вообще, с исчезновением магнитных лент, перфокарт и raw devices в целом пользы от dd сильно убавилось. Только копирование кусков данных
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Hephaestus »

QWERTYASDF писал(а):
05.06.2015 13:39
Хочу сначала попрактиковаться с dd, позаписывать например фразу hello куда-нибудь
Обозначьте, пожалуйста, конечную цель Ваших экспериментов.
Если речь идёт о разметке диска под lvm и установку ОС, то здесь dd вообще ни при чём.
dd - инструмент побайтового копирования. И в силу своих возможностей способен гарантированно затереть всё.
Поэтому всё-таки, будьте аккуратней, и используйте для экспериментов простые файлы, а не файлы дисковых устройств. Последствия могут быть непоправимыми.

А для разметки dd вообще не нужен. Штатные инструменты разметки Вам всё сделают по высшему разряду.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение QWERTYASDF »

Конечная цель, преследуемая созданием данной темы - это точно проверить, что "физический" (более низкоуровневый) размер секторов жд на моих ноутах именно 512 байт или что он 4096 байт. Афаик, надеяться на информацию от прошивки диска не стоит. При этом мне надо не затереть виндо-раздел вначале диска, все остальное можно затереть.

Тут говорят, что dd страшная команда, могущая затереть что не надо. Так вот я и спрашиваю - все ли я правильно расчитала и прикинула с параметрами? Если нужны еще каки-нибудь исходные данные - попробую предоставить.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Bizdelnick »

Писать будет, отступив на seek×bs байт (точнее seek×obs, но в данном случае obs==bs).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение yars »

QWERTYASDF
Покажите текущую разметку тогда.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение NickLion »

А почему не создать раздел и писать не в /dev/sdX, а в /dev/sdXN?
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Hephaestus »

QWERTYASDF писал(а):
05.06.2015 15:11
Конечная цель, преследуемая созданием данной темы - это точно проверить, что "физический" (более низкоуровневый) размер секторов жд на моих ноутах именно 512 байт или что он 4096 байт.

Я не очень понимаю, как Вам dd в этом поможет, но если уж так нужно, пишите в простой файл, а не в файл дискового устройства. По крайней мере, ничего не испортите. С точки зрения операции записи будет всё идентично.

QWERTYASDF писал(а):
05.06.2015 15:11
Тут говорят, что dd страшная команда, могущая затереть что не надо.
Правильно говорят. Это опасный инструмент в неумелых руках. Достаточно перепутать букву дискового устройства - и всё. Затёрли совсем не тот носитель, который собирались.

QWERTYASDF писал(а):
05.06.2015 15:11
Так вот я и спрашиваю - все ли я правильно расчитала и прикинула с параметрами? Если нужны еще каки-нибудь исходные данные - попробую предоставить.
Так Вы же ничего не рассчитали.
Формулировка "где-то около 2.5 миллионов блоков"
Это разве расчет?
Подумаешь, на полмиллиона больше, на полмиллиона меньше... Пустяки, правда?
А если ещё учесть, что между 512 и 4096 разница в восемь раз, то вообще караул.
Если хотите протестировать операции записи - пишите в файлы.
А если хотите прибить всё, кроме виндового раздела - используйте программы разметки. Они работают с учётом реального размера секторов, кстати.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Bizdelnick »

Hephaestus писал(а):
05.06.2015 16:15
А если ещё учесть, что между 512 и 4096 разница в восемь раз, то вообще караул.

Причём тут это? dd использует тот размер блока, который ему задали (или 512 байт по умолчанию).
Только я так и не понял, каким образом планируется с помощью dd узнать размер физического блока.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Hephaestus »

Bizdelnick писал(а):
05.06.2015 16:19
Причём тут это? dd использует тот размер блока, который ему задали (или 512 байт по умолчанию).
ТС хочет использовать seek, чтобы отступить от начала диска на некоторое количество блоков.
Задав bs=512 или bs=4096 разница будет в восемь раз при одинаковом значении seek.
Я отступаю, к примеру, на 1000 блоков по 512 каждый и думаю, что от этой точки и далее всё можно затереть, а на самом деле нужно было отступить на 1000 блоков по 4096 каждый. То есть я затираю совсем не тот участок, который было нужно.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение QWERTYASDF »

Hephaestus

Допустим, dd записывает нули из /dev/null в блоки жд с каким-то порядковыми номерами, которые можно указать. Если диск говорит, что его сектора по 512 байт, но физически они 4096 байт и при этом не использовать выравнивания по границе килобайтных секторов, то будут тормоза. Говорят, что средства разметки сейчас сами с усами. Но для диска WD (другого, не про которые речь в этой теме) при том, что он сам сообщал про свои 4 Кб сектора (512 логически/4096 физически, обмен по 512 байт), инсталлятор Дебиана создал разделы с номеров, не следующих сразу за числом, кратным 8 т.е. с выходом 512 логических секторов за границы физических 4096.

Почему я хочу таки так проверить это дело? Ведь можно при разметке просто вручную задать номера разделов по границам n*4 Кб. Ну вот раз уж занялась этим вопросом, то теперь хочется его до чего то толкового довести, и самой разобраться.

Насчет претензий к моему расчету. Ну есть у меня от начала диска 8 Гб, которые нельзя трогать. Ну выбираю я 2.5. млн*4096~10 Гб. Чего тут крамольного при том, что все остальное кроме этих 8 Гб не жалко? Чем Вам такой расчет не нравится? ) Насчет своих страхов писала - мне тут ответили, что опция bs будет точно равна и опции seek. Насчет возможности спутать 512 и 4096 или букву диска - ну как бы подразумевается, что такого не будет.
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение s.xbatob »

QWERTYASDF писал(а):
05.06.2015 15:11
Конечная цель, преследуемая созданием данной темы - это точно проверить, что "физический" (более низкоуровневый) размер секторов жд на моих ноутах именно 512 байт или что он 4096 байт. Афаик, надеяться на информацию от прошивки диска не стоит. При этом мне надо не затереть виндо-раздел вначале диска, все остальное можно затереть.

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

Вы пошли по совсем неправильному пути. Вообще "физический размер блока" вам не скажет ни один дисковый контроллер. Максимум, что вы узнаете - это размер блока в интерфейсе SATA, и то не с помощью утилит, использующих исключительно read(), write() и lseek()
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Bizdelnick »

QWERTYASDF писал(а):
05.06.2015 17:45
Допустим, dd записывает нули из /dev/null в блоки жд с каким-то порядковыми номерами, которые можно указать. Если диск говорит, что его сектора по 512 байт, но физически они 4096 байт и при этом не использовать выравнивания по границе килобайтных секторов, то будут тормоза.

Не будет тормозов. Точнее они будут только для первого физического блока, который будет сначала считан, потом перезаписан с заменой его хвоста, и для последнего, который перезапишется с заменой начала. Остальные блоки в любом случае перезаписываются полностью, и скорость этого процесса от опций dd не зависит.
Да, кстати, не из /dev/null, а из /dev/zero.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Hephaestus »

QWERTYASDF писал(а):
05.06.2015 17:45
Почему я хочу таки так проверить это дело? Ведь можно при разметке просто вручную задать номера разделов по границам n*4 Кб. Ну вот раз уж занялась этим вопросом, то теперь хочется его до чего то толкового довести, и самой разобраться.
Ну допустим, выясните Вы, что логический размер сектора равен 512, а физический равен 4096 (хотя это и так видно), дальше-то что? Программа разметки всё равно будет работать по той логике, которая в ней заложена.
И даже если Вы затрёте всё "ненужное" пространство содержимым /dev/zero (то есть "нулями"), создавать раздел на этом пространстве всё равно нужно будет программой разметки, Вы без неё не обойдетесь.

QWERTYASDF писал(а):
05.06.2015 17:45
Насчет претензий к моему расчету. Ну есть у меня от начала диска 8 Гб, которые нельзя трогать. Ну выбираю я 2.5. млн*4096~10 Гб. Чего тут крамольного при том, что все остальное кроме этих 8 Гб не жалко?
Крамольного ничего нет, главное, чтобы Вы точно знали, что отступить 10Гб - достаточно, а то окажется, что нужно отступить не 10Гб а 10,3Гб. Тогда отступив 10Гб, Вы "зацепите" часть нужного раздела.

QWERTYASDF писал(а):
05.06.2015 17:45
Чем Вам такой расчет не нравится? )
Приблизительностью. Округления вида "около нескольких миллионов" или "около 10Гб" неприемлемы, когда речь идёт о возможной потере данных.

QWERTYASDF писал(а):
05.06.2015 17:45
Насчет своих страхов писала - мне тут ответили, что опция bs будет точно равна и опции seek.
Неправильно. bs - размер одного блока. seek - количество этих блоков. Равны они не будут, по крайней мере в Вашем случае.

QWERTYASDF писал(а):
05.06.2015 17:45
Насчет возможности спутать 512 и 4096 или букву диска - ну как бы подразумевается, что такого не будет.
Да не спутать. Поставить неверную букву диска - простая опечатка (у меня такое было, кстати).
А насчет 512 и 4096 я имел в виду, что мы не знаем, какой же там размер блока, ставим 512, а нужно было 4096.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение QWERTYASDF »

Bizdelnick писал(а):
05.06.2015 17:55
QWERTYASDF писал(а):
05.06.2015 17:45
Допустим, dd записывает нули из /dev/null в блоки жд с каким-то порядковыми номерами, которые можно указать. Если диск говорит, что его сектора по 512 байт, но физически они 4096 байт и при этом не использовать выравнивания по границе килобайтных секторов, то будут тормоза.

Не будет тормозов.


А здесь и здесь написано, что будет. И приведены строчки с dd дабы проверить что таки диск с 4096 секторами. Что я не правильно поняла?

yars писал(а):
05.06.2015 15:24
QWERTYASDF
Покажите текущую разметку тогда.


Пожалуйста, один из тех ноутов. /dev/sda1, весящий около 8 Гб - тот самый раздел с дистрибутивом винды, который надо сохранить. Т.е. опыты со скоростью надо производить где-то за пределами этих 8 Гб.

Код: Выделить всё

Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x330d1d4d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    16779263     8388608   27  Hidden NTFS WinRE
/dev/sda2   *    16781310   480303103   231760897    5  Extended
/dev/sda5        16781312    20981759     2100224   82  Linux swap / Solaris
/dev/sda6        20983808    83906559    31461376   83  Linux
/dev/sda7        83908608   136359935    26225664   83  Linux
/dev/sda8   *   136361984   136554495       96256   83  Linux
/dev/sda9       136556544   138508287      975872   82  Linux swap / Solaris
/dev/sda10      138510336   197101567    29295616   83  Linux
/dev/sda11      197103616   236163071    19529728   83  Linux
/dev/sda12      236165120   245927935     4881408   83  Linux
/dev/sda13      245929984   304521215    29295616   83  Linux
/dev/sda14      304523264   480303103    87889920   83  Linux
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Bizdelnick »

QWERTYASDF писал(а):
05.06.2015 19:39
Что я не правильно поняла?

Вы не учли, что у диска есть кеш, и пока дело дойдёт до сбрасывания его на пластину, dd в него успеет записать очень много своих блоков. А сбрасываться они будут все разом.
Тормоза проявляются на файловой системе, потому что данные записываются не последовательно, а в разных местах. Если на неправильно выровненной ФС записывается много файлов размером в один-два кластера (а кластер обычно как раз 4К), то для записи каждого из них придётся выполнить цикл чтение-запись вместо просто записи.

По ссылкам же несколько другое, но тоже довольно бессмысленное. По первой записывается файл блоками по ⅛ кластера или целыми кластерами; разумеется, второй вариант быстрее, но причина не в диске, а в файловой системе. Эта «проверка» абсолютно ничего не показывает. По второй dd используется для простого измерения скорости записи в файл (а не напрямую на диск). Непонятно, что таким образом можно измерить, потому что ФС даже не синкается.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение QWERTYASDF »

Почему здесь скорость 13 Мб/сек при размере передающихся блоков 512, а при 4096 - 121 Мб/сек? Если у диска кеш, который копит много байт, а потом их всех суммарным блоком последовательно записывает (я Вас так поняла, когда говорили про кеш)? Хотя вот здесь тоже идет копирование порциями, меньшими чем размер физ-блока, но скорость не страдает:

Код: Выделить всё

root@tazik001:~# dd if=/dev/zero of=/dev/sdb bs=128K count=20000
20000+0 записей считано
20000+0 записей написано
 скопировано 2621440000 байт (2,6 GB), 24,2364 c, 108 MB/c


Я так понимаю, что это можно объяснить тем, что кеш у диска в первом примере не работает?

Т.е. при записи через dd непосредственно на устройства /dev/sdx или /dev/sdxY - размер физического блока таки определяется в зависимости от работающего кеша? Если он работает - не увидешь отличия. Если не работает - увидешь? Правильно?

Итак, какой правильный/надежный метод определения размера блока, если предположить что прошивка не кажет его верно? Создается раздел с выравниванием и без выравнивания, наносится фс, тестируется скорость записи в файл, с включенной опцией синхронизации. Если в случае невыравненного раздела скорость записи ниже - значит ответ получен. Правильно?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Bizdelnick »

QWERTYASDF писал(а):
06.06.2015 03:28
Почему здесь скорость 13 Мб/сек при размере передающихся блоков 512, а при 4096 - 121 Мб/сек?

Интересный вопрос. Поэкспериментировал со своим диском, который с 512-байтными блоками, и получил такой же результат. Возможно, дело в специфике шины SATA или ещё каком-то промежуточном звене.
Spoiler

Shell

% sudo smartctl -i /dev/sda smartctl 6.4 2014-10-07 r4002 [x86_64-linux-3.16.0-4-amd64] (local build) Copyright © 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Western Digital Black Device Model: WDC WD1002FAEX-00Z3A0 Serial Number: WD-WCATR5838821 LU WWN Device Id: 5 0014ee 2058917c3 Firmware Version: 05.01D05 User Capacity: 1 000 204 886 016 bytes [1,00 TB] Sector Size: 512 bytes logical/physical Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS (minor revision not indicated) SATA Version is: SATA 2.6, 6.0 Gb/s Local Time is: Sat Jun 6 08:49:59 2015 MSK SMART support is: Available - device has SMART capability. SMART support is: Enabled % sudo dd if=/dev/zero of=/dev/sda4 bs=512 count=1048576 1048576+0 записей получено 1048576+0 записей отправлено скопировано 536870912 байт (537 MB), 31,6759 c, 16,9 MB/c % sudo dd if=/dev/zero of=/dev/sda4 bs=1024 count=524288 524288+0 записей получено 524288+0 записей отправлено скопировано 536870912 байт (537 MB), 30,1858 c, 17,8 MB/c % sudo dd if=/dev/zero of=/dev/sda4 bs=2048 count=262144 262144+0 записей получено 262144+0 записей отправлено скопировано 536870912 байт (537 MB), 30,4431 c, 17,6 MB/c % sudo dd if=/dev/zero of=/dev/sda4 bs=4096 count=131072 131072+0 записей получено 131072+0 записей отправлено скопировано 536870912 байт (537 MB), 7,8791 c, 68,1 MB/c % sudo dd if=/dev/zero of=/dev/sda4 bs=8192 count=65536 65536+0 записей получено 65536+0 записей отправлено скопировано 536870912 байт (537 MB), 7,74699 c, 69,3 MB/c


На случай, если SMART врёт, заглянул в спецификацию, там значится «Advanced Format (AF): Нет», то есть блок 512-байтный.

QWERTYASDF писал(а):
06.06.2015 03:28
Хотя вот здесь тоже идет копирование порциями, меньшими чем размер физ-блока, но скорость не страдает:

Где же меньшими-то, когда физ. блок или 0,5K, или 4K, а там разом по 128K пишется?

QWERTYASDF писал(а):
06.06.2015 03:28
Т.е. при записи через dd непосредственно на устройства /dev/sdx или /dev/sdxY - размер физического блока таки определяется в зависимости от работающего кеша? Если он работает - не увидешь отличия. Если не работает - увидешь? Правильно?

Кеш работает всегда.

QWERTYASDF писал(а):
06.06.2015 03:28
Итак, какой правильный/надежный метод определения размера блока, если предположить что прошивка не кажет его верно?

Я выше уже писал:
Bizdelnick писал(а):
05.06.2015 12:43
самый простой и надёжный способ — посмотреть документацию производителя.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Hephaestus »

Bizdelnick , а Вы действительно писали нули в файл дискового устройства? Специально создавали раздел?

У меня есть точно такой же винчестер.
Провёл похожий тест, два отличия:
1. Я писал в простой файл, перейдя на тестируемый диск (писать прямо в устройство я не могу, у меня данные там), создавать раздел... возиться неохота.
2. Порты на материнской плате у меня SATA3.
Не знаю, насколько это повлияло на результаты, но результаты у меня другие.
Spoiler

Shell

smartctl -i /dev/sdc smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.10.17] (local build) Copyright © 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net === START OF INFORMATION SECTION === Model Family: Western Digital Caviar Black Device Model: WDC WD1002FAEX-00Z3A0 Serial Number: WD-WCATR4875328 LU WWN Device Id: 5 0014ee 25aa2eb68 Firmware Version: 05.01D05 User Capacity: 1 000 204 886 016 bytes [1,00 TB] Sector Size: 512 bytes logical/physical Device is: In smartctl database [for details use: -P show] ATA Version is: 8 ATA Standard is: Exact ATA specification draft version not indicated Local Time is: Sat Jun 6 12:14:21 2015 SAMT SMART support is: Available - device has SMART capability. SMART support is: Enabled dd if=/dev/zero of=test bs=512 count=1048576 1048576+0 записей получено 1048576+0 записей отправлено скопировано 536870912 байт (537 MB), 7,03864 c, 76,3 MB/c dd if=/dev/zero of=test bs=1024 count=524288 524288+0 записей получено 524288+0 записей отправлено скопировано 536870912 байт (537 MB), 6,41198 c, 83,7 MB/c dd if=/dev/zero of=test bs=2048 count=262144 262144+0 записей получено 262144+0 записей отправлено скопировано 536870912 байт (537 MB), 5,92889 c, 90,6 MB/c dd if=/dev/zero of=test bs=4096 count=131072 131072+0 записей получено 131072+0 записей отправлено скопировано 536870912 байт (537 MB), 5,76957 c, 93,1 MB/c dd if=/dev/zero of=test bs=8192 count=65536 65536+0 записей получено 65536+0 записей отправлено скопировано 536870912 байт (537 MB), 5,80037 c, 92,6 MB/c

У Вас скорость от теста к тесту поднимается с ~17MB/c до ~70MB/c, у меня она примерно одинакова во всех тестах и в целом выше.

P.S. Да, раздел у меня с выравниванием.

Shell

# parted /dev/sdc align-check optimal 1 1 aligned

Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7274
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение alv »

QWERTYASDF писал(а):
06.06.2015 03:28
Итак, какой правильный/надежный метод определения размера блока, если предположить что прошивка не кажет его верно?

На самом деле только тот размер блока, который кажет прошивка, и имеет значение для системы: ибо одно из назначений прошивки - скрыть детали устройства железа. Ещё раз повторюсь - со времён незабвенных IBM'овский "дятлов" реальный размер блока на дисках переменный. Но этого не поймё не то что ни одна утилита разметки - ни один BIOS. И задача фирмвари - представить геометрию диска в виде, доступном их пониманию. А для SSD - что у него вообще есть "геометрия". То есть как прибор, имеющий форму дивана.
Bizdelnick писал(а):
05.06.2015 12:43
IMHO самый простой и надёжный способ — посмотреть документацию производителя.

Ни в какой общедоступной документации н одного производителя Вы не найдёте ничего о реальной геометрии диска - только о той, какую предоставляет прошика. Да это никому и не нужно.
А для SSD это ещё более имеет место. В своё время Тсо написал свою знаменитую статью о выравнии разделов на SSD, которая до сих пор попадает в топ выдачи поисковиков (привет всем, считающим Гошу и Яшу лекарями- целителями, знающими панацею от всего). И до сих пор его рекомендации повторяют. Забывая про то, что он написал её применительно к конкретной интеловской модели, параметры которой он знал точно - то ли от агентуры, по ли Intel тогда действительно это ещё публиковал.
Мне по сему поводу попалась почти тогда же шикарная фраза на оф. сайте Corsair'а по поводу соответствующих параметров их SSD. Сразу я еёю не записал для истории, но своими словами она звучала примерно так:
На этот счёт думает наш умный контроллер, а вы просто наслаждайтесь скоростью, и пусть вам не заботят этих глупостей.

Самое смешное, что это действительно так.
Кто не верит - читайте "Открытие себя" Владимира Савченко, там на эту тему здоров сказано, в диалоге профессора Андросиашвили и аспиранта Кривошеина.
Это, кстати, и об идее "открытого железа" Столлмана.
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение QWERTYASDF »

Где же меньшими-то, когда физ. блок или 0,5K, или 4K, а там разом по 128K пишется?


Ой... :rolleyes:

Т.е. насколько я поняла - имеем мы самый настоящий черный ящик (контроллер hdd/sdd), с которым вообще не скажешь (не попользовавшись) точно, какими по размеру блоками быстрее будет происходить запись. Однако с любым винчестером с логическими 512 блоками все-таки лучше выравнивать по условной границе 4096.

?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Диски Advanced Format, выравнивание разделов, dd

Сообщение Bizdelnick »

Hephaestus писал(а):
06.06.2015 11:26
Bizdelnick , а Вы действительно писали нули в файл дискового устройства? Специально создавали раздел?

Освободил ненужный.

Hephaestus писал(а):
06.06.2015 11:26
1. Я писал в простой файл, перейдя на тестируемый диск (писать прямо в устройство я не могу, у меня данные там), создавать раздел... возиться неохота.

Ну это вообще ни о чём.Тут же добавляется ещё и буфер файловой системы, из которого запись на собственно диск идёт, скорее всего, покластерно, то есть по 4096 байт (а может и больше) независимо от того, что вытворяет dd.


alv
О геометрии, разумеется, речи не идёт. Хоть блок и называют физическим, по сути это — наименьший дискретный объём данных, которым оперирует электроника диска.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить