У знайомого (як пізніше з'ясувалося - вже давно) повільно і вірно вмирав жорсткий диск в Нотика, несучи в небуття всю його неосяжну пошту (32Гб!) І бізнес документи. Питання про backup - не до мене, будь ласка 😉 Настав день, коли вінда просто перестала завантажуватися і випадали з блакитним екраном. Воно й не дивно: на диску виявилося понад 5 тисяч битих блоків!
У Мережі є безліч "howto" розповідають про те, як зробити що-небудь з NTFS розділом (за допомогою gparted), а після змусити вінду грузиться за допомогою Windows Repair, який треба запускати з фірмового диска. А що робити, коли вінда ліцензійна, а фірмовий диск давно зник в меж'ящічном просторі? Розповідаю про те, що спрацювало в мене "на ура" c Windows XP Pro і було успішно перевірені ще Win7 Pro 64bit:
- Зберегти образ диска з усіма дірками
- Залити його на більший диск
- Винда завантажилася! => Checkdisk; regedt32.
- Стиснути розділ, щоб напевно вліз на новенький SSD
- Скопіювати на SSD
- Створити розділ заново, на весь диск під зав'язку
- ntfsresize
- Винда вантажиться знову! => Checkdisk
На той момент у мене на домашньому комп'ютері була установрлена Ubuntu 11.10. Пізніше проробляв той же трюк з-під Ubuntu 13.10 і Linux Mint 16. Упевнений, що і на інших дистрибутивах описана послідовність дій - можливо найбільш ефективний спосіб відновлення NTFS розділів з битих дисків.
Обережно! Програма - підробка!
Непотрібна, так просто шкідлива утиліта, що поставляється в наборі Убунту:
dd_rescue Version 1.23, [email protected], GNU GPL
Ця недоробка може лише вичитувати диск так само тупо, як це робить
тобто, варто її перервати - і все поїхало заново, або треба руками вираховувати, де зупинилися і звідки запускатися, і потім знову ж вручну якось слепляю отримані файли. Навіщо хтось Гарлофф накатав це - лише щоб бентежити недосвідчених користувачів Убунту і Сьюзі.
Увага! Дуже потрібна програма
Правильна, дуже корисна, грамотна утиліта для порятунку вмираючих дисків:
GNU ddrescue - Data recovery tool.
Copies data from one file or block device to another,
trying hard to rescue data in case of read errors.
Usage: ddrescue [options] infile outfile [logfile]
You should use a logfile unless you know what you are doing.
Report bugs to [email protected]
Щоб все було під рукою, відразу встановлюємо:
sudo apt-get install dkms build-essential
sudo apt-get install smartmontools screen sysstat
sudo apt-get install xz-utils lzip
sudo apt-get install ntfsprogs
Далі прямуємо того, що описано в файлі INSTALL від ddrescue:
tar xlvf ddrescue-1.17-rc1.tar.lz
sudo make install
Корисно буває поглянути на те, що доповідає S.M.A.R.T. про вмираючого диску. Для загальної освіти. Бо справі вся ця інформація навряд чи допоможе.
# Smartctl -a / dev / sdX
Зазвичай коли Reallocated_Sector_Ct RAW_VALUE хоча б 1, а часто багато більше - диску залишилося жити недовго.
Вичитування диска рекомендую запускати з-під screen. і на машині, яка не шумить або знаходиться не в спальні. Бо процес може розтягнутися на години і дні - диски моторошно гальмують на битих секторах і ніякими програмними хитрощами це справа не прискорити. Я запускав вичитування на сервері, який у мене крутився в підвалі і нікому не заважав.
Увага: всілякі USB адаптери та інші подключалкі дисків вкрай не рекомендується використовувати для роботи з хворими дисками! Підключайте диск прямо до SATA контролера. Ви попереджені.
ddrescue -d / dev / sdX ddr_image ddr_log
Слід лише мати на увазі, що / var / log / syslog може распухнуть до неймовірних розмірів через скарги системи на битий диск.
Мені набридло чекати вже через три дні. На той час 300Мб нечитабельною простору скоротилося до однієї сотні мегабайт. Всього там було трохи більше 5000 (!) Битих секторів. Я перервав ddrescue по Ctrl-C, скопіював образ на робочу машинку і запустив дірявий диск вичитуватися далі - про всяк випадок. Чудова утилитка цей ddrescue від Antonio Diaz Diaz!
Одержаний образ заливаємо на точно такий же або більший за розміром диск. Нічого форматувати і готувати непотрібно. Переконайтеся тільки, що на диску не залишалося нічого цінного!
dd if = ddr_image of = / dev / sdY
Тепер можна підключити цей, можливо тимчасовий, диск до відновлюваної машині. У моєму випадку винда завантажилася без проблем. Тут же був запущений повний checkdisk з перезавантаженням.
Наступна операція (можливо) необхідна для того, щоб вінда раптом не вирішила, що її нелегально скопіювали і не відмовилася працювати найнесподіванішим способом починаючи від відмови завантажуватися до припинення реагування на призначений для користувача введення через якийсь час після здавалося б успішного завантаження.
Запускаємо regedt32 з командного рядка і стираємо геть весь вміст
Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ MountedDevices
утискувати розділ
NTFS розділ був другим і останнім. Для початку запускаємо ntfsresize "в суху", щоб нічого реально на диску не робив і поскаржився, якщо що пішло не так:
ntfsresize -n -s 150G / dev / sdX2
Якщо все пройшло нормально - тепер можна зменшувати розділ:
ntfsresize -s 150G / dev / sdX2
Роздмухуємо розділ на весь диск - fdisk
сміливо видаляємо розділ і створюємо новий, більшого розміру, тобто номер останнього сектора можна залишити за замовчуванням - розділ буде займати весь диск.
Роздмухуємо розділ на весь диск - ntfsresize
ntfsresize -f -n / dev / sdX2
ntfsresize -f / dev / sdX2
Підключаємо, завантажуємо
Checking filesystem on C: