Cвятая простота о жестких дисках, или знакомимся ближе со своим винчестером

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


0. Введение
1. Почему fdisk круче, или разбираемся с пропавшими гигабайтами
2. Что такое S.M.A.R.T. или повод потроллить автора за очевидность.
3. У Вас есть "Бэды"? Не беда.
4. Заткнем жесткий диск вместе с hdparm.
5. Вместо заключения - пара советов Капитана Очевидность.


Цель статьи: рассказать немного о средствах сбора информации и диагностики жестких дисков в Linux с помощью консольных инструментов.
Для начала, я так же рекомендовал бы вам ознакомится, хотя бы кратко, с устройством жесткого диска. К счастью все уже давно описано во всезнающей wikipedia.

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

0. Введение

Некоторое время назад я занимался тестированием и диагностикой поддержанной компьютерной техники, и за несколько лет у меня сложилась более или менее четкое представление об основных неисправностях и неполадках домашних компьютеров и ноутбуков. Согласно моим наблюдениям, большинство неисправностей возникает либо с материнской платой, либо с блоком питания, очень часто бывает, что некачественный блок питания постепенно убивает материнскую плату, впрочем тема этой статьи немного другая... Конкретных цифр я приводить не буду, но думаю 2/3 поломок случается именно с ними.Тем не менее жесткие диски заслуживают куда большее к себе внимание, ведь им пользователь доверяет все свое самое дорогое - личные фотографии и видеозаписи, курсовые и дипломные, результаты собственных изысканий в "фотошопе" и "3DMax", ну или личный видое архив с немецким ... В организациях ценными данными будут базы 1С и всяческие отчеты со статистикой за последние несколько лет к примеру. Короче есть большое количество информации, потерять которую нельзя ни в коем случае.

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

1.Почему fdisk все еще торт.

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

Для ее использования нам понядобятся права суперпользователя. Просмотрим общую информацию:


$ sudo fdisk -l



Вывод будет страшен:

Disk /dev/sda: 320.1 GB, 320072933376 bytes
189 heads, 35 sectors/track, 94503 cylinders, всего 625142448 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf7d4aaef

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda3            2048   266706943   133352448    f  W95 расшир. (LBA)
/dev/sda5            4096    86251519    43123712   83  Linux
/dev/sda6        86253568    95291391     4518912   82  Linux своп / Solaris
/dev/sda7        95293440   266706943    85706752   83  Linux


Как видно, в моей системе присутстсвует один жесткий диск с маркетинговой емкостью в 320 Гб. Почему маркетинговая? Да потому что в целях увеличения продаж, маркетологи производителей решили, что 1 коммерческий килобайт равент 1000 байтам, а не 1024, как у всего другого человечества. В результате покупая новенький хард с большой надписью на ценнике в 1 террабайт мы так и не увидим на нем заявленной емкости, потому что любая операционная система как раз умеет считать только с правильным размеров килабайта.

В результате фактическая емкость моего диска равна:

320072933376/1000x1024x1024=305.24534GiB


А если мы сюда убавим еще и ту часть, которая обычно резервируется в linux под root, то останется и того меньше.

И точно, вот что нам выведет еще одна команда, пропущенная пока через grep(мы еще вернемся к этой программе чуть позже):

$ sudo hdparm -I /dev/sda | grep "device size"
	device size with M = 1024*1024:      305245 MBytes
	device size with M = 1000*1000:      320072 MBytes (320 GB)



На основе вывода fdisk можно сказать:

У меня один жесткий диск, на нем находится один расширенный раздел раздел(/dev/sda3), внутри которого находится три логических: собственно /dev/sda5 - корневой раздел, /dev/sda6 - раздел подкачки, /dev/sda7 - является местом, которое монтируется под домашние каталоги пользователей. Ничего особо необычного в данном способе разметки нет, разве что раньше у меня еще стояла MeGoo (с ней ноутбук шел в комплекте), но я от нее отказался, и перераспределил пространство под Gentoo, не замарачиваясь особо с разметкой диска заново. Именно поэтому здесь у расширенного раздела нет флага boot, хотя система грузится отлично.

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

Самое простое, что приходит на ум, это использование утилиты df(тут я нагло вру, ибо первым на ум приходит /etc/fstab):

$ df -h
Файловая система	  Размер  Использовано  Дост  Использовано%  Cмонтировано в
rootfs              41G          17G   23G           43% /
/dev/root           41G          17G   23G           43% /
rc-svcdir          1,0M          76K  948K            8% /lib64/rc/init.d
udev                10M         300K  9,8M            3% /dev
shm                937M            0  937M            0% /dev/shm
/dev/sda7           81G          19G   58G           25% /home


Нас интересует опять же две строчки, который начинаются с /dev/root и c /dev/sda7, ведь по ним уже можно судить, что и куда монтируется. Помимо этого мы можем видеть, насколько забиты жесткие диски "качественным и нужным" контентом. Добавим сюда вывод еще двух команд:

$ cat /etc/fstab
# 						/dev/sda5		/		ext4		noatime		0 1
/dev/sda6		none		swap		sw		0 0
/dev/sda7		/home		ext4		noatime		0 2
/dev/cdrom		/mnt/cdrom	auto		noauto,user	0 0
#/dev/fd0		/mnt/floppy	auto		noauto		0 0
proc 			/proc		proc		defaults	0 0
shm			/dev/shm	tmpfs		nodev,nosuid,noexec	0 0


$ cat /etc/mtab 
rootfs / rootfs rw 0 0
/dev/root / ext4 rw,noatime,commit=0 0 0
proc /proc proc rw,relatime 0 0
rc-svcdir /lib64/rc/init.d tmpfs rw,nosuid,nodev,noexec,relatime,size=1024k,mode=755 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,nosuid,nodev,noexec,relatime 0 0
udev /dev tmpfs rw,nosuid,relatime,size=10240k,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
shm /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/dev/sda7 /home ext4 rw,noatime,commit=0 0 0
usbfs /proc/bus/usb usbfs rw,noexec,nosuid,devmode=0664,devgid=85 0 0
nfsd /proc/fs/nfsd nfsd rw,noexec,nosuid,nodev 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,noexec,nosuid,nodev 0 0


Для тех, кто в танке, первая выводит содержимое файла /etc/fstab, о котором наверно не слышал только тот, кто запустил LiveCD Ubuntu и впервые в жизни увидел Linux. Вторая команда показывает, какие файловые системы примонтированые сейчас и по ней тоже можно узнать небольшой минимум, правда информация эта не постоянна, и меняется по мере добавления и удаления устройств в реальном времени. Теперь мы можем более или менее четко составить представление о дисковой подсистеме компьютера, особенно если нам пришлось увидеть эту тачку впервые, по приглашению хорошенькой {однокурсницы | одноклассницы | подруги по детскому саду} - нужное подчеркнуть ;)

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

$ sudo file -s /dev/sda5
/dev/sda5: Linux rev 1.0 ext4 filesystem data, UUID=ce401e95-fb64-4026-a353-c73889be1805 (needs journal recovery) (extents) (large files) (huge files)

$ sudo file -s /dev/sda7
 /dev/sda7: Linux rev 1.0 ext4 filesystem data, UUID=c6f7decc-09c9-4813-853f-1f897f86a7ad (needs journal recovery) (extents) (large files) (huge files)




Как видно из вывода, на обоих разделах у меня используется ext4. Так же мы получили UUID - уникальный идентификатор раздела, который затем можно прописать в fstsb, дабы не возникало никаких проблем при жанглировании несколькими жесткими дисками в системном блоке, но это тема для отдельной статьи.

$ sudo blkid
/dev/sda1: UUID="f82c4092-522f-4f1f-9496-63ba962464ad" TYPE="ext4"
/dev/sda2: UUID="b519fae8-8c1d-4397-92bf-41ca608c931f" TYPE="ext4"




Ну и так, на последок, вот еще один способ получить немного информации о разделах на жестком диске:


