Computer >> 컴퓨터 >  >> 하드웨어 >> 하드웨어

읽기 전용 BIOS에 대한 설치 해결 방법 - GRUB2 ISO 부트

몇 달 전, 마침내 Lenovo G50 노트북에서 읽기 전용 문제를 해결했습니다. 원래 문제와 첫 번째 해결 시도에 대해 읽을 수 있으며 마지막으로 Ubuntu 17.10 드라이버 실패로 인해 문제가 실제로 대중화되면 실제 솔루션은 커널 업데이트의 형태로 나타났습니다. 내 UEFI가 다시 제대로 작동합니다. 재미있는 점은 이것이 훨씬 더 큰 문제이며 우분투에만 국한된 것이 아니라 오랫동안 아무렇지도 않게 무시되었다는 것입니다.

이제 수정 사항이 만들어지기를 기다리는 동안 - 수정 사항이 있을지는 모르겠지만 Lenovo 시스템에서 새 운영 체제를 부팅할 수 있는 방법을 찾으려고 노력했습니다. 내가 언급했듯이 VirtualBox를 통한 원시 디스크 액세스는 하나입니다. 다소 덜 위험하지만 다소 덜 효과적인 또 다른 방법은 GRUB2 ISOBoot입니다. BIOS/UEFI NVRAM 읽기 전용 문제에 직면할 수 있는(또는 여전히 있는) 날이 올 수 있고 이를 해결할 방법이 필요하며 사용 가능한 커널 업데이트 등이 없는 날이 올 수 있으므로 지금 논의하겠습니다. 계속 진행하겠습니다.

부팅

ISO 파일에서 직접 부팅하는 기능은 GRUB2 부트로더의 새로운 기능이며 이제 랩톱에서 이동식 미디어를 실제로 사용할 수 없다는 사실을 피하기 위해 이를 악용할 것입니다. 이 기능의 사용에 대한 문서는 다소 부족하고 항상 그렇듯이 우분투에 편향되어 있습니다. 이는 가장 널리 퍼진 Linux 배포판이기 때문에 의미가 있습니다. 여전히.

어쨌든 먼저 GRUB2 튜토리얼을 읽고 부트로더와 작동 방식에 익숙해지십시오. 이러한 지식이 없으면 이 문서에 작성된 제안을 구현할 수 없습니다.

수동 메뉴 입력

저는 도우미 도구를 자동화하거나 사용하기 전에 먼저 테스트하는 것이 좋다고 믿습니다. 이렇게 하면 무슨 일이 일어나고 있는지 이해할 수 있기 때문입니다. 무대 뒤에서. 기본 아이디어는 다음과 같습니다. 사용자 지정 GRUB2 스크립트를 만들어야 합니다. 또는 기존 템플릿을 사용하여 디스크의 파티션 중 하나에 있는 관련 ISO 파일을 가리키고 ISO를 루프백 장치로 마운트합니다. 그런 다음 사용 가능한 커널과 initrd/initramfs 파일을 부팅합니다.

/etc/grub.d에서 사용할 수 있는 40_custom 스크립트를 사용합니다. 기본적으로 파일은 비어 있으며 다음 항목만 나열됩니다.

#!/bin/sh
exec tail -n +3 $0
# 이 파일은 사용자 정의 메뉴 항목을 추가하는 쉬운 방법을 제공합니다. 이 설명 뒤에 추가할
# 메뉴 항목을 입력하기만 하면 됩니다.
# 위의 'exec tail' 줄을 변경하지 않도록 주의하세요.

이제 항목을 만들고 무엇을 주는지 봅시다:

#!/bin/sh
exec tail -n +3 $0
# 이 파일은 사용자 정의 메뉴 항목을 추가하는 쉬운 방법을 제공합니다.
# 이
# 주석 뒤에 추가할 메뉴 항목을 입력하기만 하면 됩니다. 위의 'exec tail' 행을 변경하지 않도록 주의하십시오.

menuentry "" { <br /> set root=(<disk>,<partition>) <br /> set isoname="<iso 파일 이름>" <br /> set isofile="<경로>${isoname}.iso" <br /> 루프백 루프 $isofile <br /> linux(루프)<vmlinuz> <부팅 옵션> <br /> initrd(루프)<initrd> <br />}</P> <h3>여기에 무엇이 있습니까?</h3> <p> 스크립트를 살펴볼까요?</P> <ul> <li>첫 번째 줄인 제목은 특정 부팅 항목의 제목을 지정합니다.</li> <li>다음으로 루트를 설정합니다. 이것은 스크립트의 뒷부분에 나열된 특정 경로를 찾을 파티션을 GRUB에 알려줍니다. GRUB2는 GRUB 레거시와 약간 다른 표기법을 사용하며 파티션 번호는 0이 아닌 1로 시작합니다.</li> <li>세 번째 명령인 isoname은 다운로드한 ISO 파일의 이름을 지정합니다.</li> <li>네 번째 줄은 ISO 파일 위치의 전체 경로를 가리킵니다. ISO 파일의 이름과 .iso 접미사를 사용하여 행을 결합합니다.</li> <li>다음 명령은 ISO 파일을 루프백 장치로 마운트하도록 부트로더에 지시합니다.</li> <li>이제 커널을 로드합니다. linux 항목은 UEFI 시스템에서 linuxefi를 읽어야 합니다. 그런 다음 배포판마다 (슬프게도) 다른 몇 가지 다른 필수 부팅 옵션이 있습니다. 마지막으로 initrd(UEFI 시스템의 경우 initrdefi)로 동일한 작업을 수행합니다. <br /></리> </ul> <h3>문제...</h3> <p> 이 접근 방식의 문제는 거의 모든 배포판이 자체 방법을 사용하여 오버레이 파일 시스템, 부팅 옵션 등을 포함하여 라이브 세션으로 부팅한다는 것입니다. 일반 항목을 부팅하는 단일하고 간단한 방법은 없습니다. 다시 말하지만, 사용 가능한 예를 보면 Linux 데스크톱의 다른 측면과 마찬가지로 이 공간에서 엄청난 양의 차이와 단편화를 볼 수 있습니다.</P> <h3>페도라 테스트</h3> <p> Ubuntu 예제는 정말 사소한 것이기 때문에 Fedora로 테스트하기로 결정했습니다. 온라인에서 F18-F27 제품군에 대해 최소 12개의 참조를 찾았는데, 각 항목은 조금씩 다르게 나열되었습니다. 일반적인 규칙은 다음과 같이 좁혀집니다.</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 /> 루프백 루프 $isofile <br /> linux (loop)/isolinux/vmlinuz0 iso-scan/filename=${isofile} <br /> root=live:CDLABEL=Fedora-Live rootfstype=auto ro rd.live.image <br /> quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 <br /> initrd(루프)/isolinux/initrd0.img <br />}</P> <p> 최신 Fedora 27 예제와 8번째 파티션(sda8)에 ISO 파일이 있는 이중 부팅 시스템을 사용했습니다. 이를 사용자 지정 스크립트에 추가하면 다음 단계는 GRUB 메뉴를 업데이트하는 것입니다. 그런 다음 생성된 GRUB 구성 파일에 항목이 실제로 포함되어 있는지 확인하고 확인하십시오.</P> <p> 이 테스트는 작동하지 않았으며 다른 수십 가지 변형도 마찬가지였습니다. 또한 디스크 및 파티션 표기법 대신 UUID를 사용하고 다양한 모듈을 삽입하려고 시도했지만 이들 중 어떤 것도 Ubuntu가 아닌 ISO 파일의 간단하고 원활한 부팅을 허용하지 않았습니다.</P> <h2>수동이 아닌 방법:grml</h2> <p> 훨씬 쉬운 방법은 /boot/grml 아래에 있는 모든 ISO 파일에 대한 항목을 자동으로 추가하는 도우미 도구를 사용하는 것입니다. 프로그램을 설치합니다 - sudo apt-get install grml, 관련 ISO 파일을 복사한 다음 GRUB 업데이트 명령을 실행합니다.</P> <p> <img loading='lazy' alt='읽기 전용 BIOS에 대한 설치 해결 방법 - GRUB2 ISO 부트' src="/article/uploadfiles/202212/2022120614492594.png" /> </P> <p> 이 방법을 사용하면 결과가 엇갈렸습니다. 일부 배포판은 부팅되고 다른 배포판은 부팅되지 않았습니다. 생성된 grub.cfg 파일을 다시 보면 출력이 어떻게 보여야 하는지에 대한 일반적이고 간단한 규칙이 없는 것 같습니다. 거의 틀림없이 VirtualBox에서 원시 디스크 액세스를 사용하는 것보다 안전하지만 이 주제에 대한 첫 번째 기사에서 보여 드린 것처럼 ISOBoot 방법은 모든 경우에 작동할 가능성이 적습니다.</P> <h2>기타 해결 방법</h2> <p> GRUB2 ISOBoot와 엄격하게 관련되지는 않지만 고려해야 할 몇 가지 다른 도구가 있습니다. 이러한 도구 중 일부는 독자들이 제안한 것입니다. 제 노트북을 수리하는 데 도움을 주려고 노력한 진정한 도움과 공헌에 감사드립니다.</P> <p> 공식 Lenovo 권장 사항은 마더보드를 교체하는 것입니다. 이것은 효과가 있고 시도하고 싶을 수도 있지만 모든 소프트웨어 기반 솔루션을 고갈시킨 후에만 가능합니다. 더 저렴하고 항상 하드웨어로 대체할 수 있습니다. 그리고 우리가 본 것처럼 커널 업데이트가 도움이 되었기 때문에 아직 마더보드를 교체하는 것은 돈 낭비일 것입니다(항상 선택 사항이므로 마지막이어야 합니다).</P> <p> 또 다른 (다소 고도로 전문적인) 하드웨어 제안은 플래시롬 도구에서 지원하는 USB SPI 프로그래머를 사용하여 깨끗한 UEFI 이미지를 랩톱 칩에 직접 플래시하는 것입니다. 나는 이것을 시도하지 않았지만 당신이 매우 대담하고 요령이 있다면 이것은 당신이 고려할 수 있는 것입니다.</P> 이 이야기의 하위 교훈은 기다리는 것이 좋다는 것입니다. 내 경우에는 약 4개월을 참을성 있게 기다렸다. 나는 하드웨어 수리에 돈을 쓰거나 새 노트북을 구입하지 않았습니다. 그러나 어떤 상황에서는 선택의 여지가 없을 수도 있음을 이해합니다. <p> 다른 옵션은 우선 순위가 내림차순으로 다음과 같아야 합니다. 1) 사용 가능한 경우 BIOS/UEFI 펌웨어 플래시 2) GRUB 대신 rEFInd 부팅 관리자 사용 약간의 해킹(언젠가 더 자세히 살펴볼 수 있는 것)을 사용하면 읽기 전용 BIOS/UEFI 3)에 의해 부과된 기존 제한 사항을 성공적으로 해결할 수 있습니다. EasyUEFI와 같은 여러 다른 UEFI 관리 프로그램 4) 대부분의 괴짜들에게 파이썬 매뉴얼이 될 기도서입니다.</P> <p> 마지막에서 두 번째 지점에 대해 좀 더 자세히 논의해 봅시다. 이것은 Windows 기반 프로그램이며 항목 활성화/비활성화, 나열된 항목 순서 변경 및 비활성화된 항목 정리를 포함하여 EFI 부트로더를 관리하는 데 사용할 수 있습니다.</P> <p> <img loading='lazy' alt='읽기 전용 BIOS에 대한 설치 해결 방법 - GRUB2 ISO 부트' src="/article/uploadfiles/202212/2022120614492596.png" /> </P> <p> <img loading='lazy' alt='읽기 전용 BIOS에 대한 설치 해결 방법 - GRUB2 ISO 부트' src="/article/uploadfiles/202212/2022120614492515.png" /> </P> <p> 이 정리 명령은 NVRAM이 협력하는 데 도움이 될 수 있습니다(아마도). 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='읽기 전용 BIOS에 대한 설치 해결 방법 - 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>결론</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. Take care.</P> <p> 건배.</P> <br> </article> <div class="ad5"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4480737146802772" crossorigin="anonymous"></script><!-- computer.wsxdn --><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4480737146802772" data-ad-slot="4467655591" data-ad-format="auto" data-full-width-responsive="true"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div id="turn-page" class="text-over"> <a class='LinkPrevArticle' href='https://kr.wsxdn.com/db023v/tr231l/1002151411.html' >슬림북 출시 예정</a> <a class='LinkNextArticle' href='https://kr.wsxdn.com/db023v/tr231l/1002151413.html' >Aquaris E4.5 Ubuntu 전화 - Android</a> </div> </section> <aside class="box-r box4-r"> <h3>하드웨어</h3> <ul> <li> <a href="https://kr.wsxdn.com/bz024t/ax261s/1002090963.html" class="f-start"> <em></em> <p class="r-over r-over-2" title="C#에서 ArrayList에 대한 읽기 전용 래퍼 만들기 ">C#에서 ArrayList에 대한 읽기 전용 래퍼 만들기 </p> </a> </li><li> <a href="https://kr.wsxdn.com/xv026q/rp242k/1002132719.html" class="f-start"> <em></em> <p class="r-over r-over-2" title="iTunes 오류 7 – iTunes 오류 7의 설치 문제 해결 ">iTunes 오류 7 – iTunes 오류 7의 설치 문제 해결</p> </a> </li><li> <a href="https://kr.wsxdn.com/db023v/tr231l/1002151417.html" class="f-start"> <em></em> <p class="r-over r-over-2" title="읽기 전용 UEFI NVRAM에 대한 설치 해결 방법 ">읽기 전용 UEFI NVRAM에 대한 설치 해결 방법</p> </a> </li><li> <a href="https://kr.wsxdn.com/db023v/tr231l/1002151446.html" class="f-start"> <em></em> <p class="r-over r-over-2" title="처음으로 DD-WRT를 시도했습니다! ">처음으로 DD-WRT를 시도했습니다!</p> </a> </li><li> <a href="https://kr.wsxdn.com/db023v/tr231l/1002151448.html" class="f-start"> <em></em> <p class="r-over r-over-2" title="Samsung Galaxy S4의 특이한 용도 ">Samsung Galaxy S4의 특이한 용도</p> </a> </li> </ul> <h3 class="h3-2">컴퓨터</h3> <ul> <li> <a href="https://kr.wsxdn.com/db023v/nl222f/1002000952.html" class="f-start"> <em></em> <p class="r-over r-over-2" title="CMOS란 무엇이며 무엇을 위한 것입니까? ">CMOS란 무엇이며 무엇을 위한 것입니까?</p> </a> </li> <li> <a href="https://kr.wsxdn.com/ki021c/yw214q/1002011691.html" class="f-start"> <em></em> <p class="r-over r-over-2" title="질문:Windows 10용 ISO 파일이란 무엇입니까? ">질문:Windows 10용 ISO 파일이란 무엇입니까?</p> </a> </li> <li> <a href="https://kr.wsxdn.com/ki021c/yw214q/1002038379.html" class="f-start"> <em></em> <p class="r-over r-over-2" title="Windows 10, 8, 7용 BIOS 업데이트 방법 ">Windows 10, 8, 7용 BIOS 업데이트 방법 </p> </a> </li> <li> <a href="https://kr.wsxdn.com/ki021c/mj234e/1002086389.html" class="f-start"> <em></em> <p class="r-over r-over-2" title="빠른 설치를 위해 Windows ISO 설치 미디어를 업데이트하는 방법 ">빠른 설치를 위해 Windows ISO 설치 미디어를 업데이트하는 방법 </p> </a> </li> <li> <a href="https://kr.wsxdn.com/db023v/tr231l/1002151471.html" class="f-start"> <em></em> <p class="r-over r-over-2" title="Linux용 새 테스트 상자 ">Linux용 새 테스트 상자</p> </a> </li> </ul> </aside> </section> </div> <ul class="types box4-1 container f-center"> <li><a class='childclass' href='https://kr.wsxdn.com/db023v/mk219e/' target="_self">키보드 및 마우스</a></li> <li><a class='childclass' href='https://kr.wsxdn.com/db023v/us220m/' target="_self">모니터</a></li> <li><a class='childclass' href='https://kr.wsxdn.com/db023v/ig221a/' target="_self">확장 카드</a></li> <li><a class='childclass' href='https://kr.wsxdn.com/db023v/nl222f/' target="_self">HDD 및 SSD</a></li> <li><a class='childclass' href='https://kr.wsxdn.com/db023v/lj223d/' target="_self">프린터 및 스캐너</a></li> <li><a class='childclass' href='https://kr.wsxdn.com/db023v/tr231l/' target="_self">하드웨어</a></li> <li><a class='childclass' href='https://kr.wsxdn.com/db023v/lj268d/' target="_self">CPU</a></li> <li><a class='childclass' href='https://kr.wsxdn.com/db023v/jh269b/' target="_self">제도법</a></li> <li><a class='childclass' href='https://kr.wsxdn.com/db023v/ay270s/' target="_self">메인보드</a></li> </ul> <footer> <section class="container"> <div class="footer-msg"> <span class="container f-center"> <p class=krf>저작권 © <a href="https://kr.wsxdn.com">https://kr.wsxdn.com</a> 모든 권리 보유</p> </span> </div> </section> </footer> </body> </html>