Видео ролики бесплатно онлайн

Смотреть русский видео

Официальный сайт detisavve 24/7/365

Смотреть видео бесплатно

le087 08.10.2011 16:53

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

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

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

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

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

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

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

UDP: не забываем читать комментарии к посту, там небольшой разбор полетов.

0. Введение

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

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

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

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

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



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

2
3
4
5
6
7
8
9
10
11
12
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 террабайт мы так и не увидим на нем заявленной емкости, потому что любая операционная система как раз умеет считать только с правильным размеров килабайта. (UPD: смотри комментарий http://welinux.ru/post/6631/#cmnt112799)
В результате фактическая емкость моего диска равна:
320072933376/1000x1024x1024=305.24534GiB
А если мы сюда убавим еще и ту часть, которая обычно резервируется в linux под root, то останется и того меньше.

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

2
3
$ 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):

1

2
3
4
5
6
7
8
$ 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, ведь по ним уже можно судить, что и куда монтируется. Помимо этого мы можем видеть, насколько забиты жесткие диски "качественным и нужным" контентом. Добавим сюда вывод еще двух команд:
1

2
3
4
5
6
7
8
9
$ cat /etc/fstab

# <fs> <mountpoint> <type> <opts>
/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


 1

2
3
4
5
6
7
8
9
10
11
12
13
14
$ 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:
1

2
3
4
$ 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, дабы не возникало никаких проблем при жанглировании несколькими жесткими дисками в системном блоке, но это тема для отдельной статьи.

UDP. В комментариях посоветовали использовать для определия UUID следующую утилиту:
1
2
3
$ sudo blkid
/dev/sda1: UUID="f82c4092-522f-4f1f-9496-63ba962464ad" TYPE="ext4"
/dev/sda2: UUID="b519fae8-8c1d-4397-92bf-41ca608c931f" TYPE="ext4"



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

2
3
4
$ sudo parted

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


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

2
3
4
5
6
7
8
9
10
(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. статистику, а с помощью второй(который на самом деле является демоном) - мониторить состояние жесткого диска в реальном времени и даже сообщать в случае чего админу на почту "радостную" весточку. Давайте для начала попробуем посмотреть более подробно состояние вашего жесткого диска:
1
$ sudo smartctl --all /dev/sda



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

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
=== 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


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

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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
1

2
3
$ 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. Только сначала лучше скопировать все данные на живой диск, а потом отмонтировать пациента и приступить к удалению аппендицита. Вот как советует делать это народ:
1

2
$ 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, если на жестком диске имеется нужная Вам информация. В таком случае необходимо скопировать всю нужное на другой носитель, и только после этого выполнить команду. Теперь Ваш жесткий диск девственно чист и не прикаян, нимб ему протрите =)

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

196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0

если после нескольких проходов диагноз подтверждается, то контроллер винчестера их перемещает в очередь Current_Pending_Sector, параметр в смарте отражает количество таких секторов в очереди:

197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0

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

5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0

Это в упрощенном варианте. Так что если у Вас во всех трех пунктах значение столбца THRESH не нулевые - значит ваш винчестер активно отбрасывает коньки... Аминь.

Теперь по поводу команды Badblocks. Эта команда просто помечает в существующей файловой системе не заремапленные винчестером bad блоки (либо у винчестера уже закончились резервные сектора, что очень плохо для его дальнейшей жизни, либо система успела наткнутся на bad блок, который винчестер ещё не успел спрятать, что значит что скорее всего такой сектор после ремапа будет нормально читаться и писаться). На не отформатированных разделах не работает. Если раздел переформатировать - то нужно будет заново запускать эту утилиту. Или форматировать сразу с опцией отключающей быстрое форматирование, в этом случае форматирование будет происходить с верификацией и все бэдблоки будут занесены в карту диска. До следующего форматирования. :)))
Такая система отметки bad блоков в файловых системах существует со времен появления первых дискет и винчестеров (в те времена винчестеры не умели прятать bad блоки автоматом, да и вообще не умели их прятать).


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

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


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

Команда:
1
$ sudo hdparm -t /dev/sda



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

2
/dev/sda:

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


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

2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ 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. Данная настройка позволяет управлять шумом при работе жесткого диска. Как правило ее применяют, если Ваш жесткий диск довольно шумно работает (вой, трещание). Выполните следующую команду, что бы макскимально снизить уровень шума вашего жесткого диска:
1
$ sudo hdparm -M 128 /dev/sda



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

2
3
/dev/sda {

acoustic_management = 128
}


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

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

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

2
3
$ sudo hdparm -N /dev/sda

/dev/sda:
max sectors = 625142448/625142448, HPA is disabled


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


Тэги: drive диагностика Жесткий диск настойка
+ 24 -
Похожие Поделиться

sakal 08.10.2011 18:11 #
+ 1 -
Статья хорошая и полезная

Поправьте, пожалуйста

$ sudo badblocks /dev/sda1 > test
$ sudo -t ext4 -l test /dev/sda1
le087 08.10.2011 18:26 #
+ 0 -
Поправьте, пожалуйста

вижу, спасибо
All4DK 08.10.2011 18:15 #
+ 0 -
Просто большое, человеческое спасибо!
WiseLord 08.10.2011 18:20 #
+ 1 -
Хорошая статья, но с "коммерческими килобайтами" - это уже перегиб. Это самые обычные килобайты. Как 1кг равен 1000г, так и 1кБ = 1000Б. А для 1024 другая приставка используется.
Кстати, тот же fdisk вполне адекватно пишет ёмкость диска - Disk /dev/sda: 320.1 GB. А у Вас - 320072933376/1000x1024x1024=305.24534Gb - нужно писать не Gb, а GiB
le087 08.10.2011 18:23 #
+ 0 -
Замечания учтены и приняты. С коммерческими гигабайтами оставляем все как есть, пусть видно где я не прав и почему поправили. Остальное поправим.
goblinyara 08.10.2011 22:34 #
+ 0 -
1000 байт это всё-таки не килобайт, а кибибайт
goblinyara 08.10.2011 22:35 #
+ 0 -
хотя нет, напутал.... наоборот, 1000 - килобайт, а 1024 - кибибайт
Azat Khuzhin 09.10.2011 01:40 #
+ 0 -
Из википедии
Строгое соответствие системе СИ; повсеместное употребление десятичной системы счисления; завышение цифр объёма носителей при помощи более мелкой единицы («коммерческие мегабайты»).
Quetzalcoatl 10.10.2011 14:39 #
+ 0 -
на недавно купленном WD для ноута на наклейке мелким шрифтом было указана разница между написанным большими буквами на той же наклейке GB и GiB, формально пользователь предупрежден, а вот на купленным 1.5 года назад винте той же фирмы и серии такой сноски не было.
dr_magnus 08.10.2011 20:23 #
+ 0 -
воды многовато, а в целом статья дельная.. молодца..
le087 08.10.2011 20:54 #
+ 1 -
Я хотел что бы была некоторая последовательность мысли и плавный переход от одной части к другой. В итоге все получилось наоборот, слишком сумбурно, да еще и воды добавилось. На самом деле можно было еще более подробно рассказать про SMART, например про то, как настроить smartd, проработать более ясно вопрос про бедблоки. Но мне показалось, что статья уже и так уместится разве что на рулоне туалетной бумаги.
inst 09.10.2011 00:28 #
+ 0 -
Было бы интересно почитать о настройке smartd.

PS: спасибо за статью.
philosoft 08.10.2011 21:31 #
+ 4 -
и это говоришь ты?
dr_magnus 09.10.2011 00:38 #
+ 0 -
о..! салют!
тебя уже из бана выпустили?
philosoft 09.10.2011 20:28 #
+ 0 -
Ну т.е. на основании того, что я комментирую, вывод ты сделать не способен?
dr_magnus 09.10.2011 22:39 #
+ -1 -
основной смысловой нагрузкой моего коментария было приветствие тебя.
извини, если у меня не получилось донести эту простую мысль до тебя с первого раза.
philosoft 09.10.2011 22:52 #
+ 2 -
основной смысловой нагрузкой моего же в свою очередь был сарказм, извини, что не поставил табличку.
Shtsh 08.10.2011 21:17 #
+ 3 -
UUID лучше получать при помощи blkid.