$ sudo parted
GNU Parted 3.0
Используется /dev/sda
Добро пожаловать в GNU Parted! Наберите 'help' для просмотра списка команд.




Вы можете набрать "help" или "?", что бы ознакомится со списком комманд, ну а я уже опытный, сразу жму "p", что бы получить еще одну порцию информации:

(parted)p      

Модель: ATA WDC WD3200BEVT-2 (scsi)
Диск /dev/sda: 320GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
Номер  Начало  Конец   Размер  Тип       Файловая система  Флаги
 3     1049kB  137GB   137GB   extended                    lba
 5     2097kB  44,2GB  44,2GB  logical   ext4
 6     44,2GB  48,8GB  4627MB  logical   linux-swap(v1)
 7     48,8GB  137GB   87,8GB  logical   ext4


Заметьте, что в отличии от fdisk, здесь уже точно показан тип файловой системы на жестком диске.

В итоге, теперь мы знаем:
а) какие жесткие диски видны в системе
б) каким образом они разбиты на разделы
в) размер свободного пространства на отформатированной части
г) размер свободного пространства (нагло вру, ибо конкретно, сколько oсталось неразмеченного пространства я, помоему, могу посмотреть только через cfdisk, который я почему-то не очень люблю) на зарезервированой части и размер самих жестких дисков.
д) тип файловой системы, UUID раздела
е) точки монтирования и состояние (примонтирован или нет) на текущий момент, а также другие опции для монтирования.

2. Что такое S.M.A.R.T. или повод потроллить автора за очевидность.

Я больше, чем полностью уверен, что на этом ресурсе почти все, хотя бы чуть-чуть, но представляют что такое S.M.A.R.T.(от англ. self-monitoring, analysis and reporting technology). Довольно подробно, понятно и толково об этом рассказано на http://ru.wikipedia.org/wiki/S.M.A.R.T., и все же я хочу добавить несколько строк от себя на основе личного опыта.

Как говорит нам Капитан Очевидность, основываясь на переводе расписанной абривиатуры, это технология для самомониторинга, анализа и отчетности по текущему состоянию жесткого диска. Она не говорит нам явно, когда подохнет жесткий диск, она лишь сообщает некоторые наиболее важные статистические данные по факту работы жесткого диска, на основании которого можно сделать те или иные выводы. Для просмотра данных S.M.A.R.T. я предлагаю воспользоватся пакетом smarttools, который входит в состав скорее всего всех уважающих себя дистрибутивов. Пакет представляет из себя набор из двух программ: smartctl и smartd. Посредством первый мы можем вывести S.M.A.R.T. статистику, а с помощью второй(который на самом деле является демоном) - мониторить состояние жесткого диска в реальном времени и даже сообщать в случае чего админу на почту "радостную" весточку. Давайте для начала попробуем посмотреть более подробно состояние вашего жесткого диска:


$ sudo smartctl --all /dev/sda


Вывод должен быть внушительной портянкой, но нам сейчас пожалуй интересны следующие разделы(я там маленькие пометки делал, надеюсь не запутаетесь):

=== START OF INFORMATION SECTION ===
Производитель: Western Digital, интерфейс SATA
Model Family:     Western Digital Scorpio Blue Serial ATA
Точное имя модели
Device Model:     WDC WD3200BEVT-24A23T0
Серийный номер
Serial Number:    WD-WXE1A1134158
Еще какая-то хрень
LU WWN Device Id: 5 0014ee 600f5ecf7
Версия прошивки
Firmware Version: 01.01A02
Емкость
User Capacity:    320 072 933 376 bytes [320 GB]
Размер сектора
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:    Thu Sep  8 23:42:10 2011 YEKT
Доступность SMART
SMART support is: Available - device has SMART capability.
SMART support is: Enabled



