Различный размер сектора на исходном диске и диске назначения что делать

Обновлено: 19.05.2024


> чтой-то вдруг нельзя ? на то и есть физическое форматирование

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


> разумеется, я о том контроллере, который стоит на борту
> винта

В каком именно месте изменять и есть ли работающий пример такого изменения ?

Int 13, AH = 5
Format Disk Track.

Начиная с байта с порядковым номером 12 в загрузочном секторе распологается Блок Параметров БИОС (BPB). Вот его структура:

type
BPB=record
SecSize:Word;//количество байт в секторе
.
остальные поля этой структуры не привожу.

>и есть ли работающий пример такого изменения?

Под Win32 немного сложновато, потому что обращение к сервисам 13int напрямую в отношении жестких дисков недопустимо. Но в MSDN есть пример работы с HD под Win32, но он к сожалению на С++.


> А вот под DOS, если честно, изменял сектора но на дискете

Так на дискете и я изменял :)

Для не-дискет это имеет смысл ?

А необязательно использовать коды IOCTL_FORMAT_TRACK и IOCTL_FORMAT_TRACK_EX. Главное при работе с DeviceIoControl обратиться к 13int, а остальное уже дело только Ваших рук и головы. Господа я ещё забыл о том, что для работы с 13int можно использовать и драйвер виртуального устройства (vxd).

Э. DeviceIoControl вообще-то не обращается к int13.


> Изменить размер сектора - можно. Однозначно. Под DOS легко,
> под Win32 сложноее, но МОЖНО.

Как же не обращается? В SDK заглянуть можно, и что мы там увидим:

"Windows 95 provides a VxD named VWIN32.VXD that supports a set of control codes that Win32-based applications can use to carry out selected MS-DOS system functions. These system-defined control codes consist of the following values.

ниже идёт код из SDK поэтому не обижайтесь что на С++ :)
hDevice = CreateFile("\\\\.\\vwin32",0, 0, NULL, 0, FILE_FLAG_DELETE_ON_CLOSE, NULL);

fResult = DeviceIoControl(hDevice, 4,&reg,sizeof(reg), &reg, sizeof(reg), &cb, 0); //здесь код 4 и есть код обращения к 13int

Обращается не только к 13 прерыванию, но и к 21, 25 и 26.

>А ссылку на примерчик можно?


> Ну, ссылку честно признаться не видел :(
> Но. могу тебе написать код, ты его почитаешь, откомпилишь,
> и сам проверишь. Идёт?

Ты меня извини, но Алексу Коншину я склонен доверять больше.

Если он говорит, что это для работает только для гибких дисков, в чем меня и собственный опыт убеждает, то скорее всего, экпериментировать с винчестером смысла не имеет.
Или, действительно, стоит посмотреть исходники для Unix - диски-то одни и те же.

Как то в форуме был вопрос о том как читать сектора жесткого диска. Я там распинался что читать сектора жесткого диска под Win32 можно и с помощью 13int, на что Алекс мне заметил, что это невозможно. Сначала я ему не поверил, но когда сам попытался прочитать сектор на жестком - получил нефиговую ошибку.
Но. недавно (где-то неделю назад), или в Knowledge Base или в MSDN, нашёл код который читает сектора жесткого диска с помощью 13int. Так что и Алекс Коншин иногда ошибается.

А теперь по теме обсуждения.
Во-первых, определимся, изменяем размер сектора под DOS или под Win32?

Во-вторых, согласны ли вы с тем, что мы обращаемся к прерыванию BIOS, а ему всё равно какой размер у сектора.

А какая разница ? Речь идет о работе с железом в данном случае, а ему по барабану, в какой операционной системе с ним работают.


> Во-вторых, согласны ли вы с тем, что мы обращаемся к прерыванию
> BIOS, а ему всё равно какой размер у сектора.

Речь идет о том, все равно ли самому контроллеру диска или нет.
Если ему все равно, тогда размер сектора можно изменить, вне зависимости от BIOS, операционной системы, и т.д. Если не все равно, тогда изменить размер не удастся ни в BIOS, ни в DOS, ни в Win32.


> В-третьих, если кто-нибудь читал книгу Фаронова В. В. "Turbo
> Pascal. Практика программирования", то наверняка встретил
> фразу о том, что изменение размера сектора возможно.

На дискете - возможно.


> Как то в форуме был вопрос о том как читать сектора жесткого
> диска

>Речь идет о работе с железом в данном случае, а ему по барабану, в какой операционной системе с ним работают.

То понятно, только вот мне из под DOS легче обратиться к 13int чем из под NT :)

>Интересно в Линуксе 1024 блоки (сектора) это физическое или логическое понятие?

Да, кстати, а чё за сектора у NTFS? А то я если честно с ней не знаком.

>Ну вы почитайте документ-то.

Когда диск отформатирован под NTFS, то 13int не работает. Почему?

>В Линухе размер сектора логическое понятие.То есть файловая система использует именно этот размер, а физический - все равно останется 512 байт.

Интересно, зачем это системе логический сектор, если есть кластер?

И ещё. Вот цитата из книги Фаронова В. В.: "С физической точки зрения все секторы одинаковы - как уже говорилось, их емкость в MS-DOS всегда равна 512 байтам".


> если есть кластер?

Кластер есть логическое понятие. Сектор есть физическое понятие.


> Думаю автор не просто так вставил "MS-DOS", как думаете?

С моим знанием английского такие документы читать рановато наверное :), но почитав абзацы 4.21 - 4.23, я встретил такие понятия как "Long Physical Sector" и "Long Logical Sector". Даже с моим знанием английского понятно что это понятия разные, и Physical - есть физический, а Logical - есть логический сектор.

Следовательно физический размер сектора может быть нестандартным (512 байт). но не утверждаю, а предполагаю.

"Теперь Вы знаете, что на жестком диске имеются цилиндры, головки и сектора. Все эти параметры для каждого жесткого диска есть в BIOS. Вы знаете также, что размер сектора жесткого диска не фиксирован, как это было раньше.

Извинте конечно, я не специалист в этом вопросе, но во всех книгах которыя я читал, кластер - "логическое" понятие. Для дисковода нет такого понятия как кластер. Дисковод работает с цилиндрами, головками, дорожками, секторами, но не с кластерами.

Итак, размер сектора может быть больше 512 байт. А как же его такого-этакого изменить программными средствами? Я почему-то склонен думать что нельзя, но. "что скажет стая?"


> Как раз-таки дисковод IMHO работает именно с кластерами,
> точнее с тем, что в Windows называется кластером.

Секторы - аппаратно адресуемые блоки носителя.
Кластеры - адресуемые блоки, используемые многими файловыми системами. Размер кластера всегда кратен размеру сектора. файловая система использует кластеры для более эффективного управления дисковым пространством: кластеры, размер которых превышает размер сектора, позволяют разбить диск на блоки меньшей длины - управлять такими блоками легче, чем секторами.

Соломон, Руссинович: "Внутреннее устройство Windows 2000", глава "Файловые системы".

Так что в Windows кластер - это логическое понятие файловой системы.

Соломон, Руссинович: "Внутреннее устройство Windows 2000", глава "Файловые системы".

Так что в Windows кластер - это логическое понятие файловой системы.

Так вот судя по документу "длинные сектора" это несколько секторов по 512 объединенных в одну физическую запись, в одном из вариантов даже с одной контрольной суммой на все сектора. То есть, если бы я был разработчиком Windows, так я бы эти самые кластеры реализовывал именно как "длинные сектора", а иначе какой из них толк?

1. с секторами, адресуются доржка, головка, сектор (эмулируется, а на старых винчестерах и гибких дисках физически)
2. родной, абсолютные адреса (LBA)

И еще по размерам секторов, наиболее распространены три размера

128 байт, в основном в рам дисках

512 байт, исторически сложилось так у ИБМ, хотя стандартные контролеры поддерживают 128, 256, 512 и 1024 (не могу сказать про современные винчестеры, хотя там говорить о реальном размере сектора и количестве дорожек можно только гадая) и это не относится к остальным не родным файловым системам.

>Интересно, зачем это системе логический сектор, если есть кластер?

Я увидел в примере про Long Sectors вариант с 524-байтными секторами и фразы:

"The purpose of the long logical sector feature set is to allow additional data words per sector for server
applications. Sectors with 520 or 528 bytes are typical."

"Devices that implement the Long Logical Sector Feature set are not backward compatible with applications
that use 256 word logical sectors, e.g. desktop and laptop system."

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

"Я хотел помочь людям!" (цитата из мультфилма "Прометей")

Мы немного отклонились от темы. У кого-нибудь есть идеи (в виде строк кода) как изменить размер сектора? Или мы ещё рассуждаем можно его изменить или нет?


> И, собственно, зачем? Может есть более простое решение?

Да наверное к любому устройству обращаются через порты, но я не о том. Мы как будем обращаться, с помощью ассемблеровских in-out, или через DeviceIOControl?

>И все равно не ясно, как Windows отнесется к такому сектору, если она его случайно найдет.

Почему же не ясно? Она будет считать его сбойным.

>И какой именно размер сектора тебе нужен? О чем хоть разговор?
>И, собственно, зачем? Может есть более простое решение?

Да ну почему не попишешь? Можно и под NT писать и читать порты, просто делается это немного сложнее, чем обычные in-out.

>Вот и вопрос: чего хотим и зачем?

Да ну блин, ну почему не попишешь. Можно. И в Win9X, и в WinNT.

>А уж возиться в выходом в 0 кольцо и т.п. хакерские выходки - извольте сами.

Во-первых выход в 0 кольцо не нужен наверное, а во-вторых - я бы назвал это не "хакерские выходки", а низкоуровневое программирование.

>Дык, а кому это нужно?

>В порты контроллера IDE?

Я разве сказал в порты контроллера IDE? Я читал и писал в порты в NT, но с портами контроллера IDE не работал. Но логика подсказывает, что если можно писать в порт по адресу $0070, то можно писать и в порт с другим адресом.

То есть, насколько я понимаю, тебе важен именно процесс обсуждения, а не результат ?

>И какая разница в данном случае, IDE или SCSI?

В регистры IDE под NT ты точно не попишешь. По крайне мере без хакерских штучек.

Если не интересно, зачем надо было в форум заходить? Сказать: "Я не могу, значит и вы не сумеете."?

Для большинства программистов, которые используют Дельфи, почему-то вопросы низкоуровневого программирования кажутся какими-то запретными. В форумах не обсуждать! С БИОСом работать нельзя, с диском напрямую - ни-ни! А если один программист напишет программу на Дельфи, которая читает Linux-разделы, то проэто никто как-будто и не слышал. Дальше WinAPI не пускают! "Не ходите дети в Африку гулять" (с) :)

>Тут Алекс Коншин спрашивал: а зачем ?

Сегодня мы продолжим знакомство с замечательной бесплатной программой Clonezilla live, с помощью которой можно не только чрезвычайно просто и быстро создавать резервные копии носителей, но и осуществлять перенос системы на новый диск путем непосредственного клонирования разделов жесткого диска.

В последнее время твердотельные накопители становятся все более и более популярными и, следовательно, задача переноса системы с HDD на SSD является весьма актуальной.

В прошлый раз мы уже вплотную подошли к переносу системы на SSD с помощью программы Clonezilla live. Данная публикация будет полностью посвящена этой теме.

