Переміщення / завантаження та MBR на новий диск


11

У мене є сервер CentOS 6 з двома жорсткими дисками. Мій старий накопичувач 3 ТБ задає мені деякі проблеми, тому я переходжу речі до нового диска. Оскільки мій /і /homeрозділ керуються LVM, їх було легко перенести на новий диск. Тепер я хочу перейти через свій /bootрозділ та MBR, який змушує його запуститися.

Я завантажив живий компакт-диск і rsyncedпереніс /bootрозділ на той самий розмір на новому диску. Я також спробував скопіювати свій MBR за допомогою таких команд:

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1

Після цього я перезавантажився, сказав моєму BIOS не дивитись на старий жорсткий диск під час циклу завантаження і лише дивитись на новий диск, але все, у чому я закінчився, - це миготливий курсор.

Я пропустив крок тут? Або є ще щось, що мені потрібно зробити, щоб речі завантажилися, щоб я міг повністю видалити старий диск?

EDIT: Я починаю вважати, що rsync був не способом копіювання розділу / boot з одного диска на інший. На основі цього посібника я намагався використовувати команду dump. У цій команді я скопіював свій старий, відключений розділ завантаження на новий, порожній, встановлений завантажувальний розділ.

dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -) 

У мене під час завантаження з’являється помилка 15, що краще, ніж миготливий курсор, але я не знаю, чи є це ближче до рішення.


Чому б не встановити grub на новий диск?
frostschutz

Кожен раз, коли я втомився виконувати встановлення grub, я закінчував завантаження та отримував лише підказку grub.
Cloudkiller

Відповіді:


3

Якщо два жорстких диска однакового розміру (або новий більше), чому ви просто не скопіювали старий диск на новий диск? Тобто

dd if=/dev/sda of=/dev/sdb

Тепер, якщо новий жорсткий диск більше, змініть розміри розділів на проділ або gparted. Все це було завантажено з живого CD / USB-флешки.


Вони різної величини. 3tb було просто надлишковим для сервера, тому я перейшов до раптора на 1 тб, сподіваючись отримати трохи більше швидкості. Незалежно від цього клонування, здається, не є проблемою. Принаймні, частина LVM легко перемістилася, і, здається, розділ завантаження повністю скопійований з мого останнього дампа. Зараз я думаю, що проблема якимось чином пов’язана з моєю грубкою або MBR. Я думаю, що проблема полягає в тому, що я не знаю достатньо про grub2 та як він взаємодіє з LVM, щоб виправити це.
Cloudkiller

використання дд, який робить трохи для розрядного копіювання, - стародавній спосіб перенесення даних, особливо коли розміри дисків зараз знаходяться в терабайтному діапазоні і частіше за все кількість фактичних даних менше 10 Гб на диску; чиста свіжа установка SUSE з безліччю встановлених бібліотек працює мені близько 5 Гб на диску, який я націлюю на один файл і використовую 8 Гбіт пам'яті, щоб перемістити цей файл tar, навколо завантажувального розділу будь то EFI або MBR працює лише кілька МБ.
ron

якщо ви можете використовувати EFI або UEFI, а не BIOS і маєте завантажувальний розділ EFI через GPT, а не розділ для завантаження MBR & dos, це полегшує роботу, в основному просто форматуйте розділ EFI як fat32 і скопіюйте через ці кілька МБ пов'язаних файлів; інакше для MBR вам доведеться не зрозуміти, як він працює, виправити адреси в ньому стосовно нового диска, а потім встановити новий MBR на новий диск у першому секторі, щоб BIOS міг правильно отримати доступ до нього; EFI набагато краще, якщо ваше обладнання може працювати з EFI
ron

і ELILO кращий за GRUB / GRUB2, надто багато в грубі, що я ніколи не використовую і просто ускладнює речі; один файл elilo.conf, і ви закінчили! якщо він не завантажує лише той файл, який слід шукати і виправляти
ron

4