Например, у меня sudo file -s /dev/sda1
говори следующее
/dev/sda1: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, 1st sector stage2 0x11b23f, code offset 0x48

А с blkid всё хорошо

$ sudo blkid

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

le087 08.10.2011 21:18 #
+ 0 -
Принято!
WiseLord 08.10.2011 21:29 #
+ 1 -
Я обычно смотрю по "ls -l /dev/disk/by-uuid/"
WiseLord 08.10.2011 21:30 #
+ 1 -
P.S. там рядом и другие "каталоги" есть - by-label и т.п.
vkapas 08.10.2011 21:59 #
+ 0 -
Единственно, что я не понял, а если на жестком диске вообще нет разделов? Badblocks то отработает, а вот fsck еще ни разу не применял на винтах, где нет разделов. Тогда мне что, этот раздел придется создать?

На сколько я знаю, бэд-блоки на современных винчах лечатся на уровне ФС, т.е., как минимум один раздел на диске должен быть.
ZeroNull 13.10.2011 20:11 #
+ 3 -
На современных винчестерах бед блоки ремапятся на аппаратном уровне автоматически, делается это в несколько шагов. С начала сектора на подозрении попадают в очередь Reallocated_Event_Count, в сматрте винта можно посмотреть сколько таких секторов на текущий момент:

196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0

если после нескольких проходов диагноз подтверждается, то контроллер винчестера их перемещает в очередь Current_Pending_Sector, параметр в смарте отражает количество таких секторов в очереди:

197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0

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

5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0

Это в упрощенном варианте. Так что если у Вас во всех трех пунктах значение столбца THRESH не нулевые - значит ваш винчестер активно отбрасывает коньки... Аминь.

Теперь по поводу команды Badblocks. Эта команда просто помечает в существующей файловой системе не заремапленные винчестером bad блоки (либо у винчестера уже закончились резервные сектора, что очень плохо для его дальнейшей жизни, либо система успела наткнутся на bad блок, который винчестер ещё не успел спрятать, что значит что скорее всего такой сектор после ремапа будет нормально читаться и писаться). На не отформатированных разделах не работает. Если раздел переформатировать - то нужно будет заново запускать эту утилиту. Или форматировать сразу с опцией отключающей быстрое форматирование, в этом случае форматирование будет происходить с верификацией и все бэдблоки будут занесены в карту диска. До следующего форматирования. :)))
Такая система отметки bad блоков в файловых системах существует со времен появления первых дискет и винчестеров (в те времена винчестеры не умели прятать bad блоки автоматом, да и вообще не умели их прятать).
le087 13.10.2011 20:21 #
+ 0 -
Надеюсь, Вы не против, если я Ваш комментарий вынес в тело поста?
ZeroNull 14.10.2011 20:50 #
+ 0 -
Не против.
le087 13.10.2011 20:32 #
+ 0 -
Тут еще один момент. Как правило, для лечения сбойных секторов я всегда использовал MHDD =), Так вот, у MHDD есть целая небольшая классификация по типу сбойных секторов, всю я ее незнаю, ибо не приходилось. Но я думаю Вы в курсе того, что я говорю, раз рассказываете такие подробности. Некоторые сектора читаются - но с трудом, более 500 мс к примеру. Мы их прозвали "варнинги" по соответсвующей записи в программе. Они по идее читаются, но очень медленно. =) из-за таких у нас подглючивала ОС бывало, редко, но было. Они не всегда затираются, зато ремапятся через MHDD отлично =). Автоматика винта не всегда с такими справляется и приходилось запускать ремап вручную. А может мне винты только старые попадались, не суть. Поэтому считаю, что вопрос определения состояния жесткого диска все же довольно неоднозначный и многофакторный.
ZeroNull 14.10.2011 21:07 #
+ 1 -
По этому поводу есть две прекрасные статьи от производителей программы "Виктория", почитать их можно здесь:
Скрытие бэд-блоков на хардах 1-я часть
Скрытие бэд-блоков на хардах 2-я часть
статьи не сильно большие, написано понятным языком и достаточно информативно. Всем интересующимся рекомендую.