Чуть ниже идет ряд наиболее важных атрибутов:

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   154   151   021    Pre-fail  Always       -       1275
Количество запусков и остановов жесткого диска. Существует миф, что один запуск или одна остановка жесткого диска равняется целому дню его епрервыной работы:
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       211
Количество сбойных секторов, перемещенных в резервную область (об этом мы еще поговорим чуть позже):
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
Частота ошибок при позиционировании головок:
  7 Seek_Error_Rate         0x002e   100   253   000    Old_age   Always       -       0
Количество отработанных часов:
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       383
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       209
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       38
193 Load_Cycle_Count        0x0032   197   197   000    Old_age   Always       -       11589
Температура воздуха внутри корпуса жесткого диска:
194 Temperature_Celsius     0x0022   095   087   000    Old_age   Always       -       48
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0




Здесь даны коментарии не ко всем критическим параметрам, более подробно вы можете посмотреть здесь. http://ru.wikipedia.org/wiki/S.M.A.R.T. Но я всегда особо обращал внимание на следующие поля:
а) Reallocated_Sector_Ct
б) Power_On_Hours
в) Temperature_Celsius

Даже не могу объяснить почему, но после первых нескольких сотен проверенных жестких дисков я, уже глянув на S.M.A.R.T, и почувствовав, как хард работает (звук, вибрация, запуск, скорость чтения, окружающая его аура) мог вполне сносно сходу определять, подохнет оно скоро, или нет, и на основании этого либо уже мог принимать решение о покупке, либо огорчать клиента еще до того, как закончится полная диагностика. Как показывает практика =), в отношении жестких дисков мы ошибались очень редко, так как такое чутье появлялось со временем у всех моих колег, и мы продавая б/у винчестер, всегда были уверены, что в 95% случаях оно переживет и гарантийный срок, и сам компьютер клиента. Тем не менее едем дальше.

3. У Вас есть "Бэды"? Не беда.

Сбойные сектора, или bad-блоки со временем появляются на всех жестких дисках.Что же такое bad-блок? Лично я особо об этом никогда не задумывался(википедия в помощь). Существует много причин, по которым они могут появится:

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

Как правило, не просто появление, а еще и увеличение количества сбойных секторов - верный признак скорой смерти накопителя (у меня в таком случае говорили, что жесткий диск "посыпался"), однако не стоит паниковать, если в поле Reallocated_Sector_Ct вдруг обновился счетчик. Возможно не все так плохо. Для поиска сбойных секторов используется небольшая утилита: badblocks

$ sudo badblocks -v /dev/sda


Checking blocks 0 to 312571223
Checking for bad blocks (read-only test):   0.00% done, 0:00 elapsed. (0/0/0 err^C0.26% done, 0:09 elapsed. (0/0/0 errors)


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

Для того, что бы исправить найденные сбойные сектора, необходимо воспользоватся совместно с badblocks еще и e2fsck, либо просто fsck. Только сначала лучше скопировать все данные на живой диск, а потом отмонтировать пациента и приступить к удалению аппендицита. Вот как советует делать это народ:


$ sudo badblocks /dev/sda1 > test
$ sudo fsck -t ext4 -l test /dev/sda1


Первая команда записывает список обнаруженных бед-блоков в файл, а вторая производит их remap, то есть помечает эти сектора как сбойные, и больше никогда не будет к ним обращатся. Единственно, что я не понял, а если на жестком диске вообще нет разделов? Badblocks то отработает, а вот fsck еще ни разу не применял на винтах, где нет разделов. Тогда мне что, этот раздел придется создать? А скорее просто указать размер сектора для badblocks и для fsck. Может кто подскажет, я в правильную стороу мыслю? За подобробностями опять же необходимо обратится к ман-страничкам но мне лениво сейчас =)

Кстати, никто не даст вам никаких гарантий, хотя чаще всего от косячных блоков все же удается избавится. Бывало, что после лечения сбойного сектора Windows вдруг прекращала сваливатся в синий экран =)(тихо, стоять-боятся, не стоит проверять с помощью fsck Windows-разделы, я лично делал это через MHDD). В отношении Linux у меня не очень серьезная статистика, так как тачки на пингвине у нас попадались крайне редко.