Виявляється, використання rsync або dump для копіювання розділу / boot викликало проблему. Виходячи з відповіді erick вище, я завантажив живий компакт-диск в режим порятунку і запустив наступні команди dd.

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
dd if=/dev/sda1 of=/dev/sdb1

Перші два дд я запустив лише для того, щоб переконатися, що все було скопійовано правильно і не було пошкоджено всі тести, які я робив. Потім я запустив третій dd, щоб скопіювати завантажувальний розділ зі старого диска на мій новий. Після цього я вимкнувся, витяг старий накопичувач і без проблем завантажився у свій CentOS.

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


це хороший приклад незнання - це блаженство, оскільки воно працювало. Запитайте себе, що врятував компакт-диск для усунення проблеми в MBR? Маючи одночасно два диски в системі, який з них - sda, а який - sdb, і коли ви виймаєте старий диск і маєте лише новий диск, чи це змінюється, а потім стає sda чи sdb?
ron

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

використання DD та MBR - це як використання точок та конденсатора на двигуні, а не електронне запалювання з електронним впорскуванням палива (EFI) ... каламбур, призначений ..., а не використання EFI, оскільки це не повністю зрозуміло.
ron

3

Замість дд я створив новий том. Більше кроків, але може усунути проблеми, а не копіювати їх. У мене був занадто маленький / черевик, який зіпсувався. Я також використовував cento7 з grub2. Тому мої інструкції потребують певних коригувань або оновлення до grub2, як пропонував psusi. Я спробував зазначити зміни.

ПРИМІТКА. Коли я використовую "/ dev / sdx", я припускаю, що ви знаєте, що "sdx" потрібно змінити на будь-яку назву диска / об'єму, який ви хочете / завантажувати.

  • Використовуйте fdisk (не cfdisk) для розділу з типом 83 (звичайна частина Linux) та позначте як завантажувальний.
    • Причина fdisk: cfdisk запускає розділ занадто рано, у ньому немає місця для завантажувача. Пам’ятайте, що завантажувач повинен поміститися перед розділом.
  • Зробіть файлову систему на розділі. Ext [234], xfs. інші ?.
  • Монтувати в / завантажувати
  • Скопіюйте * .img файли зі старих / завантажувальних файлів у / boot… принаймні ті, які ви хочете зберегти.
  • Я також скопіював vmlinuz- * файли зі старого / завантаження в / boot ... не впевнений, що це потрібно.
  • Запустіть grub2-install / dev / sdx
    • Примітка 1: Якщо ви використовуєте grub (а не grub2), я вважаю, що правильною командою є grub-install / dev / sdx
    • Примітка 2: Це встановлюється перед розділом, який ми щойно відформатували, так що НЕ вказувати його на / dev / sdx1!
  • Запустити grub2-mkconfig -o /boot/grub2/grub.cfg
  • Не забудьте оновити / etc / fstab for / boot

посилання: http://www.ocztechnologyforum.com/fo...226#post373226 http://www.patriotmemory.com/forums/...ead.php?t=3696 http://thunk.org/tytso /blog/2009/02/...se-block-size/ https://ubuntuforums.org/showthread.php?t=1528529 https://wiki.centos.org/HowTos/Grub2


2

Проблема полягає в тому, що ви не повинні використовувати ddдля копіювання MBR так. Вам просто потрібно перевстановити grub на новому диску, щоб отримати коректно оновлений MBR. MBR містить розташування файлу grub 2 етап, який змінився, коли ви відновили дамп.

Також слід оновити до grub2, оскільки спадщина grub не підтримується роками, а grub2 не вимагає не lvm / boot-розділу.


Я використовую grub2, саме це встановив інсталятор CentOS 6 на мій диск. Крім того, розділ non lvm / boot також був налаштуванням за замовчуванням, передбаченим CentOS. Я багато разів намагався перевстановити grub2 на накопичувачі, але це стало тим, що мені ухилялось.
Cloudkiller
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.