Computer >> Máy Tính >  >> Phần cứng >> Phần cứng

Giải pháp cài đặt cho BIOS chỉ đọc - khởi động GRUB2 ISO

Vài tháng trước, cuối cùng tôi cũng giải quyết được câu chuyện chỉ đọc trên máy tính xách tay Lenovo G50 của mình. Bạn có thể đọc về vấn đề ban đầu và sau đó là nỗ lực giải quyết đầu tiên của tôi, và cuối cùng, khi vấn đề thực sự trở nên phổ biến do lỗi trình điều khiển Ubuntu 17.10, giải pháp thực sự xuất hiện dưới dạng bản cập nhật kernel và từ đó trở đi, tôi đã có UEFI của tôi hoạt động bình thường trở lại. Điều buồn cười là, đây là một vấn đề lớn hơn nhiều, và không chỉ giới hạn ở Ubuntu, nhưng nó đã bị bỏ qua một cách tình cờ trong một thời gian dài.

Bây giờ, trong khi chờ bản sửa lỗi được tạo - không biết bao giờ mới có bản sửa lỗi, tôi đã cố gắng tìm cách để các hệ điều hành mới khởi động trên máy Lenovo. Như tôi đã đề cập, truy cập đĩa thô thông qua VirtualBox là một. Một phương pháp khác, ít rủi ro hơn nhưng cũng kém hiệu quả hơn là:GRUB2 ISOBoot. Chúng ta sẽ thảo luận về vấn đề đó ngay bây giờ, vì có thể sẽ đến một ngày bạn có thể gặp phải (hoặc vẫn đang gặp phải) sự cố chỉ đọc BIOS/UEFI NVRAM và cần một cách để giải quyết vấn đề đó cũng như không có bản cập nhật kernel nào và các bản cập nhật như vậy. Chúng ta hãy tiếp tục.

Khởi động

Khả năng khởi động trực tiếp từ các tệp ISO là một tính năng mới của bộ tải khởi động GRUB2 và bây giờ chúng ta sẽ khai thác nó để giải quyết vấn đề thực tế là chúng ta không thể thực sự sử dụng phương tiện di động trên máy tính xách tay. Tài liệu về việc sử dụng khả năng này hơi khan hiếm, và như mọi khi và khá đúng, thiên về Ubuntu, điều này có ý nghĩa, vì đây là bản phân phối Linux phổ biến nhất hiện có. Tuy nhiên.

Dù sao, trước tiên, vui lòng đọc hướng dẫn GRUB2 của tôi để làm quen với bộ tải khởi động và cách thức hoạt động của nó. Nếu không có kiến ​​thức đó, bạn sẽ không thể thực hiện các đề xuất được viết trong bài viết này.

Nhập menu thủ công

Tôi tin vào việc thử nghiệm mọi thứ trước khi tự động hóa hoặc sử dụng các công cụ trợ giúp, bởi vì theo cách này, bạn sẽ có thể hiểu điều gì đang xảy ra. đằng sau hậu trường. Ý tưởng cơ bản như sau - bạn cần tạo tập lệnh GRUB2 tùy chỉnh - hoặc bạn có thể sử dụng mẫu có sẵn, trỏ nó tới tệp ISO có liên quan trên một trong các phân vùng trên đĩa, gắn ISO làm thiết bị lặp lại, rồi khởi động nhân có sẵn và tệp initrd/initramfs.

Chúng tôi sẽ sử dụng tập lệnh 40_custom, có sẵn trong /etc/grub.d. Theo mặc định, tệp trống và chỉ liệt kê những nội dung sau:

#!/bin/sh
exec tail -n +3 $0
# Tệp này cung cấp một cách dễ dàng để thêm các mục menu tùy chỉnh. Chỉ cần nhập
# mục menu bạn muốn thêm sau nhận xét này. Hãy cẩn thận để không thay đổi
# dòng 'exec tail' ở trên.

Bây giờ, hãy tạo một mục nhập và xem những gì mang lại:

#!/bin/sh
exec tail -n +3 $0
# Tệp này cung cấp một cách dễ dàng để thêm các mục menu tùy chỉnh.
# Chỉ cần nhập các mục menu bạn muốn thêm sau
# nhận xét này. Hãy cẩn thận để không thay đổi dòng 'exec tail' ở trên.

menuentry "" { <br /> set root=(<disk>,<partition>) <br /> set isoname="<iso file name>" <br /> set isofile="<path>${isoname}.iso" <br /> loopback loop $isofile <br /> linux (loop)<vmlinuz> <boot options> <br /> initrd (loop)<initrd> <br />}</P> <h3>Chúng ta có gì ở đây?</h3> <p> Chúng ta hãy xem kịch bản của chúng ta, phải không?</P> <ul> <li>Dòng đầu tiên - tiêu đề - chỉ định tiêu đề của mục khởi động cụ thể.</li> <li>Tiếp theo, chúng ta đặt thư mục gốc. Điều này sẽ cho GRUB biết phân vùng nào sẽ tìm kiếm các đường dẫn cụ thể được liệt kê sau trong tập lệnh. Xin lưu ý rằng GRUB2 sử dụng ký hiệu hơi khác so với GRUB kế thừa và số phân vùng bắt đầu bằng 1 chứ không phải 0.</li> <li>Chỉ thị thứ ba - isoname - chỉ định tên của tệp ISO đã tải xuống.</li> <li>Dòng thứ tư trỏ đến đường dẫn đầy đủ của vị trí của tệp ISO. Chúng tôi kết hợp dòng sử dụng tên của tệp ISO và hậu tố .iso.</li> <li>Hướng dẫn tiếp theo yêu cầu bộ tải khởi động gắn tệp ISO dưới dạng thiết bị lặp lại.</li> <li>Bây giờ, chúng tôi tải kernel - mục linux sẽ đọc linuxefi trên các hệ thống UEFI. Sau đó, chúng tôi có một số tùy chọn khởi động bắt buộc khác, điều này (đáng buồn thay) sẽ khác nhau giữa các bản phân phối này với bản phân phối khác. Cuối cùng, chúng tôi làm tương tự với initrd (một lần nữa initrdefi cho các hệ thống UEFI). <br /></li> </ul> <h3>Vấn đề...</h3> <p> Vấn đề với cách tiếp cận này là gần như mọi bản phân phối hiện có đều sử dụng phương thức riêng của nó để khởi động vào phiên trực tiếp, bao gồm hệ thống tệp lớp phủ, tùy chọn khởi động, v.v. Không có một cách duy nhất và đơn giản nào để khởi động bất kỳ mục nhập chung nào. Một lần nữa, nếu bạn xem xét các ví dụ có sẵn, bạn sẽ thấy rất nhiều sự khác biệt và phân mảnh trong không gian này - giống như bất kỳ khía cạnh nào khác của máy tính để bàn Linux.</P> <h3>Thử nghiệm Fedora</h3> <p> Tôi quyết định thử nghiệm với Fedora, vì ví dụ Ubuntu thực sự tầm thường. Đọc trực tuyến, tôi đã tìm thấy ít nhất một chục tài liệu tham khảo về họ F18-F27, mỗi tài liệu được liệt kê hơi khác nhau. Quy ước chung thu hẹp lại, nhiều hay ít:</P> <p> menuentry "Fedora Live" --class fedora { <br /> set root='hd0,msdos8' <br /> set isofile="/home/roger/Downloads/ <br /> Fedora-Workstation-Live-x86_64-27 -1.6.iso" <br /> vòng lặp lặp lại $isofile <br /> linux (vòng lặp)/isolinux/vmlinuz0 iso-scan/filename=${isofile} <br /> root=live:CDLABEL=Fedora-Live rootfstype=auto ro rd.live.image <br /> silent rhgb rd.luks=0 rd.md=0 rd.dm=0 <br /> initrd (loop)/isolinux/initrd0.img <br />}</P> <p> Tôi đã sử dụng ví dụ Fedora 27 mới nhất và hệ thống khởi động kép với tệp ISO nằm trên phân vùng thứ tám (sda8). Sau khi bạn thêm phần này vào tập lệnh tùy chỉnh, bước tiếp theo là cập nhật menu GRUB. Sau đó kiểm tra và xác minh rằng tệp cấu hình GRUB đã tạo thực sự chứa mục nhập của bạn.</P> <p> Thử nghiệm này không hoạt động - cũng như bất kỳ biến thể nào khác. Tôi cũng đã sử dụng UUID thay cho ký hiệu đĩa và phân vùng, đã thử chèn nhiều mô-đun khác nhau và không mô-đun nào trong số này cho phép khởi động đơn giản và liền mạch một tệp ISO không phải Ubuntu.</P> <h2>Phương pháp không thủ công:grml</h2> <p> Một cách tiếp cận dễ dàng hơn nhiều là sử dụng công cụ trợ giúp sẽ tự động thêm mục nhập cho bất kỳ tệp ISO nào được tìm thấy trong /boot/grml. Cài đặt chương trình - sudo apt-get install grml, sao chép các tệp ISO có liên quan rồi chạy lệnh cập nhật GRUB.</P> <p> <img loading='lazy' alt='Giải pháp cài đặt cho BIOS chỉ đọc - khởi động GRUB2 ISO' src="/article/uploadfiles/202212/2022120614492594.png" /></P> <p> Với phương pháp này, tôi đã có nhiều kết quả khác nhau - một số bản phân phối sẽ khởi động được, một số khác thì không. Một lần nữa, khi nhìn vào tệp grub.cfg được tạo, dường như không có một quy ước chung, đơn giản nào về kết quả đầu ra sẽ như thế nào. Có thể cho rằng, mặc dù an toàn hơn so với việc sử dụng quyền truy cập đĩa thô trong VirtualBox, nhưng như tôi đã chỉ cho bạn trong bài viết đầu tiên của mình về chủ đề này, phương pháp ISOBoot ít có khả năng hoạt động hơn trong mọi trường hợp.</P> <h2>Các cách giải quyết khác</h2> <p> Không hoàn toàn liên quan đến GRUB2 ISOBoot, nhưng có một vài công cụ khác mà bạn có thể muốn xem xét. Một số công cụ này là đề xuất từ ​​độc giả của tôi và tôi muốn cảm ơn họ vì sự giúp đỡ và đóng góp chân thành của họ khi họ cố gắng hỗ trợ tôi sửa máy tính xách tay của mình.</P> <p> Khuyến nghị chính thức của Lenovo là thay thế bo mạch chủ. Điều này sẽ hiệu quả và bạn có thể muốn thử điều đó - nhưng chỉ sau khi sử dụng hết tất cả các giải pháp dựa trên phần mềm. Chúng rẻ hơn và bạn luôn có thể quay lại với phần cứng. Và như chúng ta đã thấy, một bản cập nhật kernel đã giúp ích, vì vậy sẽ rất lãng phí nếu chỉ thay thế bo mạch chủ (đó luôn là một lựa chọn và nên là lựa chọn cuối cùng).</P> <p> Một đề xuất phần cứng khác (hơi chuyên nghiệp) là cố gắng flash hình ảnh UEFI sạch trực tiếp lên chip của máy tính xách tay, sử dụng bộ lập trình USB SPI được hỗ trợ bởi công cụ flashrom. Tôi chưa thử điều này, nhưng đây là điều bạn có thể cân nhắc, nếu bạn cực kỳ táo bạo và hiểu biết.</P> Một bài học nhỏ của câu chuyện này là chờ đợi là điều tốt. Trong trường hợp của tôi, tôi đã kiên nhẫn chờ đợi khoảng bốn tháng. Tôi không vội vung tiền sửa chữa phần cứng hay mua một chiếc máy tính xách tay mới. Tuy nhiên, tôi hiểu rằng trong một số tình huống, bạn có thể không có lựa chọn nào khác. <p> Các tùy chọn khác, theo thứ tự ưu tiên giảm dần phải là:1) Flash phần sụn BIOS/UEFI nếu có 2) Việc sử dụng trình quản lý khởi động rEFInd, để thay thế cho GRUB; với một chút hack (điều mà chúng ta có thể khám phá chi tiết hơn vào một ngày nào đó), bạn có thể giải quyết thành công các hạn chế hiện có do BIOS/UEFI chỉ đọc áp đặt 3) Một số chương trình quản lý UEFI khác như EasyUEFI 4) một cuốn sách cầu nguyện, mà đối với hầu hết các chuyên viên máy tính sẽ là sách hướng dẫn sử dụng Python.</P> <p> Hãy thảo luận về điểm thứ hai đến điểm cuối cùng chi tiết hơn một chút. Đây là chương trình dựa trên Windows và chương trình này có thể được sử dụng để quản lý bộ nạp khởi động EFI, bao gồm bật/tắt các mục nhập, thay đổi thứ tự các mục nhập được liệt kê và dọn dẹp các mục bị vô hiệu hóa.</P> <p> <img loading='lazy' alt='Giải pháp cài đặt cho BIOS chỉ đọc - khởi động GRUB2 ISO' src="/article/uploadfiles/202212/2022120614492596.png" /></P> <p> <img loading='lazy' alt='Giải pháp cài đặt cho BIOS chỉ đọc - khởi động GRUB2 ISO' src="/article/uploadfiles/202212/2022120614492515.png" /></P> <p> Lệnh dọn dẹp này có thể giúp bạn hợp tác với NVRAM của mình (có thể). In the main menu, try to disable one of the entries, or if you already have some in the disabled state, then you can try the cleanup option. In my case, this did not work. The tool threw a system API error, which is probably not that different from the interrupted system call issue we saw in my initial report on the problem. Don't get your hopes too high, but it might work for you better than it did for me.</P> <p> <img loading='lazy' alt='Giải pháp cài đặt cho BIOS chỉ đọc - khởi động GRUB2 ISO' src="/article/uploadfiles/202212/2022120614492505.png" /> </P> I would like to thank aigle, Ivan, L., Neal, Marcin, Richard, Nik, Floris, zloster, Georg, and Matthew for their suggestions, ideas, encouragement through the adventure. Since the problem has been resolved, I won't be able to continue any additional tools or ways to resolve the issue, and with what you have above, plus the kernel update, plus the VirtualBox raw disk access, you should be okay. <br /> <h2>Kết luận</h2> <p> When you're facing an odd hardware situation, like we have here, there are no guarantees. In the first workaround article, I mentioned VirtualBox and raw disk access. This is bound to work, but the risks are quite high. A less intrusive method is to try to boot from ISO files using GRUB2, our topic today. My testing shows this is a much less successful and effective way, but it also carries less risk of damaging the data on the hard disk. Lastly, you could try some other tools, and we will explore some of those more in the future.</P> <p> For the time being, my suggestion is - if the kernel update does not work for you AND you do not really have to change the current setup AND it works for you well - let it be. For me, this was the matter of using eight operating systems, more than plenty for a test box, and I could still perform in-vivo upgrades, so it was all right waiting for the kernel fix. If you do want to try to be able to use additional operating systems without making any hardware repairs, then you have several workaround solutions and semi-solutions to consider. I wish I could give you a 100% foolproof 100% applicable recipe, but that is never the case in a war between software and hardware. Hãy cẩn thận.</P> <p> Chúc mừng.</P> <br> </article> <div class="ad5"> <script language='javascript' src='https://vn.wsxdn.com/css/ad/vn2.js'></script> </div> </section> <div id="turn-page" class="f-between"> <div class="page up f-align"> <i class="prev"></i> <section> <a class='LinkPrevArticle' href='https://vn.wsxdn.com/om033g/tr331l/1003151411.html' >Sách mỏng sắp ra mắt</a> </section> </div> <div class="page down f-align"> <section> <a class='LinkNextArticle' href='https://vn.wsxdn.com/om033g/tr331l/1003151413.html' >Điện thoại Aquaris E4.5 Ubuntu - Với Android</a> </section> <i class="next"></i> </div> </div> <section class="box4-l-list"> <div class="imgList f-between banner"> <ul class="f-between"> <li class="f-between f-align"><div> <a href="https://vn.wsxdn.com/qo032i/ge315y/1003151125.html" class="text r-over r-over-3" title="Trình xem LibreOffice dành cho Android">Trình xem LibreOffice dành cho Android</a> </div></li> <li class="f-between f-align"><div> <a href="https://vn.wsxdn.com/eb035w/yw332q/1003151248.html" class="text r-over r-over-3" title="Bản xem trước Firefox dành cho Android - Thú vị">Bản xem trước Firefox dành cho Android - Thú vị</a> </div></li> <li class="f-between f-align"><div> <a href="https://vn.wsxdn.com/om033g/tr331l/1003151398.html" class="text r-over r-over-3" title="Mobo ASUS, màn hình Dell, HDMI, không có menu BIOS, bật đèn trắng">Mobo ASUS, màn hình Dell, HDMI, không có menu BIOS, bật đèn trắng</a> </div></li> <li class="f-between f-align"><div> <a href="https://vn.wsxdn.com/om033g/tr331l/1003151412.html" class="text r-over r-over-3" title="Giải pháp cài đặt cho BIOS chỉ đọc - khởi động GRUB2 ISO">Giải pháp cài đặt cho BIOS chỉ đọc - khởi động GRUB2 ISO</a> </div></li> <li class="f-between f-align"><div> <a href="https://vn.wsxdn.com/om033g/tr331l/1003151467.html" class="text r-over r-over-3" title="Đủ phim UEFI rồi">Đủ phim UEFI rồi</a> </div></li> </ul> </div> </section> </section> <aside class="box-r box4-r"> <div class="articleList"> <em>Bài báo nổi tiếng</em> <ol> <li><a href="https://vn.wsxdn.com/om033g/wt322o/1003000952.html" class="t-over" title="CMOS là gì và nó dùng để làm gì?">CMOS là gì và nó dùng để làm gì?</a></li> <li><a href="https://vn.wsxdn.com/ec031w/zx314s/1003011691.html" class="t-over" title="Câu hỏi:Tệp ISO cho Windows 10 là gì?">Câu hỏi:Tệp ISO cho Windows 10 là gì?</a></li> <li><a href="https://vn.wsxdn.com/fd034x/vt361n/1003090963.html" class="t-over" title="Tạo trình bao bọc chỉ đọc cho ArrayList trong C # ">Tạo trình bao bọc chỉ đọc cho ArrayList trong C # </a></li> <li><a href="https://vn.wsxdn.com/yw036q/ge342y/1003132719.html" class="t-over" title="Lỗi iTunes 7 - Giải quyết vấn đề cài đặt cho lỗi iTunes 7">Lỗi iTunes 7 - Giải quyết vấn đề cài đặt cho lỗi iTunes 7</a></li> <li><a href="https://vn.wsxdn.com/om033g/tr331l/1003151417.html" class="t-over" title="Giải pháp cài đặt cho UEFI NVRAM chỉ đọc">Giải pháp cài đặt cho UEFI NVRAM chỉ đọc</a></li> <li><a href="https://vn.wsxdn.com/om033g/tr331l/1003151446.html" class="t-over" title="Tôi đã thử DD-WRT lần đầu tiên!">Tôi đã thử DD-WRT lần đầu tiên!</a></li> <li><a href="https://vn.wsxdn.com/om033g/tr331l/1003151448.html" class="t-over" title="Những cách sử dụng không bình thường đối với Samsung Galaxy S4">Những cách sử dụng không bình thường đối với Samsung Galaxy S4</a></li> <li><a href="https://vn.wsxdn.com/om033g/tr331l/1003151471.html" class="t-over" title="Hộp thử nghiệm mới của tôi dành cho Linux">Hộp thử nghiệm mới của tôi dành cho Linux</a></li> </ol> </div> <section> <strong class="list-title"> <p>Máy Tính</p> <span></span> </strong> <ol class="texts"> <li> <a href="https://vn.wsxdn.com/ec031w/zx314s/1003038379.html" class="t-title"><strong class="r-over r-over-2">Cách cập nhật BIOS cho Windows 10, 8, 7 </strong></a> </li> <li> <a href="https://vn.wsxdn.com/ec031w/nl334g/1003086389.html" class="t-title"><strong class="r-over r-over-2">Cách cập nhật phương tiện cài đặt Windows ISO để thiết lập nhanh chóng </strong></a> </li> <li> <a href="https://vn.wsxdn.com/qo032i/ge315y/1003100554.html" class="t-title"><strong class="r-over r-over-2">Tạo vị trí cài đặt mẫu tùy chỉnh cho Office </strong></a> </li> <li> <a href="https://vn.wsxdn.com/mj037e/bz376t/1003108929.html" class="t-title"><strong class="r-over r-over-2">Tổng quan &Cài đặt:rEFIt - một trình quản lý khởi động OS X </strong></a> </li> <li> <a href="https://vn.wsxdn.com/ec031w/zx314s/1003114485.html" class="t-title"><strong class="r-over r-over-2">Máy tính Windows 11/10 không thể khởi động vào BIOS </strong></a> </li> <li> <a href="https://vn.wsxdn.com/ec031w/zx314s/1003115452.html" class="t-title"><strong class="r-over r-over-2">Kiểm tra xem PC của bạn sử dụng UEFI hay BIOS </strong></a> </li> </ol> </section> <ul class="typeList container f-start box4-typeList"> <li><a class='childclass' href='https://vn.wsxdn.com/om033g/sq319k/' target="_self">Bàn phím &Chuột</a></li> <li><a class='childclass' href='https://vn.wsxdn.com/om033g/ge320y/' target="_self">Màn hình</a></li> <li><a class='childclass' href='https://vn.wsxdn.com/om033g/lj321d/' target="_self">Thẻ mở rộng</a></li> <li><a class='childclass' href='https://vn.wsxdn.com/om033g/wt322o/' target="_self">HDD &SSD</a></li> <li><a class='childclass' href='https://vn.wsxdn.com/om033g/by323t/' target="_self">Máy in &Máy quét</a></li> <li><a class='childclass' href='https://vn.wsxdn.com/om033g/tr331l/' target="_self">Phần cứng</a></li> <li><a class='childclass' href='https://vn.wsxdn.com/om033g/us368m/' target="_self">CPU</a></li> <li><a class='childclass' href='https://vn.wsxdn.com/om033g/us369m/' target="_self">Đồ họa</a></li> <li><a class='childclass' href='https://vn.wsxdn.com/om033g/us370m/' target="_self">Bo mạch chủ</a></li> </ul> </aside> </section> <footer class="container"> <span class="container f-center"> Bản quyền © <a href="https://vn.wsxdn.com">https://vn.wsxdn.com</a> Đã đăng ký Bản quyền </span> </footer> </body> </html>