如何手動重新安裝Grub2在NVMe分割區上 [論壇 - Ubuntu安裝問題]
正在瀏覽:
1 名遊客
回覆: 如何手動重新安裝Grub2在NVMe分割區上 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
版主
![]() ![]() 註冊日期:
2008/7/14 0:03 來自 螢幕的另一端
所屬群組:
網站管理員 已註冊使用者 討論區管理群 等級: 33
HP : 0 / 805
![]() |
冥王歐西里斯 寫到: 事情並不象你所想象的那麼簡單 nvme 是新的規格、新的pcie介面,舊軟體、舊系統跟它很多相容性的問題要克服,所以絕不是換一個磁碟代號就了事的問題。 不清楚這部份的話,回應別人的語氣就不要那麼兇,客氣一點好,不然尶尬的是自已而已。 回應樓主: 想要用 nvme 作為系統開機碟,並成功開機,要符合許多條件 1 BIOS 裡得要設定 UEFI 開機。你設定 Legacy/CSM 是無法開機的 2 BIOS 裡secure boot得關掉或開啟這要測一下。或設定 Other OS 3 nvme 檔案系統得用 GPT 格式 4 boot loader 還得要支援 nvme 開機 5 OS 也得要支援 nvme 開機 簡單說,光是單碟、單一系統,要搞定 nvme 開機,難度都不小了 你還搞雙系統....嗯,難度不小。 不過 解法 方向都是一致的 另外 nvme 的代號,你有可能打錯了,可試一下 舉例來說 sda 的話 sda1 是系統的第1個分區 那麼通常 grub2 是要安裝到 sda 裡,而不是 sda1 裡去 所以,我看你打的指令,有可能你的磁碟代號打錯了 grub-install --root-directory=/media/ubuntu /dev/nvme1n1p1 我猜可能是 nvme1n1 或是 nvme1 代號才能正確安裝 boot loader 其它的部份,你就要自己去查一下我上面列的 nvme 的支援度了
2021/9/9 20:45
|
||||||||||
![]() |
回覆: 如何手動重新安裝Grub2在NVMe分割區上 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 35
HP : 174 / 873
![]() |
## 簡介 parted 的使用入門
parted 可以採用「互動模式」,也可以採用「指令模式」 ================================================================================ ## 互動模式 執行
顯示 GNU Parted 3.4 Using /dev/sdc Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) 這時候只要在「(parted)」後,輸入「help」,然後按下「Enter」
就會顯示 GNU Parted 3.4 Using /dev/sdc Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) help align-check TYPE N check partition N for TYPE(min|opt) alignment help [COMMAND] print general help, or help on COMMAND mklabel,mktable LABEL-TYPE create a new disklabel (partition table) mkpart PART-TYPE [FS-TYPE] START END make a partition name NUMBER NAME name partition NUMBER as NAME print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition quit exit program rescue START END rescue a lost partition near START and END resizepart NUMBER END resize partition NUMBER rm NUMBER delete partition NUMBER select DEVICE choose the device to edit disk_set FLAG STATE change the FLAG on selected device disk_toggle [FLAG] toggle the state of FLAG on selected device set NUMBER FLAG STATE change the FLAG on partition NUMBER toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER unit UNIT set the default unit to UNIT version display the version number and copyright information of GNU Parted (parted) 只要在「(parted)」後,輸入「quit」,然後按下「Enter」
就會離開「parted」的「互動模式」。 ================================================================================ ## 指令模式 而上面的「help」的「互動模式」,所對應的「指令模式」, 只要在「shell (bash, zsh, fish 之類)」,輸入下面指令
就會顯示 align-check TYPE N check partition N for TYPE(min|opt) alignment help [COMMAND] print general help, or help on COMMAND mklabel,mktable LABEL-TYPE create a new disklabel (partition table) mkpart PART-TYPE [FS-TYPE] START END make a partition name NUMBER NAME name partition NUMBER as NAME print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition quit exit program rescue START END rescue a lost partition near START and END resizepart NUMBER END resize partition NUMBER rm NUMBER delete partition NUMBER select DEVICE choose the device to edit disk_set FLAG STATE change the FLAG on selected device disk_toggle [FLAG] toggle the state of FLAG on selected device set NUMBER FLAG STATE change the FLAG on partition NUMBER toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER unit UNIT set the default unit to UNIT version display the version number and copyright information of GNU Parted ================================================================================ 執行
顯示 help [COMMAND] print general help, or help on COMMAND ================================================================================ 執行
顯示 quit exit program ================================================================================ 使用「parted」當關鍵字,找到的「參考文章」 還有我在「#7」所列的參考文章。 ================================================================================ 待續...
2021/9/10 15:11
|
||||||||||
![]() |
回覆: 如何手動重新安裝Grub2在NVMe分割區上 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 35
HP : 174 / 873
![]() |
接著介紹「parted」的「print」的功能,以下提供「指令模式」,您也可以在「互動模式」操作,都是相對應的。
================================================================================ ## 查詢「print」的「help」 執行
顯示 print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition Without arguments, 'print' displays the entire partition table. However with the following arguments it performs various other actions. devices : display all active block devices free : display information about free unpartitioned space on the current block device list, all : display the partition tables of all active block devices NUMBER : display more detailed information about this particular partition ================================================================================ 執行
顯示 Model: xxxxxxxx xxxxxxxxx (scsi) Disk /dev/sdc: 1000GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 2048MB 2047MB primary linux-swap(v1) 2 2048MB 203GB 201GB primary ext4 boot 3 203GB 404GB 201GB primary ext4 4 404GB 1000GB 596GB primary ext4 ================================================================================ 另外有一個指令「fdisk」 執行
顯示 Disk /dev/sdc: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: xxxxxxxxx Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x804b1b78 Device Boot Start End Sectors Size Id Type /dev/sdc1 2048 3999743 3997696 1.9G 82 Linux swap / Solaris /dev/sdc2 * 3999744 396623871 392624128 187.2G 83 Linux /dev/sdc3 396623872 789247999 392624128 187.2G 83 Linux /dev/sdc4 789248000 1953523711 1164275712 555.2G 83 Linux ================================================================================ 另外在「#5」提到的「lsblk」 執行
顯示 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sdc 8:32 0 931.5G 0 disk ├─sdc1 8:33 0 1.9G 0 part ├─sdc2 8:34 0 187.2G 0 part /run/media/sam/64fd5a33-e78a-457b-a0a9-97014937f728 ├─sdc3 8:35 0 187.2G 0 part /run/media/sam/ee5352ec-6460-4257-92e6-d32419beee17 └─sdc4 8:36 0 555.2G 0 part /run/media/sam/0f8e660a-5e30-4321-9914-097ce23781e5 ================================================================================ 還有您在「#1」提到的「blkid」
================================================================================ 另外還有一個指令「mount」
================================================================================ 我在「#5」提到的參考文章。 ================================================================================ 待續...
2021/9/10 15:27
|
||||||||||
![]() |
回覆: 如何手動重新安裝Grub2在NVMe分割區上 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 35
HP : 174 / 873
![]() |
接著介紹「parted」的「set」的功能,以下提供「指令模式」,您也可以在「互動模式」操作,都是相對應的。
================================================================================ ## 查詢「set」的「help」 執行
顯示 set NUMBER FLAG STATE change the FLAG on partition NUMBER NUMBER is the partition number used by Linux. On MS-DOS disk labels, the primary partitions number from 1 to 4, logical partitions from 5 onwards. FLAG is one of: boot, root, swap, hidden, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot, msftdata, irst, esp, chromeos_kernel, bls_boot STATE is one of: on, off ================================================================================ 參考對照「#13」所「print」出來的資訊,
下面要針對「Number 2」這個「Partition」,設定「Flag」。 下面「/dev/sdc」是「Disk」。 下面「2」指的是「Number 2」,也就是「Partition 2」。 執行
顯示
================================================================================ 接著執行
顯示
Flags 底下的 boot 沒有顯示了 ================================================================================ 執行
顯示
================================================================================ 接著執行
顯示
Flags 底下的 boot 又顯示出來的 ================================================================================ 待續...
2021/9/10 15:54
|
||||||||||
![]() |
回覆: 如何手動重新安裝Grub2在NVMe分割區上 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 35
HP : 174 / 873
![]() |
接著回到您的案例,
請參考「#7」提到的議題,和參考文章 以下純屬猜測,不見得適用您的情況,以下指令請您斟酌使用。 因為我也沒有您這樣的硬體可以測試,所以有些我也不是很確定,所以以下推測,紀錄提供您參考。 ================================================================================ 根據您在「#1」提供的資訊。 twroger 寫到: ================================================================================ 還有您在「#6」提到的資訊 twroger 寫到: ================================================================================ 關於「nvme1n1」,是您的「Disk」。 關於「nvme1n1p6」,猜測是您安裝「ElementaryOS 6」的「Partition」。 ================================================================================ 您可以先參考上面「#12」,「#13」,「#14」 初步了解「parted」的用法。 ================================================================================ 接著您可以先執行下面指令
請參考「#13」。 ================================================================================ 執行
請參考「#14」 還有請參考「#7」提到的議題,和參考文章 ================================================================================ 執行
或是執行
這樣也許您執行「grub-install」會成功 顯示
================================================================================ 根據您「#1」提供的資訊 猜測您原本安裝「ElementaryOS 6」在「/dev/nvme1n1p6」這個「Partition」,並且可以用Grub2管理雙系統開機 所以應該原本就存在「/media/ubuntu/boot/grub/grub.cfg」這個檔案, 所以當您「grub-install」成功後,重開機,也許可以先重開機,然後成功進入「ElementaryOS 6」, 若您無法進入「Windows」,這部份就要請您再去深究了,這部份我並不了解, 我唯一有概念的是,當我進入「Ubuntu」的環境,我可以執行「sudo update-grub」來產生新的「/boot/grub/grub.cfg」, 過程中會根據「/etc/grub.d/30_os-prober」的機制,來檢測是否還有其他的「OS」,會產生相對應的選單。 所以當您成功進入「ElementaryOS 6」後,也許可以執行「sudo update-grub」來試試看。 ================================================================================ 以上提供參考,報告完畢 ![]()
2021/9/10 16:36
|
||||||||||
![]() |
回覆: 如何手動重新安裝Grub2在NVMe分割區上 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員二級
![]() ![]() 註冊日期:
2009/3/29 10:12 所屬群組:
已註冊使用者 等級: 5
HP : 0 / 112
![]() |
謝謝您的回覆,依照您的指示:
未修改Flag前是這樣 elementary@elementary:~$ sudo parted /dev/nvme1n1 修改後Flag是這樣: (parted) print 執行grub-install elementary@elementary:~$ sudo grub-install /dev/nvme1n1p6 --boot-directory=/media/ubuntu/boot 因為是旗標的問題,索性就用Live USB碟的Parted更改/dev/nvme1n1p1其餘flag試試看,不知選哪個,那就隨便選一個測試吧! 如下圖 ![]() 然後再下一次grub-install竟安裝成功了 elementary@elementary:~$ sudo grub-install /dev/nvme1n1 --root-directory=/media/ubuntu 所以grub2是認得NVMe的,只是不知道該選那個flag 再改回boot,esp 高興之餘馬上重新開機,BIOS跑完就出現找不到任何開機系統,連Windows System Manager也掛了,猜測/dev/nvme1n1p1整個資料毀損 所以大概知道之前是因為Flag原因才會無法grub-install成功,但flag要選哪一個我就不曉得了 而/dev/nvme1n1p1資料壞了,連筆電的recovery映像檔也無法還原 在沮喪之餘,發現還有一支Linux Live USB 馬上用隨身碟開機,重新切割硬碟,並裝完ElementaryOS 6,再裝Windows 10(它不會覆蓋Ubuntu的EFI),BIOS UEFI總算出現Windows及Ubuntu的選項 Windows 10 還有內建映像檔備份功能(可以備份Partition1 UEFI槽及Windows系統槽),雙系統開機則用F12鍵來手動選擇開機管理,整個固障問題終於告一個段落,禮拜一總算可以工作了 結論: 目前還是不知如何在NVMe下重新安裝grub-install指令,期待有遇到相同問題的人再來一起探究了,謝謝
2021/9/13 5:46
|
||||||||||
![]() |
回覆: 如何手動重新安裝Grub2在NVMe分割區上 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員二級
![]() ![]() 註冊日期:
2009/3/29 10:12 所屬群組:
已註冊使用者 等級: 5
HP : 0 / 112
![]() |
另外我用程式碼標註,為什麼不能像您一樣顯示程式碼風格,要怎麼做呢?
或者是貼一張編輯時的畫面。 \[code\]elementary@elementary:~$ sudo parted /dev/nvme1n1 GNU Parted 3.3 使用 /dev/nvme1n1 歡迎使用 GNU Parted!輸入 'help' 來檢視指令列表。 (parted) print 型號:ESR512GTLG-E6GBTNB4 (nvme) 磁碟 /dev/nvme1n1:512GB 磁區大小 (邏輯/物理):512B/512B 分割區:gpt 磁碟旗標: \[/code\] 上面測試\號是我加上去的要跳脫,編輯時只有[code]
2021/9/13 9:58
|
||||||||||
![]() |
回覆: 如何手動重新安裝Grub2在NVMe分割區上 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 35
HP : 174 / 873
![]() |
要跟樓主您先說抱歉,
在「#7」,我紀錄的參考文章, 這些文章設定的「Flag」是「bios_grub」, 在寫上面的教學的時候,因為我的環境沒法設定「bios_grub」,只能設定「boot」, 所以我就忘了要去改,本來要加註,結果忘了加註, 因此誤導您了,所以再次跟您說抱歉。 我上面提的,只是要引導您了解如何去更改那個「Flag」, 至於其他的細節,建議您可以再去研究我在「#7」紀錄的參考文章。 ================================================================================ 另外一提,因為我沒有使用Windows環境,我的環境都是「(泛)Ubuntu」或是「Manjaro」環境, 所以怎麼「GRUB」多重系統開機「Windows」,這部份我就不清楚了, 而且我的還是比較舊的電腦,所以對「UEFI」之類的議題,這部份我也沒實際經驗。 另外,我都是採取保守的作法,都會把「Linux的系統」和「GRUB」,安裝在另一個「內接硬碟」或是「外接硬碟」。 我就有好幾個「外接硬碟(USB3.0)」,都是安裝不同的「Linux Distribution」。 這也是一種作法,以免更動到原來的Windows系統。 ================================================================================ 關於「quote」的問題。 一般我使用的「BBCode」, 是「[quote] 內容 [/quote]」, 它會轉成「<blockquote> 內容 </blockquote>」 就會顯示如下
================================================================================ 而若為了有「pre」的效果, 我就會改成是「[quote][code] 內容 [/code][/quote]」, 它會轉成「<blockquote><pre> 內容 </pre></blockquote>」 就會顯示如下 內容 ================================================================================ 您可以參考「 維基百科 / BBCode 」, 或是在「回覆」文章時,「引用」,就會看到該「引用」,所使用的「BBCode」。 ================================================================================ 另外紀錄剛剛為了回覆此文找到的「補助網址」 我是使用「html escape characters square brackets」當關鍵字查詢找到的 * https://www.htmlsymbols.xyz/unicode/U+005D * https://www.htmlsymbols.xyz/unicode/U+005B 另外使用「html escape characters」,當關鍵字查詢,找到的網址 * https://www.w3schools.com/html/html_entities.asp * https://en.wikipedia.org/wiki/Character_encodings_in_HTML ================================================================================ 以上釐清 ![]()
2021/9/13 16:47
|
||||||||||
![]() |
回覆: 如何手動重新安裝Grub2在NVMe分割區上 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員二級
![]() ![]() 註冊日期:
2009/3/29 10:12 所屬群組:
已註冊使用者 等級: 5
HP : 0 / 112
![]() |
謝謝samwhelp耐心及用心的回覆
沒有嘗試怎麼會有進步及知道結果呢 話說經過這些操作,反而現在系統環境才是我要的 又學一些了,謝謝您 ![]()
2021/9/14 4:20
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.