PS: Что бы не было вопросов - я к этим статьям имею отношение только как читатель. :))
vkapas 14.10.2011 00:01 #
+ 1 -
Спасибо за развёрнутый комментарий. Теперь картина с бэдами ясна :-)
cppmm 10.10.2011 14:27 #
+ 0 -
Именно поэтому здесь у расширенного раздела нет флага boot, хотя система грузится отлично.

Маленькое незначительно дополнение.
Я всегда, разбивая винт, автоматом ставлю boot-флаг на соответствующий раздел. А вот один знакомый админ, устанавливая систему на новый сервак как-то потратил зря несколько часов, пытаясь разобраться, почему не грузится система после установки.
Как потом выяснилось, он не ставил boot-флаг, думая, что он в современном железе уже не нужен. В большинстве случаев так оно и есть, но иногда всё же бывает так, что этот параметр необходим. Разумеется не обычном домашнем железе вы вряд ли с таким столкнётесь, но для надёжности лучше всё-таки ставить этот флаг. Справедливо для некоторых вполне современных серверных матерей.
le087 10.10.2011 14:32 #
+ 0 -
=), да, я тоже всегда ставлю флаг boot, но в данном случае доверился акронису, и тот перенес разделы, удалил /dev/sda1, но не добавил флаг boot нужному разделу, вернее я как-то забыл это сделать. Вот и получилось, что boot флаг у меня не стоит.
le087 10.10.2011 14:38 #
+ 0 -
Кстати, когда писал статью, выполняя те или иные команды в консоли, решил немного добавить инфы по тому, как посмотреть содержимое таблицы разделов в hex-виде и рассказать, зачем оно может понадобится, но к моему удивлению, не обнаружил там ничего знакомого, кроме 55АА в конце таблицы разделов. Начало объявления разделов абсолютно не соответствует тому, что я должен был увидеть. Пока списал это на новые стандарты для BIOS, но все равно очень сомнительно и скорее всего где-то я ошибаюсь. Поскольку разбирательство с этим завело бы меня еще на месяц ковыряний, я забил и просто вырезал кусок из статьи, но проблема осталась =)
Quetzalcoatl 10.10.2011 14:44 #
+ 0 -
А еще, часто, в таких "закрытых" областях производители компьютеров прячут копию предустановленной системы, что бы потом можно было легко восстановится до заводских настроек. (вы не поверить, это все в man hdparm написано, если что =). можно пример производителя и модель где так сделано(ну нету под рукой man от hdparam, а посмотреть охото), тот же самсунг использовал для восстановления ntfs раздел с хитро порченой сигнатурой из винды не видно, но линупсу похрен
le087 10.10.2011 14:56 #
+ 0 -
хм... ну я так подозреваю, подобным образом был сделано на моем говнобуке. Встречайте: lenovo G560 (P6200/2048Gb/320Gb) =) за 13 000 руб.
В целом аппарат меня более чем устраивает. Там изначально стояло MeGoo, которая порадовало меня своей "стабильностью" и "широким" выбором программ в репозитории по умолчанию: опенофисом древней версии и двумя бесплатными играми)))). Так вот, на жестком там имелся раздел, из которого можно было выполнить восстановление MeGoo до заводских настроек. И в Linux то он честно говоря виделся, но для виндов думаю был скрыт =).
Quetzalcoatl 10.10.2011 18:33 #
+ 0 -
как я понимаю то что описано в hdparam должно прятать в т.ч. и от линукса, а то что от виндоусов скрыто см. выше + раздел у meego скорее всего линуксовый что виндоус если и видит то только в диспетчере накопителей (или как там оно правильно называется).
le087 11.10.2011 06:57 #
+ 0 -
да, верно, оно уменьшает объем жесткого диска, кстати, помоему умеет только с конца, но вот тут я не уверен.
ZeroNull 13.10.2011 19:36 #
+ 1 -
HPA - только с конца
Quetzalcoatl 10.10.2011 18:35 #
+ 0 -
з.ы. : на нетбуке lenovo s10-3t тоже есть раздел для восстановления винды такойже как на самсунге не правильный ntfs + встроенная лунукс ось для интернетов на ext3 разделе вроде
ananas 15.10.2011 07:37 #
+ 0 -
1. fdisk - таки давно уже не торт. торт - это sfdisk
2. /etc/mtab - не нужен. вместо него лучше пользоваться /proc/mounts

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн