Chi tiết hệ thống làm việc cơ bản:
Tôi đã sử dụng CD máy chủ Ubuntu 12.04 để cài đặt máy chủ.
Tôi có 4 đĩa. Trên tất cả các đĩa tôi đã làm như sau, tương tự như cách này :
- đã tạo phân vùng trao đổi 2GB
- đã tạo phân vùng 256 GB / khởi động
- đã tạo phân vùng RAID10 64 GB (cho root)
- đã tạo một phân vùng RAID10 lớn chiếm phần còn lại của không gian
Tôi định dạng boot là ext3. Tôi thiết lập RAID10 trên các phân vùng gốc và lớn. Tôi định dạng gốc một ext4. Tôi đã tạo ra một khối lượng logic trên cái lớn và định dạng nó ext4.
Hệ thống kết quả hoạt động tốt, và khởi động tốt.
Chi tiết vấn đề:
Sau đó, tôi quyết định làm tài liệu cho một thủ tục thất bại. Bước đầu tiên, tôi quyết định sẽ cài đặt lại grub.
# grub-install /dev/sda
warn: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!.
error: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
# grub-install /dev/sdb
warn: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!.
error: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Vì vậy, có vẻ như nó đã thất bại, nhưng cũng có vẻ như nó đã từ bỏ và không thực hiện thay đổi. Thế là tôi khởi động lại. Việc khởi động thất bại. Nó chỉ bị treo với một màn hình đen với một con trỏ nhấp nháy xuống khoảng 4 dòng. Nếu tôi khởi động giữ "Shift", tôi sẽ thấy từ "GRUB" ở bên trái con trỏ, nhưng không có dấu nhắc tương tác.
Tại thời điểm này, tôi đã sử dụng boot-Repair-đĩa để tạo báo cáo này: http : //paste.ub Ubuntu.com/966531/
Lưu ý trong báo cáo trên, nó nói rằng bộ nạp khởi động không trỏ đến đúng sector cho core.img. (sda là đĩa CD ảo
Sau đó, tôi khởi động từ CD máy chủ Ubuntu, khởi động hệ thống cứu hộ và đưa ra các lệnh sau, đã hoàn thành mà không gặp lỗi (trong đó sda là CD ảo và b, c, d, e là các đĩa là a, b, c , d trong các lệnh grub trước đó):
# parted /dev/sdb set 2 bios_grub on
# parted /dev/sdc set 2 bios_grub on
# grub-install /dev/sdb
# grub-install /dev/sdc
Tại thời điểm này, tôi đã sử dụng boot-Repair-đĩa để tạo báo cáo này: http://paste.ubfox.com/966561/
Lưu ý rằng trong báo cáo trên, vấn đề về core.img đã biến mất. Nó dường như chỉ đến đúng khu vực.
Bây giờ nếu tôi cố gắng khởi động, tôi nhận được một dấu nhắc grub. Nếu tôi chạy "set", tôi thấy root đó được tìm thấy và thiết lập. Nếu tôi chạy "ls /", tôi thấy thư mục gốc của mình từ khối lượng đột kích, bao gồm cả tệp nhân vmlinuz. Nếu tôi gõ "ls / vmlinuz" thì nó báo "lỗi: không tìm thấy tệp." Nó báo lỗi tương tự nếu tôi sử dụng lệnh "linux" để thử tải kernel. Tệp vmlinuz không được liệt kê nếu tôi sử dụng "ls -l /".
Chi tiết quá dài dòng, trong trường hợp bạn muốn theo dõi:
Tôi nhận thấy cũng không có /boot/grub/grub.cfg, vì vậy tôi đã chạy
# grub-mkconfig -o /boot/grub/grub.cfg
Nhưng vấn đề vẫn còn.
Nếu tôi sử dụng công cụ "gptsync", sẽ không có thay đổi nào trong hành vi này.
Đĩa khởi động-sửa chữa sẽ không sửa chữa hệ thống, vì nó muốn tôi khởi động với một bios được kích hoạt EFI. Tôi thoáng nhìn vào điều này, nhưng tôi không biết nó hoạt động như thế nào. Tôi đã tìm thấy trình bao UEFI trong các tùy chọn khởi động của mình, nhưng tôi không biết gì về nó và không thấy cách thay đổi khởi động từ đó (ví dụ: để khởi động CD từ trình bao EFI đó).
Tôi cũng đã đọc trang này , nhưng Ubuntu không đi kèm với lệnh "grub", vì vậy tôi không thể theo dõi chính xác. Tôi chỉ có thể cài đặt lệnh đó, nhưng tôi tò mò hơn để tìm hiểu cách trình cài đặt Ubuntu quản lý để cài đặt nó thay vì có một thiết lập khác. Nó đã sử dụng danh sách chặn?
Đây là đầu ra của parted, trong khi khởi động trên đĩa boot-sửa chữa (trong đó sdb là đĩa cứng đầu tiên, sda khi được khởi động từ đĩa và "boot" thay đổi thành "bios_grub" trong liên kết dán thứ 2):
Model: ATA Hitachi HUA72303 (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 2000MB 2000MB linux-swap(v1) swap1
2 2000MB 2256MB 256MB ext3 boot1 boot (this says bios_grub in 2nd link)
3 2256MB 66.3GB 64.0GB root1 raid
4 66.3GB 3001GB 2934GB data1 raid
Dưới đây là một máy ảo siêu cũ không liên quan để so sánh (đối với bất kỳ ai không quen với boot-Repair-đĩa ): http : //paste.ub Ubuntu.com/966799/
Đây là lần dán mới nhất từ hệ thống sự cố, sau khi chạy grub-mkconfig ở trên và cũng đặt "bios_grub" trở lại "boot". http://paste.ubfox.com/966808/
So sánh hai, điều này có vẻ thú vị:
sdb2: __________________________________________________________________________
File system:
Boot sector type: Grub2's core.img
Boot sector info:
Mounting failed: mount: unknown filesystem type ''
md/bcserver8:0: ________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System: Ubuntu 12.04 LTS
Boot files: /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img
Có vẻ như cuộc đột kích có các tệp khởi động và sdb2 không được định dạng. (mặc dù vậy, hệ thống đã khởi động trước khi chạy grub-install). Từ đĩa CD cứu hộ, "mount -t ext3 / dev / sdb2 / boot" không thành công. Nhưng điều này có nghĩa là điều này sẽ gây nhầm lẫn cho mọi thứ, vì grub sử dụng phân vùng 2 một cách rõ ràng (2 trong lệnh chia tay đã đặt bios_grub trên).
Vì vậy, tôi đã làm một cái gì đó như thế này:
# mkfs.ext3 -L boot1 /dev/sdb2
# mv boot boot_on_root
# mkdir boot
# mount /dev/sdb2 boot
# rsync -avHP boot_on_root/ boot/
# parted /dev/sdb set 2 bios_grub on
# parted /dev/sdc set 2 bios_grub on
# grub-install /dev/sdb
# grub-install /dev/sdc
Sau đó khởi động lại, và tôi có màn hình đen một lần nữa, không có dấu nhắc. http://paste.ubfox.com/966848/
Vì vậy, tại thời điểm này, tôi đoán là khi bios_grub được thiết lập, grub không cài đặt vào MBR và không cài đặt hệ thống tệp ext3 trên ext3, nhưng trên chính phân vùng, như thể đó là EFI ... rõ ràng sẽ gây rối lên hệ thống tập tin ext3 đó. Từ bài đọc ngắn gọn của tôi về EFI, có vẻ như EFI giả định phân vùng đầu tiên là khởi động, nhưng trong trường hợp của tôi, đầu tiên là trao đổi, và sau đó nó phải là FAT chứ không phải là một thứ gì đó không thể đếm được ... ý nghĩa, tôi vẫn hoàn toàn bị mất mà không có manh mối. [EDIT: bây giờ tôi có manh mối ... bỏ qua một chút để cập nhật]
Và bây giờ khi tôi nhấp vào sửa chữa trong boot-Repair-đĩa , nó sẽ hỏi một cái gì đó khác. Lần trước lỗi đã bị ẩn dưới cửa sổ và tôi phải kéo người kia đi để xem. Lần này, cửa sổ chính không còn nữa và cửa sổ mới cho biết:
GPT detected. You may want to retry after creating a
BIOS-Boot partition (>1Mo, flag). Do you want to continue?
Vì vậy, tôi đã nhấp vào có, và nó nói rằng nó đã được sửa chữa thành công và tạo ra một dán khác: http : //paste.ub Ubuntu.com/966862/
Nhưng tôi vẫn có một màn hình đen với một con trỏ nhấp nháy.
Bây giờ lý thuyết của tôi là boot đã bị ghi đè bởi một thứ không phải là EFI không béo, vốn chỉ là mã grub mà trước đây có trong các ngành 0-63. Tôi may mắn gặp được một tuyên bố rất rõ ràng trên trang này, có lẽ đã hoàn thành sự hiểu biết của tôi về tất cả những điều này có nghĩa là gì. Và sau khi tôi tìm thấy điều đó, Jeremy đã đăng một câu trả lời mà nếu đúng, xác nhận rằng đây là khái niệm quan trọng còn thiếu. http://blog.psych0tik.net/2011/08/grub-embpping-blocklists-and-bios_grub-partitions/
Câu hỏi:
Chuyện gì đang xảy ra vậy? Tại sao grub không khởi động được? Tại sao nó nói "không tìm thấy tập tin"?
Tại sao grub không muốn cài đặt mà không có cài đặt này mà tôi đã đặt với parted (không được cài đặt bởi trình cài đặt Ubuntu)? Tôi nghĩ rằng tất cả những gì tôi cần để cài đặt nó là một boot / boot riêng biệt không có trong LVM hay RAID phần mềm, vì root của tôi nằm trong RAID và bảng phân vùng là GPT.
Làm thế nào để trình cài đặt Ubuntu CD cài đặt nó mà không gặp sự cố này và không có cài đặt bios_grub?
Tôi cũng sẽ xem xét sử dụng EFI. Nếu đây là một ý tưởng tốt, và có một cách tiêu chuẩn để thiết lập nó, tôi luôn sẵn sàng học hỏi những điều mới.
Câu trả lời nhanh nhất sẽ khiến tôi hài lòng, thậm chí không trả lời tất cả các câu hỏi của tôi, sẽ là một bộ lệnh mà tôi có thể chạy từ đĩa CD cứu hộ để sửa bộ tải khởi động theo cách tương tự như đĩa CD cài đặt đã làm. Sẽ rất tuyệt nếu tôi có thể chạy chúng với hệ thống khởi động, thay vì CD.