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 |
|
Вывод будет страшен:
Как видно, в моей системе присутстсвует один жесткий диск с маркетинговой емкостью в 320 Гб. Почему маркетинговая? Да потому что в целях увеличения продаж, маркетологи производителей решили, что 1 коммерческий килобайт равент 1000 байтам, а не 1024, как у всего другого человечества. В результате покупая новенький хард с большой надписью на ценнике в 1 террабайт мы так и не увидим на нем заявленной емкости, потому что любая операционная система как раз умеет считать только с правильным размеров килабайта. (UPD: смотри комментарий http://welinux.ru/post/6631/#cmnt112799)
В результате фактическая емкость моего диска равна:
320072933376/1000x1024x1024=305.24534GiB
А если мы сюда убавим еще и ту часть, которая обычно резервируется в linux под root, то останется и того меньше.
И точно, вот что нам выведет еще одна команда, пропущенная пока через grep(мы еще вернемся к этой программе чуть позже):
1 |
$ sudo hdparm -I /dev/sda | grep "device size"
|
На основе вывода fdisk можно сказать:
У меня один жесткий диск, на нем находится один расширенный раздел раздел(/dev/sda3), внутри которого находится три логических: собственно /dev/sda5 - корневой раздел, /dev/sda6 - раздел подкачки, /dev/sda7 - является местом, которое монтируется под домашние каталоги пользователей. Ничего особо необычного в данном способе разметки нет, разве что раньше у меня еще стояла MeGoo (с ней ноутбук шел в комплекте), но я от нее отказался, и перераспределил пространство под Gentoo, не замарачиваясь особо с разметкой диска заново. Именно поэтому здесь у расширенного раздела нет флага boot, хотя система грузится отлично.
Давайте теперь посмотрим, как можно узнать точки монтирования разделов жесткого диска на текущий момент.
Самое простое, что приходит на ум, это использование утилиты df(тут я нагло вру, ибо первым на ум приходит /etc/fstab):
Нас интересует опять же две строчки, который начинаются с /dev/root и c /dev/sda7, ведь по ним уже можно судить, что и куда монтируется. Помимо этого мы можем видеть, насколько забиты жесткие диски "качественным и нужным" контентом. Добавим сюда вывод еще двух команд:
Для тех, кто в танке, первая выводит содержимое файла /etc/fstab, о котором наверно не слышал только тот, кто запустил LiveCD Ubuntu и впервые в жизни увидел Linux. Вторая команда показывает, какие файловые системы примонтированые сейчас и по ней тоже можно узнать небольшой минимум, правда информация эта не постоянна, и меняется по мере добавления и удаления устройств в реальном времени. Теперь мы можем более или менее четко составить представление о дисковой подсистеме компьютера, особенно если нам пришлось увидеть эту тачку впервые, по приглашению хорошенькой {однокурсницы | одноклассницы | подруги по детскому саду} - нужное подчеркнуть ;)
Ну и что бы наверняка до конца получить общую картину о разделах жестких дисков, определим тип используемых на них файловых систем с помощью утилиты file:
Как видно из вывода, на обоих разделах у меня используется ext4. Так же мы получили UUID - уникальный идентификатор раздела, который затем можно прописать в fstsb, дабы не возникало никаких проблем при жанглировании несколькими жесткими дисками в системном блоке, но это тема для отдельной статьи.
UDP. В комментариях посоветовали использовать для определия UUID следующую утилиту:
1 |
$ sudo blkid
|
Ну и так, на последок, вот еще один способ получить немного информации о разделах на жестком диске:
1 |
$ sudo parted
|
Вы можете набрать "help" или "?", что бы ознакомится со списком комманд, ну а я уже опытный, сразу жму "p", что бы получить еще одну порцию информации:
Заметьте, что в отличии от 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 |
|
Вывод должен быть внушительной портянкой, но нам сейчас пожалуй интересны следующие разделы(я там маленькие пометки делал, надеюсь не запутаетесь):
Чуть ниже идет ряд наиболее важных атрибутов:
Здесь даны коментарии не ко всем критическим параметрам, более подробно вы можете посмотреть здесь. 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 |
$ sudo badblocks -v /dev/sda
|
Проверка займет довольно продолжительный период времени в зависимости от объема девайса, поэтому я принудительно оборвал работу программы.
Для того, что бы исправить найденные сбойные сектора, необходимо воспользоватся совместно с badblocks еще и e2fsck, либо просто fsck. Только сначала лучше скопировать все данные на живой диск, а потом отмонтировать пациента и приступить к удалению аппендицита. Вот как советует делать это народ:
1 |
|
Первая команда записывает список обнаруженных бед-блоков в файл, а вторая производит их 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 блоки автоматом, да и вообще не умели их прятать).
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 |
|
произведет измерение скорости чтения с диска, и выведет об этом информацию:
1 |
|
Как видно, скорость не самая большая, но вполне адекватная для ноутбучного винта. Да и ноутбук у меня один из самых бюджетных моделей, поэтому на сверх скорости расчитывать не приходится. Я подозреваю, что режим работы диска стоит самый быстрый. Давайте проверим мое предположение.
Здесь нам будет интересна строчка UDMA mode, потому что именно там стоит звездочка перед udma6. Это самый быстрый из режимов, как мы и думали. Режимы PIO и DMA уже морально устарели и на современных компьютерах они уже не используются, разве что если чего глючит. Если заместо ключа "-i" Вы поставитет "-I", то вывод будет куда более информативен.
Так же с помощью hdparm можно поменять значение Acusting Managment. Данная настройка позволяет управлять шумом при работе жесткого диска. Как правило ее применяют, если Ваш жесткий диск довольно шумно работает (вой, трещание). Выполните следующую команду, что бы макскимально снизить уровень шума вашего жесткого диска:
1 |
|
Для того, что бы закрепить результат, необходима в конфигурационном файле /etc/hdparm/conf создать следующие строки:
1 |
|
Значение 128 максимально снижает уровень шума, который исходит от жесткого диска. Для того, что бы увеличить быстрадействие диска на максимум, установите значение после ключа "-М" на 256(это максимально возможное значение)
Ну и напоследок, как говорится, обрежем хвост жесткому диску. То есть изменим значение HPA(Host Protected Area) или по другому уменьшем область видимых секторов для операционной системы. А для тех, кто совсем в танке, мы просто возьмем так, и оттяпним кусочек. Зачем это надо? Например, если в конце жесткого диска имеется область с большим количеством bad-блоков, то можно искусственно уменьшить его объем, что бы затем особо не переживать, при разбивке жесткого диска на разделы, что диск захватит не хорошие области. Или вот еще одни момент: некоторые даже довольно современные BIOS не способны нормально определять разделы более 2Тб, а прошивок новых где не вышло, следовательно мы можем временно уменьшить объем жесткого диска, и он хотя бы будет работать. А еще, часто, в таких "закрытых" областях производители компьютеров прячут копию предустановленной системы, что бы потом можно было легко восстановится до заводских настроек. (вы не поверить, это все в man hdparm написано, если что =).
Посмотрим, что у нас с HPA на самом деле:
1 |
|
Из "HPA is disabled" следует, что у меня оно отключено. Так же мы видим общее количество секторов(как правило, они по 512 байт), а значит объем жесткого диска будет приблизительно в два раза меньше, что собственно подтверждается на практике, так как он равен 320 Гб. Следовательно, что бы оттяпать 30-40 гигов, мне потребуется ввести значение, на 6000000-8000000 меньше. Для этого введем под рутом такую команду:
1 |
|
После ввода такой команды, информация запишется в памяти жесткого диска и раздел останется урезаным даже после перезагрузки. За один сеанс работы жесткого диска можно только один раз вводить данную команду, если нужно еще что-то изменить, то жесткий диск необходимо выключить, а заетм включить(по факту - перезагружать компьютер между очередным вводом команды.)В команде после ключа "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, например тонкую настроку, оптимизацию, если есть у кого возможность поделится личным опытом.
Хорошая статья, но с "коммерческими килобайтами" - это уже перегиб. Это самые обычные килобайты. Как 1кг равен 1000г, так и 1кБ = 1000Б. А для 1024 другая приставка используется.
Кстати, тот же fdisk вполне адекватно пишет ёмкость диска - Disk /dev/sda: 320.1 GB. А у Вас - 320072933376/1000x1024x1024=305.24534Gb - нужно писать не Gb, а GiB
Кстати, тот же fdisk вполне адекватно пишет ёмкость диска - Disk /dev/sda: 320.1 GB. А у Вас - 320072933376/1000x1024x1024=305.24534Gb - нужно писать не Gb, а GiB
Замечания учтены и приняты. С коммерческими гигабайтами оставляем все как есть, пусть видно где я не прав и почему поправили. Остальное поправим.
хотя нет, напутал.... наоборот, 1000 - килобайт, а 1024 - кибибайт
Из википедии
Строгое соответствие системе СИ; повсеместное употребление десятичной системы счисления; завышение цифр объёма носителей при помощи более мелкой единицы («коммерческие мегабайты»).
на недавно купленном WD для ноута на наклейке мелким шрифтом было указана разница между написанным большими буквами на той же наклейке GB и GiB, формально пользователь предупрежден, а вот на купленным 1.5 года назад винте той же фирмы и серии такой сноски не было.
Я хотел что бы была некоторая последовательность мысли и плавный переход от одной части к другой. В итоге все получилось наоборот, слишком сумбурно, да еще и воды добавилось. На самом деле можно было еще более подробно рассказать про SMART, например про то, как настроить smartd, проработать более ясно вопрос про бедблоки. Но мне показалось, что статья уже и так уместится разве что на рулоне туалетной бумаги.
Было бы интересно почитать о настройке smartd.
PS: спасибо за статью.
PS: спасибо за статью.
Ну т.е. на основании того, что я комментирую, вывод ты сделать не способен?
основной смысловой нагрузкой моего коментария было приветствие тебя.
извини, если у меня не получилось донести эту простую мысль до тебя с первого раза.
извини, если у меня не получилось донести эту простую мысль до тебя с первого раза.
основной смысловой нагрузкой моего же в свою очередь был сарказм, извини, что не поставил табличку.
UUID лучше получать при помощи blkid.
Например, у меня sudo file -s /dev/sda1
говори следующее
А с 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"
/dev/sda1: UUID="f82c4092-522f-4f1f-9496-63ba962464ad" TYPE="ext4"
/dev/sda2: UUID="b519fae8-8c1d-4397-92bf-41ca608c931f" TYPE="ext4"
Единственно, что я не понял, а если на жестком диске вообще нет разделов? Badblocks то отработает, а вот fsck еще ни разу не применял на винтах, где нет разделов. Тогда мне что, этот раздел придется создать?
На сколько я знаю, бэд-блоки на современных винчах лечатся на уровне ФС, т.е., как минимум один раздел на диске должен быть.
На современных винчестерах бед блоки ремапятся на аппаратном уровне автоматически, делается это в несколько шагов. С начала сектора на подозрении попадают в очередь 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 блоки автоматом, да и вообще не умели их прятать).
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 блоки автоматом, да и вообще не умели их прятать).
Тут еще один момент. Как правило, для лечения сбойных секторов я всегда использовал MHDD =), Так вот, у MHDD есть целая небольшая классификация по типу сбойных секторов, всю я ее незнаю, ибо не приходилось. Но я думаю Вы в курсе того, что я говорю, раз рассказываете такие подробности. Некоторые сектора читаются - но с трудом, более 500 мс к примеру. Мы их прозвали "варнинги" по соответсвующей записи в программе. Они по идее читаются, но очень медленно. =) из-за таких у нас подглючивала ОС бывало, редко, но было. Они не всегда затираются, зато ремапятся через MHDD отлично =). Автоматика винта не всегда с такими справляется и приходилось запускать ремап вручную. А может мне винты только старые попадались, не суть. Поэтому считаю, что вопрос определения состояния жесткого диска все же довольно неоднозначный и многофакторный.
По этому поводу есть две прекрасные статьи от производителей программы "Виктория", почитать их можно здесь:
Скрытие бэд-блоков на хардах 1-я часть
Скрытие бэд-блоков на хардах 2-я часть
статьи не сильно большие, написано понятным языком и достаточно информативно. Всем интересующимся рекомендую.
PS: Что бы не было вопросов - я к этим статьям имею отношение только как читатель. :))
Скрытие бэд-блоков на хардах 1-я часть
Скрытие бэд-блоков на хардах 2-я часть
статьи не сильно большие, написано понятным языком и достаточно информативно. Всем интересующимся рекомендую.
PS: Что бы не было вопросов - я к этим статьям имею отношение только как читатель. :))
Спасибо за развёрнутый комментарий. Теперь картина с бэдами ясна :-)
Именно поэтому здесь у расширенного раздела нет флага boot, хотя система грузится отлично.
Маленькое незначительно дополнение.
Я всегда, разбивая винт, автоматом ставлю boot-флаг на соответствующий раздел. А вот один знакомый админ, устанавливая систему на новый сервак как-то потратил зря несколько часов, пытаясь разобраться, почему не грузится система после установки.
Как потом выяснилось, он не ставил boot-флаг, думая, что он в современном железе уже не нужен. В большинстве случаев так оно и есть, но иногда всё же бывает так, что этот параметр необходим. Разумеется не обычном домашнем железе вы вряд ли с таким столкнётесь, но для надёжности лучше всё-таки ставить этот флаг. Справедливо для некоторых вполне современных серверных матерей.
=), да, я тоже всегда ставлю флаг boot, но в данном случае доверился акронису, и тот перенес разделы, удалил /dev/sda1, но не добавил флаг boot нужному разделу, вернее я как-то забыл это сделать. Вот и получилось, что boot флаг у меня не стоит.
Кстати, когда писал статью, выполняя те или иные команды в консоли, решил немного добавить инфы по тому, как посмотреть содержимое таблицы разделов в hex-виде и рассказать, зачем оно может понадобится, но к моему удивлению, не обнаружил там ничего знакомого, кроме 55АА в конце таблицы разделов. Начало объявления разделов абсолютно не соответствует тому, что я должен был увидеть. Пока списал это на новые стандарты для BIOS, но все равно очень сомнительно и скорее всего где-то я ошибаюсь. Поскольку разбирательство с этим завело бы меня еще на месяц ковыряний, я забил и просто вырезал кусок из статьи, но проблема осталась =)
А еще, часто, в таких "закрытых" областях производители компьютеров прячут копию предустановленной системы, что бы потом можно было легко восстановится до заводских настроек. (вы не поверить, это все в man hdparm написано, если что =). можно пример производителя и модель где так сделано(ну нету под рукой man от hdparam, а посмотреть охото), тот же самсунг использовал для восстановления ntfs раздел с хитро порченой сигнатурой из винды не видно, но линупсу похрен
хм... ну я так подозреваю, подобным образом был сделано на моем говнобуке. Встречайте: lenovo G560 (P6200/2048Gb/320Gb) =) за 13 000 руб.
В целом аппарат меня более чем устраивает. Там изначально стояло MeGoo, которая порадовало меня своей "стабильностью" и "широким" выбором программ в репозитории по умолчанию: опенофисом древней версии и двумя бесплатными играми)))). Так вот, на жестком там имелся раздел, из которого можно было выполнить восстановление MeGoo до заводских настроек. И в Linux то он честно говоря виделся, но для виндов думаю был скрыт =).
В целом аппарат меня более чем устраивает. Там изначально стояло MeGoo, которая порадовало меня своей "стабильностью" и "широким" выбором программ в репозитории по умолчанию: опенофисом древней версии и двумя бесплатными играми)))). Так вот, на жестком там имелся раздел, из которого можно было выполнить восстановление MeGoo до заводских настроек. И в Linux то он честно говоря виделся, но для виндов думаю был скрыт =).
как я понимаю то что описано в hdparam должно прятать в т.ч. и от линукса, а то что от виндоусов скрыто см. выше + раздел у meego скорее всего линуксовый что виндоус если и видит то только в диспетчере накопителей (или как там оно правильно называется).
да, верно, оно уменьшает объем жесткого диска, кстати, помоему умеет только с конца, но вот тут я не уверен.
з.ы. : на нетбуке lenovo s10-3t тоже есть раздел для восстановления винды такойже как на самсунге не правильный ntfs + встроенная лунукс ось для интернетов на ext3 разделе вроде
Поправьте, пожалуйста
$ sudo badblocks /dev/sda1 > test
$ sudo -t ext4 -l test /dev/sda1