Предупреждение! Ни в коем случае не запускайте badblocks с ключем -w, если на жестком диске имеется нужная Вам информация. В таком случае необходимо скопировать всю нужное на другой носитель, и только после этого выполнить команду. Теперь Ваш жесткий диск девственно чист и не прикаян, нимб ему протрите =)

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

4. Заткнем жесткий диск вместе с hdparm.


Утилита hdparm довольная известная штука в рядах бывалых линуксойдов. Связано это с тем, что раньше при установке жестких дисков в linux систему, с помощью этой утилиты можно было разогнать жесткий по максимуму, тогда как дефолтные настройки разработчиков дистрибутивов в целях защиты(чего уж они там защищали?) выставляли довольно медленные режими работы. С тех пор много чего изменилось, и сейчас любой убунтовод наслаждается максимальной производительностью винчестера сразу после установки системы, потому и hdparm не стал так интересен. Тем не менее, утилита актуальна и на текущий момент. С помощью ее мы сможем например протестировать жесткий диск.

Команда:

$ sudo hdparm -t /dev/sda


произведет измерение скорости чтения с диска, и выведет об этом информацию:

/dev/sda:
 Timing buffered disk reads: 258 MB in  3.01 seconds =  85.71 MB/sec



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


$ sudo hdparm -i /dev/sda

/dev/sda:
 Model=WDC WD3200BEVT-24A23T0, FwRev=01.01A02, SerialNo=WD-WXE1A1134158
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
 BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=off
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=625142448
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=yes: unknown setting WriteCache=enabled
 Drive conforms to: Unspecified:  ATA/ATAPI-1,2,3,4,5,6,7
 * signifies the current active mode



Здесь нам будет интересна строчка UDMA mode, потому что именно там стоит звездочка перед udma6. Это самый быстрый из режимов, как мы и думали. Режимы PIO и DMA уже морально устарели и на современных компьютерах они уже не используются, разве что если чего глючит. Если заместо ключа "-i" Вы поставитет "-I", то вывод будет куда более информативен.

Так же с помощью hdparm можно поменять значение Acusting Managment. Данная настройка позволяет управлять шумом при работе жесткого диска. Как правило ее применяют, если Ваш жесткий диск довольно шумно работает (вой, трещание). Выполните следующую команду, что бы макскимально снизить уровень шума вашего жесткого диска:

$ sudo hdparm -M 128 /dev/sda



Для того, что бы закрепить результат, необходима в конфигурационном файле /etc/hdparm/conf создать следующие строки:

/dev/sda {
 acoustic_management = 128
 }



Значение 128 максимально снижает уровень шума, который исходит от жесткого диска. Для того, что бы увеличить быстрадействие диска на максимум, установите значение после ключа "-М" на 256(это максимально возможное значение)

Ну и напоследок, как говорится, обрежем хвост жесткому диску. То есть изменим значение HPA(Host Protected Area) или по другому уменьшем область видимых секторов для операционной системы. А для тех, кто совсем в танке, мы просто возьмем так, и оттяпним кусочек. Зачем это надо? Например, если в конце жесткого диска имеется область с большим количеством bad-блоков, то можно искусственно уменьшить его объем, что бы затем особо не переживать, при разбивке жесткого диска на разделы, что диск захватит не хорошие области. Или вот еще одни момент: некоторые даже довольно современные BIOS не способны нормально определять разделы более 2Тб, а прошивок новых где не вышло, следовательно мы можем временно уменьшить объем жесткого диска, и он хотя бы будет работать. А еще, часто, в таких "закрытых" областях производители компьютеров прячут копию предустановленной системы, что бы потом можно было легко восстановится до заводских настроек. (вы не поверить, это все в man hdparm написано, если что =).

Посмотрим, что у нас с HPA на самом деле:


$ sudo hdparm -N /dev/sda
/dev/sda:
 max sectors   = 625142448/625142448, HPA is disabled


Из "HPA is disabled" следует, что у меня оно отключено. Так же мы видим общее количество секторов(как правило, они по 512 байт), а значит объем жесткого диска будет приблизительно в два раза меньше, что собственно подтверждается на практике, так как он равен 320 Гб. Следовательно, что бы оттяпать 30-40 гигов, мне потребуется ввести значение, на 6000000-8000000 меньше. Для этого введем под рутом такую команду:


$ sudo hdparm -N p540000000 /dev/sdc


После ввода такой команды, информация запишется в памяти жесткого диска и раздел останется урезаным даже после перезагрузки. За один сеанс работы жесткого диска можно только один раз вводить данную команду, если нужно еще что-то изменить, то жесткий диск необходимо выключить, а заетм включить(по факту - перезагружать компьютер между очередным вводом команды.)В команде после ключа "p" идет адрес сектора, следовательно объем жесткого диска мы уменьшили примерно на 30Гб.

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

Вообще, если вы хотите получше протестировать состояние жесткого диска, то рекомендую попробовать вам воспользоватся двумя известнейшими на сегодня утилитами для диагностики и тестирования жесткого диска: MHDD и Victoria (обе точно имеют бесплатные версии). Через них же рекомендую производить и remap сбойных секторов, ибо проверено многократно на личном опыте. Не знаю, продолжают ли разрабатывать их дальше, но определенно они предлагают довольно удобный псевдографический интерфейс, правда я встречал их только под DOS, либо MS Windows, тем не менее в сети полно всякие Riscue CD, на которых стоит FreeDOS с ними на пару. В этих ваших интернетах по ним и правда полно информации, но я рекомендую начать с официальной документации, в который вы так же найдете дополнительные материлы по самим жестким дискам.

5. Вместо заключения - пара советов Капитана Очевидность.


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

Если же вы проверили жесткий диск на сбойные сектора, просмотрели смарт и все вроде бы нормально, но он ведет себя не адекватно. Попробуйте, если еще этого не сделали, пошевилить шлейфы, поменять на однозначно рабочие, перетыкнуть пару раз. Возможно просто что-то где-то окислилось или пропал контакт. Имеет смысл попробовать вынуть винчестер из компьютера, открутить электронную плату, отвечающую за управление механикой, и банально почистить обычным ластиком контактные площадки, расположенные с внутренней стороны платы. Сразу советую обратить внимание на наличие перегретых областей, сгоревших деталей. Рассмотрите вариант несовместимости с вашей материнской платой (если ставите этот хард в свой компьютер в первый раз), или может быть имеет смысл перевести жесткий диск с режима SATA2 на просто SATA, перекинув перемычку на соседние контакты. Не забывайте, что помимо самого жесткого диска может глючить контроллер на материнской плате (привет чипсетам Nvidia ;-) Ну и уж совсем последним шагом будет попытка перепрошить жесткий диск =), инструкцию ищите на сайте производителя (жаль что в большинстве случаев все будет для опять же для виндов). А если уж Вы совсем решили стать маньяком, то например жесткие диски от компании Seagate и Maxtor можно еще поробовать починить, подключившись к нему в сервисный режим. Это отдельная большая тема, и возможно потребуется умение держать паяльник и работать с последовательным терминалом, подключив жесткий диск к COM-порту. По данному вопрос ищите информацию на ресурсах, подобных например этому - http://rom.by.

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

6. Литература.

- FAQ from my brain (личный опыт)
- http://www.opennet.ru/man.shtml?topic=badblocks&category;=8&russian;=
- http://www.linux.gr/cgi-bin/man/man2html?hdparm+8
- Алексей Старовойтов "Настройка аппаратных средств в Linux":Санкт-Петербург, "БВХ-Петербург" 285с
- Джеймс Киркланд, Девид Кармайкл "Linux. Устранение неполадок":Москва, "NT Press" 490c

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

Оригинал статьи и комментарии к ней читаем у друзей Welinux.ru.




Вас также может заинтересовать:

Как выбрать схему разбиения жёстких дисков на компьютере под управлением Linux
Компания Valve открыла разработчикам Ubuntu бесплатный доступ к своим играм