UEFI引導的簡單恢復方法

来源:https://www.cnblogs.com/Nobel/archive/2019/03/03/10466064.html
-Advertisement-
Play Games

裝系統,尤其是雙系統,總是無法繞過引導的坑。linux的grub是非常複雜的引導系統,學習它非常累。而windows又不能引導linux。你可能會想,怎麼就沒有一種簡單的引導方式,就好像引導光碟,引導u盤那樣,插上去就能用呢?因為傳統的mbr引導設計得很小氣,所以多個系統都拼命爭奪那個小小的引導區域... ...


裝系統,尤其是雙系統,總是無法繞過引導的坑。

linux的grub是非常複雜的引導系統,學習它非常累。而windows又不能引導linux。你可能會想,怎麼就沒有一種簡單的引導方式,就好像引導光碟,引導u盤那樣,插上去就能用呢?

因為傳統的mbr引導設計得很小氣,所以多個系統都拼命爭奪那個小小的引導區域,而自己卻又不懂得引導對方,所以就相互傷害,相互覆蓋引導。但是,uefi橫空出世,比較好的解決了這個問題。

但是如果你不熟悉uefi的原理,那麼你會覺得這個uefi更加坑爹。電腦的東西,一定要先熟悉其原理,而不是渾水摸魚,隨便瞎搞,這樣是沒結果的。

uefi引導有兩個條件:

1.有個引導區,叫ESP。

2.每個分區都是gpt分區格式的。這個分區格式是指用了新的分區表。

uefi可以相容mbr傳統格式,但沒必要!舊的東西就是要被淘汰的。所以現在uefi的複雜性是因為相容mbr,如果不去相容,才能體現uefi的便利。

首先要在bios裡面關閉相容模式,csm 關了。安全啟動也關了。然後能選的都選uefi。

設好之後,才是純粹的uefi環境。

為什麼uefi 引導會比較方便呢?因為以前是所有操作系統,都爭奪一塊小區域,現在uefi直接給你一個引導分區,每個系統只要把引導文件按照規定放在各自的文件夾,就ok了,大家相互可以不認識,也可以不知道對方是誰,也可以不知道怎麼引導對方。這豈不是很完美?

esp就是這麼一個地方,它實際上是一個普通的fat16格式(或fat32)分區(win98之前的預設格式),這種格式,幾乎每個操作系統都認識,都能操作,所以就很便利。但是為了避免受到破壞,進入系統之後,系統會對其進行隱藏,所以要用特定的工具來訪問它。

知道原理之後,就很容易設計引導方案了。

事實上,對windows來說,引導只需要兩個文件,一個是引導程式,一個是配置文件。其中引導程式,只需要複製,而配置文件叫bcd,通過一個叫easybcd的工具可以配置。

當然,第一步你的硬碟必須先格式化為gpt格式的。但是如果你已經格式化了,也沒關係,可以通過diskgenius的免費軟體來轉換成gpt格式,操作得當不會破壞數據。

esp分區新建如下目錄結構:

efi/boot/

efi/microsoft/boot/

將windows系統裡面的bootmgfw.efi 複製到第二個路徑下,把配置好的bcd也複製過去。然後把bootmgfw.efi 複製一份,改名bootx64.efi複製到第一條路徑下。

就這麼簡單,甚至第二步也不是必須的。bootx64.efi這裡是電腦預設啟動的路徑,而microsoft下麵的,是微軟這個品牌的系統所使用的啟動路徑,如果bios足夠聰明,它會直接在microsoft下麵找引導程式.efi。

對於linux來說,同樣的,它也可以建立一個linux的文件夾,或者隨便什麼名字的文件夾,把引導文件放進去就可以了。

特別的,bios 內部的存儲區域還可以存儲相關的引導路徑信息(需要相關工具來設置這塊區域),方便用戶選擇。所以為何有些系統的引導文件佈局和以上有所不同。

除了esp分區,其他任何分區,都可以獨立的被引導,甚至可以跨設備引導,因為gpt用一個很長的標記標識所有設備,可以認為是無衝突,獨一無二的,因此理論上,不管引導文件存在那裡,從那裡開始引導,只要給出正確的設備號,都能找到對應的設備,從而進行正確的引導。因此,理論上當前設備esp有沒有,也不是關鍵,只要在某個設備上有,這個引導程式可以引導所有連接到硬體系統的設備。這也是uefi 和gpt分區系統真正強大的地方,真正做到了隨意引導,與位置無關。

比如我們可以把引導放在一個u盤裡面,然後插上這個u盤才能使用電腦,這也是挺有趣的實踐。不過我沒試過。大家可以嘗試一下。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我們常常為了一些軟體啟動的方便,將一些軟體的文件夾指定到系統的環境變數中,這樣就不需要到指定軟體的bin目錄,運行目錄下啟動(類似於JAVA,Python,Node等命令),直接Win+R、或者cmd直接就可以啟動,但是隨著一個個目錄的添加導致系統的環境變數超出了1024B,這時系統就會發出警告。 ...
  • 早在 20 世紀 70 年代,UNIX 系統是開源而且免費的。但是在 1979 年時,AT&T 公司宣 布了對 UNIX 系統的商業化計劃,隨之開源軟體業轉變成了版權式軟體產業,源代碼被當作 商業機密,成為專利產品,人們再也不能自由地享受科技成果。 於是在 1984 年,Richard Stallm ...
  • Linux內核地址映射模型 x86 CPU採用了段頁式地址映射模型。進程代碼中的地址為邏輯地址,經過段頁式地址映射後,才真正訪問物理記憶體。 段頁式機制如下圖。 Linux內核地址空間劃分 通常32位Linux內核地址空間劃分0~3G為用戶空間,3~4G為內核空間。註意這裡是32位內核地址空間劃分,6 ...
  • 問題: 在使用 WRK 對應用服務進行壓測的時候,提示 "too many open files" 信息,導致無法啟動測試。 原因: CentOS 7.x 預設的打開文件數目限製為 ,如果在使用其他軟體出現 "too many open files" 的錯誤。 解決: 只需要更改 文件裡面的內容,增 ...
  • 一、LCD控制原理 S5PV210處理器中自帶LCD控制器,控制LCD的顯示,把 LCD 圖像數據從一個位於系統記憶體的 video buffer 傳送到一個外部的 LCD 驅動器介面。 類型: 1. STN(超扭曲向列),它的特點是功耗低,但亮度不足,響應時間長;(1602那種類型的) 2. TFT ...
  • 1.基礎知識 Linux作為一種多用戶的操作系統(伺服器系統),允許多個用戶同時登陸到系統上,並響應每個用戶的請求。 任何需要使用操作系統的用戶,都需要一個系統賬號,賬號分為: 管理員賬號與普通用戶賬號。 在Linux中,操作系統 根據UID來判斷用!根據UID來判斷用戶! 而不是用戶名! 只要id ...
  • 分離式lnmp簡介 lnmp和lamp一樣,是一種常用的web環境, 在實際環境中,lnmp中的三個服務常常為了更好的性能而分在三台主機上安裝。 本篇內只介紹nginx和php fpm+mysql分離的情況 環境 nginx 192.168.83.128 lynk php fpm+mysql 192 ...
  • gitlab 文檔上給了很好的配置的例子:https://gitlab.com/help/ssh/README#locating-an-existing-ssh-key-pair 針對mac 下的使用方案,我的配置步驟如下: 生成公鑰和私鑰: -C 表示 加一條註釋,當你有很多keys 的使用,用來 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...