Di chuyển / khởi động và MBR sang một ổ đĩa mới


11

Tôi có một máy chủ CentOS 6 với hai ổ cứng. Ổ đĩa 3TB cũ của tôi đã gây ra cho tôi một số vấn đề vì vậy tôi đang chuyển mọi thứ sang một ổ đĩa mới. Bởi vì phân vùng của tôi //homeđược quản lý bởi LVM, nó dễ dàng di chuyển chúng sang ổ đĩa mới. Bây giờ tôi muốn chuyển qua /bootphân vùng của mình và MBR làm cho tất cả bắt đầu.

Tôi đã tải lên một đĩa CD trực tiếp và rsyncedqua /bootphân vùng của tôi đến phân vùng cùng kích thước trên ổ đĩa mới của tôi. Tôi cũng đã cố gắng sao chép MBR của mình bằng các lệnh sau:

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

Sau khi làm điều này, tôi khởi động lại, bảo BIOS của tôi không nhìn vào ổ cứng cũ trong chu kỳ khởi động và chỉ nhìn vào ổ đĩa mới nhưng tất cả những gì tôi kết thúc chỉ là một con trỏ nhấp nháy.

Tôi đã bỏ lỡ một bước ở đây? Hoặc có điều gì khác tôi cần phải làm để khởi động mọi thứ để tôi có thể loại bỏ hoàn toàn ổ đĩa cũ của mình không?

EDIT: Tôi bắt đầu nghĩ rằng rsync không phải là cách để sao chép phân vùng / boot từ ổ đĩa này sang ổ đĩa khác. Dựa trên hướng dẫn này , tôi đã thử sử dụng lệnh dump thay thế. Trong lệnh này, tôi đã sao chép phân vùng khởi động cũ, chưa được đếm sang phân vùng khởi động mới, trống, được gắn.

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

Tôi đang gặp lỗi grub 15 khi khởi động, tốt hơn con trỏ nhấp nháy nhưng tôi không biết đó có phải là giải pháp gần hơn không.


Tại sao không cài đặt grub trên ổ đĩa mới?
frostschutz

Mỗi lần tôi mệt mỏi khi chạy grub-install, tôi đã khởi động và chỉ nhận được một dấu nhắc grub.
Cloudkiller

Câu trả lời:


3

Nếu hai đĩa cứng có cùng kích thước (hoặc đĩa mới lớn hơn), tại sao bạn không sao chép đĩa cũ sang đĩa mới? I E

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

Bây giờ, nếu đĩa cứng mới lớn hơn, hãy thay đổi kích thước phân vùng bằng parted hoặc gparted. Tất cả điều này được thực hiện khởi động từ một đĩa CD / USB trực tiếp.


Chúng có kích thước khác nhau. 3tb chỉ là quá mức cần thiết cho máy chủ nên tôi chuyển xuống một raptor 1tb với hy vọng sẽ tăng thêm một chút tốc độ. Bất kể, nhân bản dường như không phải là vấn đề. Ít nhất là phần LVM di chuyển dễ dàng và nó xuất hiện phân vùng khởi động được sao chép hoàn toàn với kết xuất cuối cùng của tôi. Bây giờ tôi nghĩ vấn đề này bằng cách nào đó có liên quan đến grub của tôi hoặc MBR. Tôi nghĩ vấn đề là tôi không biết đủ về grub2 và cách nó tương tác với LVM để khắc phục nó.
Cloudkiller

sử dụng dd đang thực hiện một chút để sao chép bit là một cách cổ xưa để thực hiện di chuyển dữ liệu, đặc biệt là khi kích thước đĩa hiện nằm trong phạm vi terabyte và thường xuyên hơn không phải là lượng dữ liệu thực tế ít hơn 10gb trên đĩa; một bản cài đặt SUSE mới với rất nhiều thư viện được cài đặt chạy cho tôi khoảng 5 GB trên đĩa mà tôi nhập vào một tệp và sử dụng thẻ nhớ 8gb để di chuyển tệp tar đó, liên kết khởi động cho dù đó là EFI hay MBR chỉ chạy một vài MB.
ron

nếu bạn có thể sử dụng EFI hoặc UEFI chứ không phải BIOS và có phân vùng khởi động EFI thông qua GPT thay vì phân vùng khởi động MBR & dos, thì về cơ bản, mọi thứ chỉ đơn giản là định dạng phân vùng EFI là fat32 và sao chép qua vài MB tệp liên quan đó; mặt khác, đối với MBR, bạn phải không hiểu cách thức hoạt động của nó, sửa các địa chỉ trong đó liên quan đến đĩa mới, sau đó cài đặt MBR mới trên đĩa mới trong khu vực đầu tiên để BIOS có thể truy cập đúng cách; EFI là rất nhiều tốt hơn nếu phần cứng của bạn là EFI có khả năng
ron

và ELILO tốt hơn GRUB / GRUB2, quá nhiều thứ trong grub mà tôi không bao giờ sử dụng và chỉ làm phức tạp mọi thứ; một tập tin elilo.conf và bạn đã hoàn tất! nếu nó không khởi động chỉ một tệp để tìm và sửa
ron

4

Hóa ra, việc sử dụng rsync hoặc dump để sao chép phân vùng / boot đã gây ra sự cố. Dựa trên câu trả lời của erick ở trên, tôi đã khởi động CD trực tiếp vào chế độ cứu hộ và chạy các lệnh dd sau.

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

Tôi đã chạy hai dd đầu tiên một lần nữa chỉ để đảm bảo mọi thứ được sao chép chính xác và không bị hỏng với tất cả các thử nghiệm tôi đã thực hiện. Sau đó, tôi chạy dd thứ ba để sao chép phân vùng khởi động từ ổ đĩa cũ sang ổ đĩa mới. Sau đó tôi tắt máy, rút ​​ổ đĩa cũ ra và khởi động mà không gặp vấn đề gì với CentOS của tôi.

Chắc chắn đã có một số vấn đề gây ra bởi việc sử dụng kết xuất trên ổ đĩa được gắn khiến cho bản sao không hoạt động chính xác. Bất kể, dd đã làm gì. Cảm ơn sự giúp đỡ của mọi người.


đây là một ví dụ tốt về sự thiếu hiểu biết là phúc lạc vì nó đã hoạt động. Hãy tự hỏi CD cứu hộ đã làm gì để bạn khắc phục sự cố trong MBR? Có hai đĩa trong hệ thống cùng một lúc, cái nào là sda và sdb nào, và khi bạn loại bỏ đĩa cũ và chỉ có đĩa mới, điều đó có thay đổi và sau đó trở thành sda hay sdb không?
ron

tùy thuộc vào những gì bạn đang làm có thể không quan trọng, nhưng nói chung là tốt hơn để khởi động bằng hoặc xác định các đĩa bằng một số phương pháp duy nhất, chẳng hạn như id thiết bị hoặc UUID.
ron

sử dụng dd và MBR giống như sử dụng các điểm và bộ ngưng tụ trên động cơ thay vì đánh lửa điện tử bằng phun xăng điện tử (EFI) ... ý định chơi chữ ... và không sử dụng EFI vì nó không được hiểu đầy đủ.
ron

3

Thay vì dd, tôi đã xây dựng một khối lượng mới. Nhiều bước hơn, nhưng có thể khắc phục sự cố thay vì sao chép chúng. Tôi đã có một khởi động quá nhỏ / bị hỏng. Tôi cũng đã sử dụng cento7 với grub2. Vì vậy, hướng dẫn của tôi sẽ yêu cầu một số điều chỉnh hoặc nâng cấp lên grub2 như đề xuất của psusi. Tôi đã cố gắng lưu ý những thay đổi.

LƯU Ý: Khi tôi sử dụng "/ dev / sdx", tôi giả sử rằng bạn biết rằng "sdx" cần được thay đổi thành bất kỳ tên nào của đĩa / ổ đĩa mà bạn muốn là / boot.

  • Sử dụng fdisk (không phải cfdisk) để phân vùng với loại 83 (phần linux bình thường) và đánh dấu là có khả năng khởi động.
    • Lý do cho fdisk: cfdisk khởi động phân vùng quá sớm, không có chỗ cho bộ tải khởi động. Hãy nhớ rằng, bộ tải khởi động cần phải phù hợp trước phân vùng.
  • Tạo hệ thống tập tin trên phân vùng. Gia hạn [234], xfs. khác?.
  • Gắn kết tại / khởi động
  • Sao chép các tệp * .img từ cũ / boot qua / boot Ít nhất là các tệp bạn muốn giữ.
  • Tôi cũng đã sao chép các tập tin vmlinuz- * từ cũ / boot qua / boot, không chắc chắn nếu điều đó là cần thiết.
  • Chạy grub2-install / dev / sdx
    • Lưu ý 1: Nếu bạn đang sử dụng grub (chứ không phải grub2), tôi tin rằng lệnh chính xác là grub-install / dev / sdx
    • Lưu ý 2: Cái này cài đặt trước phân vùng mà chúng ta vừa định dạng, vì vậy KHÔNG chỉ vào / dev / sdx1!
  • Chạy grub2-mkconfig -o /boot/grub2/grub.cfg
  • Đừng quên cập nhật / etc / fstab cho / boot

tài liệu tham khảo: http : //www.oczt Technologyforum.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

Vấn đề là bạn không nên sử dụng ddđể sao chép MBR như thế. Bạn chỉ cần cài đặt lại grub trên ổ đĩa mới để có MBR được cập nhật chính xác . MBR chứa vị trí của tệp grub giai đoạn 2, đã thay đổi khi bạn khôi phục kết xuất.

Ngoài ra, bạn nên nâng cấp lên grub2 vì di sản grub đã không được duy trì trong nhiều năm và grub2 không yêu cầu phân vùng không phải lvm / boot.


Tôi đang sử dụng grub2, đó là những gì trình cài đặt CentOS 6 đưa vào đĩa của tôi. Ngoài ra, phân vùng không lvm / boot cũng là thiết lập mặc định do CentOS cung cấp. Tôi đã cố cài đặt lại grub2 nhiều lần trên ổ đĩa nhưng để nó hoạt động là điều khiến tôi lảng tránh.
Cloudkiller
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.