Перенос системы на навый диск в Clonezilla live

Естественно, все изложенное в статье абсолютно применимо и к решению задачи переноса системы на новый HDD. В общем случае перенос системы на новый механический накопитель будет проще, по сравнению с ее переносом на твердотельный накопитель SSD, так как не потребует выполнения ряда подготовительных и завершающих операций.

Как и в прошлый раз зададим для примера исходные данные, характерные для переноса Windows 7 / Windows 8:

Исходный HDD имеет объем 250 ГБ и разделен на три раздела:

  1. Системный том — “Зарезервировано системой”, NTFS, 100 МБ (Windows 7) – 350 МБ (Windows 8);
  2. Загрузочный том С:\ – основные файлы операционной системы + профили пользователей, NTFS, 125 ГБ;
  3. Дополнительный том (буква любая) – раздел в оставшейся части накопителя, 125 ГБ.

В силу стоимостных характеристик твердотельных накопителей меньший объем целевого SSD, по сравнению с исходным HDD, является сегодня главной особенностью переноса системы.

Подготовка операционной системы к переносу на SSD

Коротко перечислим мероприятиям, которые необходимо сделать до переноса системы.

Проверка режима работы контроллера жестких дисков

Речь идет о режиме работы контроллеров жестких дисков AHCI (Advanced Host Controller Interface). Вопросы, почему режим AHCI важен для правильной работы SSD накопителей и как его включить в Windows 7, подробно рассматривались в этой статье.

Высвобождение свободного места на диске

Если размер переносимого системного тома не превышает объем целевого SSD (или HDD), то данный пункт можно пропустить. Однако при этом нужно помнить, что для эффективной работы SSD на нем желательно иметь не менее 30% свободного места.

Если загрузочный раздел (C:) заполнен “под завязку”, то в силу того, что при подготовке к клонированию нам предстоит уменьшить его размер, предварительно нужно выполнить действия по освобождению дискового пространства. Они были подробно описаны в этой статье.

Отключение спящего режима

Хибернейт (Hibernate mode) или спящий режим не актуален для систем, установленных на твердотельные накопители. Кроме того, он будет способствовать сокращению ресурса работы SSD из-за объемных операций записи при каждом переводе компьютера в спящий режим. Поэтому хибернейт имеет смысл отключить.

Для этого в «Командной строке», запущенной с правами администратора («Запуск от имени администратора» в контекстном меню по клику правой кнопкой мыши) набираем команду:

powercfg.exe -h off

После выполнения команды отключения режима хибернейт удалится файл Hiberfil.sys, что позволит дополнительно высвободить несколько гигабайт пространства на накопителе.

Перенос системных разделов на твердотельный накопитель SSD в Clonezilla live

В предыдущих статьях, посвященных программе, было отмечено, что Clonezilla не умеет на ходу менять размер томов. Однако это не является препятствием для ее успешного применения в тех случаях, когда это необходимо сделать. В этом мы сейчас и убедимся.

По условиям задачи суммарный размер системных томов исходного HDD (100 МБ + 125 ГБ) явно превышает объем целевого SSD (100 ГБ). Для того, чтобы операцию переноса системы можно было осуществить, нужно предварительно уменьшить размер одного из разделов, в нашем случае, второго.

Изменение (уменьшение) размеров разделов исходного диска

Так как в данном случае мы будем уменьшать размер тома, то вначале нужно выполнить дефрагментацию жесткого диска.

Это можно сделать в графическом интерфейсе («Компьютер» –> «Свойства» нужного диска –> вкладка «Сервис» –> «Выполнить дефрагментацию» –> «Дефрагментация диска»).

Или в «Командной строке», запущенной от имени администратора, командой:

Уменьшить размер раздела на диске можно различными способами.

  • Изменение размеров разделов в графическом интерфейсе Windows 7 / 8

В Windows 7 и Windows 8 проще всего добиться заданной цели воспользовавшись графической утилитой «Расширенное управление дисками» («Управление компьютером» –> «Управление дисками»).

В прошлый раз мы уже пользовались этой утилитой с целью увеличения размера раздела до максимально возможного.

disk-partitions-125-125

Так выглядит исходный набор томов жесткого диска.

Выделяем нужный раздел (C:) и в контекстном меню по клику правой кнопкой мыши или в меню «Действие» –> «Все задачи» выбираем: «Сжать том». Запустится опрос тома с целью вычисления доступного для высвобождения места.

Наша задача сжать (C:) на столько, чтобы два первых тома гарантированно поместились на целевом накопителе.

partition-resize-90gb

Выберем новый размер тома равным, например, 90 ГБ. Нажимаем «Сжать» и дожидаемся завершения процесса.

  • Изменение размеров разделов в командной строке Windows с помощью Diskpart

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

sel disk 0 Выбираем диск c номером “0”. Если накопителей в компьютере установлено несколько, то выбрать, естественно, необходимо нужный.

Рассчитаем в мегабайтах на сколько нужно сжать том, чтобы его объем стал равным 90 ГБ: (125 –90) * 1024 = 35840 МБ

Сжатие раздела в Windows diskpart

Иллюстрация к описанным выше командам diskpart для сжатия раздела.

  • Изменение размеров разделов в среде Linux с помощью GParted

Для работы с дисковыми томами в среде Linux существует программа GParted. О ней мы поговорим чуть ниже.

disk-partitions-90-125

Так выглядит набор томов после сжатия C:.

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

Для тех, кто переносит систему на SSD на ноутбуке, нужно будет подключить внешний носитель для создания с помощью Clonezilla live образа диска. Как это сделать подробно описано в первой статье.

Инсталляция твердотельного накопителя в компьютер

Выключаем компьютер и устанавливаем новый SSD. В настольном компьютере для этого потребуется, как минимум, SATA шлейф, как максимум, бокс для установки и соответствующие винты. Если кит для монтажа накопителя не входит в комплектацию SSD, то об этом нужно позаботиться заранее.

В ноутбуке устанавливаем SSD на место HDD.

Справка. Некоторое время назад в продаже появились переходники, которые позволяют устанавливать второй жесткий диск в ноутбук вместо DVD привода.

Подготовка целевого SSD

Несмотря на то, что мы будем клонировать диск, для того, чтобы Clonezilla смогла выполнить нужные нам операции и разобраться с тем, что от нее хотят на самом деле, необходимо предварительно создать нужные тома на целевом накопителе. (В этом состоит главное отличие от клонирования диска на диск равного или большего размера).

  • Создание разделов в графическом интерфейсе Windows 7 / 8

Для этого вновь запускаем в Windows 7 или Windows 8 «Расширенное управление дисками». (Для наглядности я описываю действия последовательно, на самом деле операции подготовки исходного и целевого накопителей можно выполнить за один раз).

После старта консоли появится окно с предложением инициализировать диск:

Инициализация нового диска в Windows

Соглашаемся с вариантом, предложенным по умолчанию.

Выбираем новый диск, имеющий статус “Не распределен” и из меню “Действие” или в контекстном меню по правой кнопке мыши выбираем “Создать простой том”:

Мастер создания простых томов в Windows

Задаем размер первого тома нового диска в мегабайтах. В данном случае это будет системный раздел Windows 7 “Зарезервировано системой”.

Буквы можно не назначать, они нам не нужны. Форматировать разделы не нужно.

Далее аналогичным образом создаем на целевом накопителе “Диск 1” все необходимые тома. В результате должно получиться примерно так:

new-disk-partitions-SSD-100

После создания томов на “Диск 1” нужно через контекстное меню (правая кнопка мыши) или меню “Действие” пометить первый раздел как активный.

  • Создание разделов в командной строке Windows с помощью Diskpart

В командной строке для создания томов в среде Windows можно воспользоваться утилитой Diskpart:

Для создания разделов в среде Linux существует достаточно мощная программа GParted.

Те, кто не имеют установленной системы Linux, могут, тем не менее, воспользоваться GParted с Live CD Parted Magic, о котором упоминалось в первой публикации темы. Эта программа может оказаться незаменимой если, например, нужно задать правильное смещение для уже существующих разделов без их переноса на другой носитель.

Работу по созданию томов в GParted нужно начать с создания таблицы разделов на новом диске:

Создание таблицы разделов в GParted

Далее через меню “Раздел” создаем необходимые тома:

Создание раздела в GParted

Начальное смещение первого раздела по умолчанию будет автоматически установлено в 1 МБ, что абсолютно правильно.

Аналогичным образом создаем все необходимые тома и нажимаем “Применить”. Дожидаемся завершения операций.

В “Управление флагами” устанавливаем для первого раздела флаг “boot” и выходим из программы.

Теперь можно приступить непосредственно к процессу клонирования исходного накопителя в результате которого операционная система будет перенесена на новый диск.

Перенос системы на новый диск путем частичного клонирования жесткого диска

Внимательный читатель в этом месте наверняка должен испытать некоторое удивление. Действительно, до сих пор неоднократно упоминалось о том, что Clonezilla не умеет клонировать больший накопитель на меньший. Это как раз наш случай. О каком клонировании диска тогда может идти речь?

Дело в том, что замечательная программа Clonezilla, не смотря на то, что полное клонирование накопителя в этом случае невозможно, будет последовательно переносить разделы до тех пор, пока они будут помещаться на новом диске. Соответственно в нашем случае будут благополучно перенесены два нужных нам тома.

После установки твердотельного накопителя загружаем компьютер с USB-флеш или CD с Clonezilla live.

О том откуда скачать программу Clonezilla и как сделать загрузочный носитель подробно рассказывалось в первой публикации.

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

Коротко и без лишних иллюстраций перечислим порядок действий:

Запускается процесс клонирования разделов жесткого диска за ходом которого можно наблюдать. Последовательно будут клонированы первый и второй, третьего тома на целевом накопителе программа не обнаружит, выдаст об этом предупреждение и остановится:

Clonezilla-warning-sdb3

Все правильно. Два раза нажимаем “Enter” и на появившемся экране выбираем: “poweroff Выключить питание”.

Выключаем компьютер. Удаляем (отключаем) исходный HDD и загружаем компьютер с нового клонированного SSD.

При первом старте Windows запустит проверку целостности дисков. Нужно позволить ей это сделать. После завершения проверки система запустится в обычном режиме.

Выборочное клонирование разделов жесткого диска

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

Шаги 1 – 6 никаких отличий не имеют.

Выбор варианта клонирования локальный раздел на локальный раздел в Clonezilla

7.

Выбираем: “part_to_local_part клонировать локальный раздел на локальный раздел”

8. Выберите исходный локальный раздел

Выбор исходного раздела в Clonezilla

9. Выберите целевой локальный раздел

Выбор целевого раздела в Clonezilla-localpart-destination

Выбираем соответствующий раздел на целевом накопителе и запускаем, аналогично рассмотренному ранее, процесс клонирования.

10. Choose mode. После того, как клонирование раздела будет завершено появится экран выбора дальнейших действий. Если необходимо клонировать еще один раздел, то нужно выбрать: “rerun1 Start over” и повторить все операции в отношении следующего тома.

Завершающие операции после переноса системы с HDD на SSD

После загрузки Windows 7 / Windows 8 c нового SSD, на который методом клонирования была перенесена система, имеет смысл сразу повторно запустить определение “Индекса производительности Windows”. После его определения система “сообразит”, что теперь она работает на твердотельном накопителе и отключит ряд ненужных и даже вредных для SSD опций.

В первую очередь к ним относится плановая дефрагментация диска.

Кроме того, Windows включит периодическое выполнение команды TRIM.

Достаточно подробно настройка Windows 7 для работы на SSD рассматривалась в этой статье. Большую часть из перечисленных в ней настроек, таких как, включение режима контроллера жестких дисков AHCI, отключение дефрагментации и выравнивание разделов мы уже сделали.

Хотелось бы отметить тот отрадный факт, что при использовании описанного способа переноса системы с HDD на SSD, не зависимо от того, как разделы были размечены на исходном накопителе, после клонирования они будут гарантированно иметь правильное начальное смещение.

Остается проверить и отключить Prefetch и Superfetch.

Желаю всем, кто только собирается заняться переносом системы на новый диск, успешной и приятной работы с Clonezilla live. И надеюсь, что те, кто уже “переехали” на SSD, расскажут о том, как и с помощью каких средств они это делали.

Что средства Windows, что сторонние программы для распределения места на диске и форматирования разделов по умолчанию настроены так, чтобы за нас оптимально решать вопрос, какого размера должен быть кластер выделенной части дискового пространства. Что такое кластер, что такое его размер, какой размер лучше выбрать в той или иной ситуации, как изменить размер кластера, в том числе без потери данных на разделе диска – во всех этих вопросах попробуем разобраться ниже.

1. Что такое кластер дискового пространства

Кластер – это логическая единица дискового пространства, минимальный его блок, выделяемый для записи файла. У жёстких дисков есть физическая единица дискового пространства – сектор. Сектора могут быть размером 512 или 4096 байт. Это предустановленный производителем жёсткого диска параметр, и он не может быть изменён программными средствами. Последние могут оперировать только логической единицей – кластером. И оперировать только в рамках возможностей выбранной файловой системы. К примеру, для NTFS размер кластера может быть установлен от 512 байт до 2 Мб (2048 Кб) .

Размер кластера, отличный от предлагаемого по умолчанию, мы можем выбрать при форматировании раздела средствами Windows.

Размер кластера

Windows 7 и 8.1 позволяют установить размер кластера максимум 64 Кб. В среде же Windows 10 можно выбрать больший размер – от 128 до 2018 Кб.

Размер единицы распределения

Размер кластера также можем выбрать по своему усмотрению при создании разделов в штатном управлении дисками. Создаём том (раздел) .

Управление дисками

Указываем размер тома.

Указание размера тома

Назначение буквы диска

И на этапе форматирования тома выбираем размер кластера.

Размер кластера диска

Завершение создания тома

Итак, кластер – это единичный блок для размещения файлов. Каждый файл записывается в новый кластер. Файл весом более размера кластера, соответственно, занимает несколько таковых. Чем меньше размер кластера, тем более эффективно будет расходоваться место на диске при условии, что на нём преимущественно хранятся мелкие файлы до 512, 1024, 2048 байт и т.д. Тогда как при кластере большего размера дисковое пространство будет менее эффективно занято данными с малым весом. Но вопрос об эффективности не будет стоять при условии хранения на диске данных с весом от 64 Кб или иного выбранного размера. При этом ещё и получаем незначительный прирост производительности в скорости чтения и записи HDD в условиях фрагментации. При большем размере кластера фрагментированный файл делится на меньшее количество частей, что уменьшает число смещений считывающей головки HDD .

2. Насколько значителен прирост производительности при большем размере кластера

Рассчитывать на какой-то весомый прирост производительности HDD даже при максимально возможном размере кластера не стоит. Сам по себе механизм работы HDD имеет массу условностей, и гораздо больше толку в этом плане будет от регулярной процедуры дефрагментации. Прирост в скорости работы с данными будет исчисляться секундами, а то и вовсе миллисекундами. Тем не менее и за них, возможно, стоит побороться при формировании разделов для хранения файлов с весом, исчисляемым преимущественно в мегабайтах или вовсе в гигабайтах.

3. Какой размер кластера для каких целей лучше

Какой размер кластера лучше для системного раздела С ? Установочный процесс Windows, позволяющий прямо на этапе установки системы формировать разделы диска с нераспределённым пространством, не даёт нам возможности выбора размера кластера.

Он по умолчанию задаётся 4096 байт (4 Кб) . И является оптимальным выбором для системного раздела С, поскольку в состав системы и сторонних программ входит огромное множество мелковесных файлов. Изменять его не рекомендуется.

А вот с несистемными разделами можно поэкспериментировать. Но прежде необходимо оценить текущую ситуацию и узнать, какой размер кластера у раздела сейчас. Чтобы потом сделать выводы о приросте производительности.

4. Как узнать размер кластера

Существующий ныне размер кластера на нужном разделе диска отображают сторонние программы для работы с дисковым пространством. Но на скорую руку можно обойтись и без них, для этого нам понадобится всего лишь запущенная с правами админа командная строка.

В неё вводим команду по типу:

fsutil fsinfo ntfsinfo C:

Где вместо C в конце подставляем букву нужного раздела. И смотрим графу «Байт на кластер».

Байт на кластер

5. Как изменить размер кластера

Как упоминалось в первом пункте статьи, для изменения размера кластера необходимо либо отформатировать раздел, либо удалить его и создать заново. Хоть средствами Windows, хоть сторонним софтом для работы с дисками от Acronis, AOME, Paragon и т.п. Если на разделе имеются данные, их можно временно перенести на другой раздел, другое устройство информации или в облако на крайний случай. И это будет самый правильный вариант.

Изменение размера кластера раздела с имеющимися данными без их временного переноса в другое место – это потенциально рисковая операция. Рисковая операция – во-первых. Длительная по времени - во-вторых, поскольку в рамках её проведения осуществляется перезапись данных под новый размер кластера. В-третьих – такая операция предусматривается только сторонними менеджерами дисков, и обычно в рамках платных возможностей, если базовые функции в таких программах бесплатны. Как, например, в случае с MiniTool Partition Wizard.

5.1. MiniTool Partition Wizard

В любой из коммерческих редакций MiniTool Partition Wizard можем изменить размер кластера без форматирования и пересоздания раздела, с сохранностью данных. Кликаем в окне программы нужный раздел, выбираем функцию изменения кластера.

MiniTool Partition Wizard

Смотрим, какой у нас текущий размер. И в выпадающем списке выбираем новый. Затем жмём «Да».

Изменение размера кластера

Штатные средства Windows при задании размера кластера предусматривают выбор их показателей в байтах, килобайтах и в случае с Win10 в мегабайтах. Сторонние программы могут предусматривать выбор показателей в иной метрике – в секторах на кластер. Это число в степени двойки. Как ориентироваться? Просто делим на 2. Если хотим выбрать размер кластера, скажем, 64 Мб, указываем число 128. Если 32 Кб, выбираем число 64. Если 16 Кб32. И так далее по этому же принципу.

В главном окне MiniTool Partition Wizard применяем операцию и ожидаем её завершения.

Применяем операцию

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

5.2. Acronis Disk Director

Платный Acronis Disk Director, мастодонт на рынке ПО для оперирования дисковым пространством, также предусматривает возможность изменения размера кластера без потери данных. В окне программы выбираем нужный раздел, кликаем соответствующую операцию.

Acronis Disk Director

Смотрим, какой сейчас у раздела размер кластера. И из выпадающего перечня выбираем новый.

Новый размер кластера

Применяем операцию

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

Появление современных жестких дисков с секторами размером 4 KБ (вместо 512 байт) сделало проблему выравнивания разделов актуальной как для IT-специалистов, так и для обычных пользователей. Все дело в том, что несоответствие между физическим и логическим распределением данных может привести к резкому снижению производительности всей системы и сокращению срока службы оборудования.

Чтобы объяснить суть выравнивания разделов, проиллюстрируем размещение данных, хранящихся на обычном жестком диске:

image

На рисунке представлена упрощенная схема сегментации, где один раздел занимает все место на диске и все сектора. Раздел соотносится с первым сектором, начало раздела соответствует началу первого сектора. Однако это слишком упрощенная схема. Ведь раздел состоит из логических единиц/блоков. Рассмотрим то, как они связаны с секторами:

image

На рисунке показано, что одному кластеру соответствует два сектора. Это означает, что при считывании данных, например, небольшого текстового файла с одного кластера, устройство хранения считывает данные с двух секторов.
Обратите внимание: начало раздела соответствует началу первого сектора и все кластеры выровнены по секторам, следовательно, раздел является выровненным. Операции с данными выполняются на максимальной скорости.
Теперь рассмотрим причины несоответствия разделов секторам и следствия этого явления.

Как и почему несоответствие разделов и секторов замедляет работу жесткого диска?

Размер физических секторов современных жестких дисков (например, Western Digital) составляет 4096 байт, на физическом уровне происходит обработка блоков данных размером 4 KБ, однако для внешнего оборудования и программного обеспечения такие диски выглядят как “традиционные”, имеющие секторы по 512 байт. Это позволяет обеспечить совместимость с более ранними версиями ПО. В таких случаях добавляется еще один уровень – уровень совместимости.

image

На рисунке показаны три уровня распределения данных. Нижний уровень – это, собственно, жесткий диск и физические секторы по 4 КБ. Второй уровень – абстрактное представление в виде секторов размером 512 байт для внешних систем. А самый верхний уровень – действующая файловая система с кластерами размером 2 KБ, каждый из которых равен четырем абстрактным секторам и половине физического сектора. Таким образом, 1 кластер = 4 абстрактных сектора = ½ физического сектора.

Обратите внимание, что все три уровня выровнены относительно друг друга и начала диска. Таким образом, чтение или запись данных одного кластера реализуется с использованием четырех секторов по 512 байт и одного сектора размером 4KБ. Количество операций чтения-записи минимально; диск работает с максимальной производительностью.

Но ситуация меняется в худшую сторону, когда кластеры логического уровня смещаются относительно лежащих ниже слоев, как показано на этом рисунке:

image

Как видите, раздел смещен относительно начала диска на один сектор размером 512 байт. В результате несколько логических кластеров оказались связанными с двумя физическими секторами 4KБ (второй, четвертый и шестой), что привело к удвоению количества операций чтения-записи. В данном случае производительность системы снижается, так как для управления данными жесткий диск выполняет две операции в двух секторах вместо одной, как при правильном выравнивании разделов.

Каковы причины смещения? Все версии ОС Windows, предшествующие Vista, при создании кластеров тома ориентируются на секторы размером 512 байт и помещают начало раздела в соответствии с ними, а не с секторами 4 KБ как показано на предыдущем рисунке, где начало раздела сдвинуто на один сектор 512 байт.

Обычно раздел начинается с 63 сектора. 63 сектора – устоявшийся размер «цилиндра» диска и некоторые старые версии DOS или Windows требуют, чтобы раздел был выровнен относительно «цилиндра» для правильной адресации и доступа к секторам. Современные ОС не используют устаревшую схему адресации CHS (цилиндр/головка чтения/сектор). Но по ряду причин все версии Windows, предшествующие Vista, создают разделы по этому правилу.

Интересно, что разделы, выровненные по 63 секторам, по чисто математическим причинам не выравниваются по секторам 4 KБ.

image

Очевидно, что 63 сектора по 512 байт не соответствуют целому числу секторов 4 KБ. Таким образом, первый и все следующие за ним разделы диска будут расположены со смещением.

image

Что делает Paragon Alignment Tool?

В ближайшие дни компания Paragon Software представит утилиту Paragon Alignment Tool (PAT). По сути, она перемещает разделы на некоторое количество секторов по 512 байт, выравнивая тома. Например, для выравнивания раздела размером 63 сектора необходимо просто переместить его вперед на один сектор размером 512 байт.

image

Теперь начало раздела соответствует началу сектора 4KБ, и этот раздел, и все последующие располагаются правильно.

image

PAT смещает начало раздела на 2048 секторов по 512 байт от начала диска, что соответствует 1 МБ, а также прекрасно подходит для секторов 4 KБ.

Необходимость выравнивания разделов для SSD

Для твердотельных дисков SSD проблема неправильного расположения разделов еще более актуальна, чем для традиционных жестких дисков. Размер модулей памяти современных SSD составляет 4096 байт, что является аналогом секторов 4 KБ. Таким образом, все упомянутые ранее проблемы, связанные с выравниванием разделов, возникают и при использовании SSD.

Однако, кроме снижения скорости работы файловой системы, существует еще одна проблема, присущая исключительно SSD. Ячейки памяти твердотельных дисков быстрее выходят из строя при большом количестве операций записи. Таким образом, при неправильном расположении разделов на SSD снижается не только скорость работы системы, но и подвергается опасности сам твердотельный диск.

Выравнивание разделов с помощью PAT устраняет избыточные операции чтения/записи, что позволяет значительно увеличить скорость работы и продлить срок службы SSD.

Необходимость выравнивания разделов для SAN и RAID

Технология RAID позволяет объединить множество жестких дисков и других устройств хранения информации в один большой массив данных. Система воспринимает этот массив как одно большое устройство хранения, а данные распределяются по всем его ресурсам. Объем, по достижении которого данные перестают записываться на один диск массива и начинают записываться на другой, называется размером страйпа, который, в свою очередь, может быть самым разным ( 8 КБ, 16 КБ, 32 КБ или 64 КБ).

При использовании программных или аппаратных RAID производительность системы может уменьшиться, если начальное положение раздела не соответствует размеру страйпа. В этом случае увеличивается количество операций с данными на нескольких дисках RAID-массива.

Чтобы решить эту проблему PAT сдвигает разделы на 2048 секторов. Такое смещение подходит для большинства размеров страйпа. Работа с данными становятся быстрее за счет устранения избыточных операций.

Необходимость выравнивания разделов в виртуальных средах

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

image

На этом рисунке представлена конфигурация сервера VMware ESX \ Server \ vSphere, использующего хранилище RAID/SAN. Здесь разделы неправильно расположены сразу на двух уровнях, что ведет к серьезному снижению производительности. Например, чтобы считать данные с первого кластера, система должна считать три VMFS-блока и четыре RAID-блока (и еще больше страйпов).

В данный момент PAT не может перемещать сами тома VMFS, но может выравнивать разделы на виртуальных дисках.

image

При такой конфигурации все тома и разделы расположены правильно и общая скорость выполнения операций с данными увеличилась в два раза.

Как продлить жизнь старому жесткому диску

Любительский

Аватар пользователя

Содержание

Содержание

Жесткий диск является самым сложным механическим элементом наших компьютеров и ноутбуков. Ведь внутри него находится пакет из дисков, покрытых магнитным материалом и вращающихся с большой скоростью. А считывающие и записывающие информацию головки парят над дисками на расстоянии всего несколько нанометров. Поддерживается зазор между считывающей головкой и магнитным диском только за счет потока воздуха.

Что такое переназначенные сектора и почему они появляются?

Из-за особенностей конструкции, жесткий диск чрезвычайно уязвим к тряске, ударам и вибрации в рабочем состоянии. Достаточно один раз задеть ногой работающий компьютер так, чтобы он качнулся, или с грохотом поставить включенный ноутбук на стол и все — головка жесткого диска задевает поверхность «блина» и царапает его.

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


Жесткий диск постоянно производит самодиагностику, занося множество параметров работы в данные S.M.A.R.T. (система самодиагностики жесткого диска). И такие испорченные участки магнитной поверхности он помечает как «поврежденный сектор» или «bad block».

Но возникнуть поврежденные сектора могут не только из-за тряски и толчков диска, но и из-за постепенного износа и деградации механизмов жесткого диска, когда отслоившиеся частички магнитного слоя попадают между головкой и «блином», вызывая лавинообразное появление поврежденных секторов.

Усугубляет ситуацию слишком высокая или низкая температура жесткого диска, а также ее резкие перепады.

Вышеописанные поврежденные сектора являются физическими, то есть они присутствуют в виде повреждений магнитной поверхности. Но бывают и логические поврежденные сектора, которые появляются на диске в результате сбоя программного обеспечения, окисления контактов на плате, плохого электропитания или поврежденного кабеля передачи данных.


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

В параметрах S.M.A.R.T. увеличится значение Reallocated Sector Count — это количество переназначенных секторов. Также может увеличиваться значение Reallocated Event Count.Этот параметр напрямую связан с Reallocated Sector Count, но иногда его рост может происходить отдельно. Например, в случаях, когда жесткому диску удалось все-таки прочитать сбойный сектор.

Еще один важный параметр S.M.A.R.T., указывающий на здоровье диска, это Current Pending Sector Count. Это количество нестабильных секторов, которые то читаются, то нет.

Какими программами определить наличие переназначенных секторов?

Давайте рассмотрим программы, которыми удобно просматривать данные S.M.A.R.T. и следить за здоровьем своего жесткого диска.

Одна из самых популярных бесплатных программ — CrystalDiskInfo.

Программа очень удобна и проста, вам даже не обязательно вникать в подробности данных S.M.A.R.T..

Программа напишет состояние диска в виде большой кнопки «Техсостояние», которая будет иметь вид «Хорошо» и синий цвет, при проблемах с диском она изменит цвет на желтый и надпись на «Тревога».

Красный цвет кнопки и надпись «Тревога» говорит о критическом состоянии жесткого диска.


Вот, как пример, один из моих жестких дисков с переназначенными секторами.


Вывод данных по умолчанию идет в шестнадцатиричной системе, однако его можно перенастроить в десятичную.


Еще одна неплохая программа контроля жестких дисков — это условно-бесплатная HD Tune.

Это неплохая альтернатива CrystalDiskInfo, у которой более строгие критерии оценки здоровья жесткого диска.


Вот, как пример, тот же самый диск с переназначенными секторами, в HD Tune.


Как предотвратить появление переназначенных секторов и продлить жизнь жесткого диска

Первое и самое главное правило —никаких толчков и вибраций устройства во включенном состоянии!

Ставьте компьютер так, чтобы об него не задевали дети или домашние животные.

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


Второе правило — в идеале температура жесткого диска должна быть от 20 до 40 градусов. Очень желательно поставить напротив жесткого диска вентилятор в корпусе ПК.

При проветривании зимой, если компьютер стоит рядом с окном, температура жесткого диска может резко упасть, что крайне нежелательно. Отключайте компьютер перед проветриванием.

Сохранение важной информации

У каждого из нас на компьютерах есть информация, которая крайне ценна: семейный фото/видео альбом, какие-то работы, рисунки, тексты и т. д. Зачастую при отказе жесткого диска эта бесценная информация теряется навсегда.

Всегда дублируйте важную информацию на отдельный носитель: внешний жесткий диск, флешки, dvd-диски, облака.

Если же S.M.A.R.T. вашего жесткого диска показывает ошибки, то сохранение важной информации — это первоочередное, что вы должны сделать.


Исправление переназначенных секторов

Поможет нам в этом бесплатная утилита Victoria HDD/SSD. На сайте разработчиков можно скачать версию 5.27.

Программа имеет массу возможностей для диагностики жестких дисков, но обращаться с ней нужно крайне осторожно, понимая, что и зачем вы делаете. И, конечно, вся ценная информация на диске должна быть сохранена в другое место.

Для начала выберем диск в правой части окна программы.


Можно посмотреть атрибуты S.M.A.R.T.


Если нажать на кнопку «Тестирование», мы попадаем в окно проверки поверхности диска.


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

Сканируя диск, Victoria HDD/SSD помечает сектора цветами, меняющимися в зависимости от состояния сектора.

  • Серый цвет – сектор в идеальном или хорошем состоянии.
  • Зеленый цвет – время чтения сектора чуть больше, но не выходит за пределы нормы.
  • Оранжевый цвет – сектор читается очень плохо, кандидат в переназначенные сектора.
  • Красный цвет – сектор сильно поврежден, прочитать его не удается.
  • Синий цвет с крестом – сектор невозможно прочитать, и он вызывает сбои.


Перед запуском теста нужно выбрать один из четырех способов, которым Victoria HDD/SSD будет лечить сектора.


  • Игнор (Ignore) – Victoria HDD/SSD делает сканирование без восстановления секторов жесткого диска.
  • Починить (Remap) – замена плохих секторов жесткого диска секторами из резервной области.
  • Обновить (Refresh) – сканирование с попыткой восстановления плохих секторов программным методом.
  • Стереть (Erase) – Victoria HDD/SSD перезаписывает плохие сектора диска с помощью низкоуровневого форматирования. Этот метод стоит использовать только тогда, когда режимы «Починить» и «Обновить» не помогли восстановить жесткий диск.

Для лечения переназначенных секторов надо запустить тест поверхности в режиме «Починить». Если после него останутся поврежденные сектора, то запустить тест в режиме «Обновить». На больших по объему дисках тестирование может занять несколько часов.

Как использовать жесткий диск, если лечение не помогло

Не стоит питать особых надежд на исправление всех дефектов. Обычно диск так и остается с переназначенными секторами. Но это совсем не приговор. Каждый случай индивидуален и бывает, что диск с повреждениями работает еще очень долго.

К примеру, указанный выше диск с поврежденными секторами, мне отдали «на выброс» шесть лет назад, однако с хорошим обдувом и без вибраций переназначенные сектора перестали увеличиваться в количестве, и диск нормально работает.

Конечно, доверять важную информацию такому диску не стоит. Однако у нас на компьютерах достаточно временной, не слишком важной информации, которую можно хранить на таких дисках, как на дополнительных. Например, файл подкачки, сохраненные образы системы Windows, коллекция игр Steam, временные видео с видеорегистратора и так далее.

Как вариант, можно использовать такой диск как внешний для просмотра, например, видео и фильмов на телевизоре или для передачи информации знакомым. Такой диск не так жалко потерять или испортить окончательно, ведь его стоимость на вторичном рынке равна почти нулю, а надежность под сомнением. Однако как средство переноса и хранения не слишком важной информации он вполне может поработать.

Бывают внешние боксы как для обычных 3.5" дисков, так и для ноутбучных 2.5". Обязательно выбирайте бокс с интерфейсом USB 3.0 и выше.

Главное — помнить, что важную информацию обязательно надо дублировать, и тогда отказ жесткого диска вам будет не страшен. И если вы берете качественные жесткие диски с большим сроком гарантии и пользуетесь ими аккуратно, то переживать по поводу его выхода из строя в гарантийный период не стоит.

Читайте также: