顯示具有 GRUB與開機 標籤的文章。 顯示所有文章
顯示具有 GRUB與開機 標籤的文章。 顯示所有文章

2024年8月17日 星期六

虛擬機移轉,出現dracut-initqueue timeout無法正常開機

從VMware ESXi的VM拿到CentOS的虛擬硬碟檔vdi,用VirtualBox轉成Hyper-V可以用的虛擬硬碟檔vhd檔,設定好之後沒辦法正常開機。有通過Grub開機,但進入了busybox的emergency mode,會看到下列警告訊息:

dracut - initqueue[xxx]: Warning: dracut-initqueue timeout - starting timeout scripts
Warning: /dev/centos/root does noet exist
......
Warning: /dev/mapper/centos-root does not exist


這是因為開機需要initramfs映像檔根據舊的虛擬平台ESXi建立,並不支援搬移過去的Hyper-V平台。解決步驟如下:

2024年5月11日 星期六

更新Ubuntu 18.04的kernel從4.10到4.15

從16.04升級到18.04的系統,其Kernel核心還是16.04所帶的4.10.0。先用下列指令看有哪些核心可以升級:

  • cat /etc/os-release && uname -a
  • dpkg --list | grep linux-image | grep -v 16.04 

會看到可以用的kernel版本是4.15.0,再用apt指令要更新的kernel裝起來:

  • sudo apt install -y linux-image-4.15.0-225-generic linux-modules-4.15.0-225-generic linux-modules-extra-4.15.0-225-generic

裝好Kernel以後,可以先重開機一次。開完機以後會發現核心還是舊版的4.10.0,這是因為系統有新的核心但是開機選單GRUB並沒有修改。

2022年11月12日 星期六

Ubuntu Server 22.04裝在RAID-1上

Ubuntu Server 22.04可用USB live stick將系統安裝在software RAID-1上了,但還是沒有Debian設計的那麼簡單。原本是希望硬碟用MBR分割,但最終還是被改成GPT,成功安裝的過程重點是在選擇"Custom storage layout"後,分割的過程要注意幾點:

  1. 找到reformat字樣的選單,把開機硬碟加入boot
  2. 硬碟最少分割成4個分割區(partition)
    • Partition 1 給EFI
    • Partition 2 預計做成software RAID-1給/boot
    • Partition 3 預計做成software RAID-1給swap
    • Partition 4 預計做成software RAID-1給根目錄/
  3. 用選單裡面的md,將分割區Partition 2, 3, 4做成software RAID-1

2022年1月18日 星期二

安裝可同時用BIOS與uEFI啟動的Ubuntu

在外接硬碟上安裝可同時適用BIOS與uEFI開機的Ubuntu。安裝的要求包含:

  1. 不動到原本安裝於主機硬碟上的Windows
  2. 可以用傳統的BIOS(或是所謂的Legacy mode)從外接硬碟開機
  3. 可以用現代的uEFI從外接硬碟開機
  4. 外接硬碟上有FAT32磁區提供Windows & Linux都可存取

Installation for UEFI+BIOS dual-boot Linux Ubuntu 20.04.3 desktop (1080p), 41m20s (下面影片非本人製作,而是目前網路上看到最完整的解法)

2020年5月29日 星期五

Ubuntu 20.04開機碟做成Mirror

Ubuntu 20.04 Desktop版並不像Debian一樣,安裝過程支援系統碟是mirror(RAID-1)。要達成開機碟是mirror狀態,要先將一個硬碟分割好如下狀態:
  • /dev/sda
    • sda1:分割類型是fd(linux raid auto)預計要裝/boot
    • sda2:分割類型是fd(linux raid auto)預計安裝根目錄

分割好硬碟/dev/sda後,將這些硬碟接到電腦上,再放入Ubuntu 20.04 Desktop LiveCD後,從CD-rom開機:

2020年1月19日 星期日

Ubuntu開機卡在init-bottom ... done.

Ubuntu 12.04雖然有正常使用shutdown指令關機,且關機前也有用sync;sync;sync把資料都寫入到硬碟上面 force competion of pending disk writes (flush cache)。但開機到下面後就卡住了:
  • Begin: Running /scripts/init-premount ... done.
  • Begin: Mounting root file system ... 
  • Begin: Running /scripts/local-top ... done.
  • Begin: Running /scripts/local-premount ... done.
  • [10.367590] EXT4-fs (md1): mounted filesystem with ordered data mode. Opts: (null)
  • Begin: Running /scripts/local-bottom ... done.
  • done.
  • Begin: Running /scripts/init-bottom ... done.
用最後一行當關鍵字搜尋,加上Ubuntu 12.04這個關聯性找到這個連結,看到下一行是:

2019年10月31日 星期四

Ubuntu 18.04因顯卡而無法正常開機

使用Ubuntu 18.04在一台有Nvidia GTX 1050的筆電上無法開機,暫解決方案是:
  1. 進入GRUB的時候,光棒選擇到要開機的kernel
  2. 選到之後,按e,進入開機kernel的設定裡面
  3. 找到linux開頭的那一行,加入nomodeset,如下
    linux /boot/vmlinz-x.x.x-x-generic root=UUID=xxx-xxx-xxx-xxx-xxx ro quiet splash $vt_handoff nomodeset
  4. 按F10用這個方式開機
上面加入的表示開機以後不要載入任何有關於顯示卡的驅動,這樣就可以順利開機。

2019年9月24日 星期二

Ubuntu 18.04顯示詳細開機訊息

忘記從哪個版本開始以後,Ubuntu開機就會把所有的開機訊息隱藏起來。雖然是比較美觀拉,但這樣開機出問題的時候就不知道卡在哪個部份。要顯示這些訊息只要找到 /etc/default/grub 修改其中的兩行的如下:
  • GRUB_CMDLINE_LINUX_DEFAULT=
  • GRUB_TERMINAL=console

2019年9月23日 星期一

Mac的修復模式與USB開機

要讓Mac進入修復模式(Recovery Mode)的步驟如下:
  1. 關機
  2. 按住Cmd-R(Command和R同時按)不要放,按電源鍵開機
  3. 等到蘋果logo顯示後就可以放開Cmd-R
  4. 開完後會出現下面的選單
    • Restore From Time Machine Backup:從時光機回復系統
    • Reinstall macOS:重新安裝系統
    • Get Help Online:線上文件
    • Disk Utility:硬碟管理工具

2019年3月13日 星期三

BIOS或EFI主機板搭配MBR或GPT系統碟

把一台安裝的Win10的硬碟從舊機器搬到新機器上,發現無法開機
  • 舊機器主機板開機韌體是BIOS
  • 新機器主機板開機韌體是UEFI

下表現是主機板開機韌體搭配的系統碟分割方式:
主機板上的開機韌體
BIOSUEFI
系統碟的
分割方式
MBR可開機
但硬碟無法超過2TB
UEFI需設定成為Legacy mode
並且
打開CSM模組支援MBR硬碟
不能開的話,再
關閉Secure Boot
GPT
需特殊分割硬碟才能開機
硬碟需BIOS Boot Partition分割
可開機
選64-bit系統比較不會出問題
名詞解釋如下:

2018年10月22日 星期一

縮小initial ramdisk檔案initrd的大小

製作完開機核心後,也會更新模組modules,因此要順便更新inital ramdisk這個放在/boot/initrd-x.x.x.x的檔案。有時候這個檔案會很大(幾百MB),這是因為編譯出來的modules裡面的debug information沒有被去除,故modules會變很大。解決方法是在編譯與安裝modules的時候用下面的指令(需要root權限):
  • make INSTALL_MOD_STRIP=1 modules_install
上面這個指令讓在編譯modules的時候,會使用--strip-debug來去除debug information

2018年7月31日 星期二

CentOS 7開機顯示詳細資訊

CentOS 7開機的時候預設不會顯示詳細的開機過程資訊,這對於無法正常開機的時候會造成困擾。開機要顯示詳細過程需要修改GRUB,方法如下:

2018年7月30日 星期一

'grub_efi_secure_boot' not found

系統是CentOS 7,在另外一個不是開機硬碟/dev/sdb上面安裝grub:
  • grub2-install /dev/sdb
順利安裝後,重新開機出現了下方的錯誤訊息
    error: Symbol 'grub_efi_secure_boot' not found error
    error: Symbol 'grub_efi_secure_boot' not found error

而且不管用哪一個之前可以跑的kernel,都出現一樣的錯誤訊息

2018年7月13日 星期五

Ubuntu 12.04固定開機GRUB選單

Ubuntu 12.04 LTS會自動更新kernel,開機後會直接選用最新的kernel。想要固定使用某個kernel,首先確定要用的那個核心:
  • cat /boot/grub/grub.cfg | grep menuentry | grep 3.2.0-33-generic
上面是確定要用的3.2.0-33-generic這個核心存在,然後修改 /etc/default/grub。修改如下
  • GRUB_DEFAULT="Previous Linux versions>Ubuntu, with Linux 3.2.0-33-generic"
這個核心被放到Previous Linux versions這個submenu下面,所以要寫成上述的樣子。注意!選用的核心要用雙引號弄起來,系統才能夠辨識到。通通都做好後,用下面的指令重新產生/boot/grub/grub.cfg這個檔案
  • sudo update-grub
這樣重開機以後,機器就會固定使用3.2.0-33-generic這個核心;而且未來即使系統自動更新了kernel,也會固定一直用這個核心開機

2018年2月20日 星期二

CentOS 7開機卡住 沒圖形也沒文字界面

CentOS 7開機過了GRUB2以後就卡住了,沒有圖形界面也沒有指令界面。解法如下:
  1. 開機到GRUB選單後使用鍵盤上下鍵移動到要開機的核心
  2. 按 e 進入所選的核心,開始編輯GRUB參數
  3. 用鍵盤上下鍵移動到開頭是linux16或是linux的那一行
  4. 將下面的參數加到上面這行的最後面。請二選一下列的模式:
    • 若要進緊急模式(emergency mode)加入
      systemd.unit=emergency.target
    • 若要進入多人模式(multi-user mode)加入:
      systemd.unit=multi-user.target
  5. 按 Ctrl-x 使用上面的參數
這樣通常就可以進入文字模式,之後再用終端機下指令來看問題出在哪邊

2018年2月8日 星期四

Ubuntu 16.04固定開機GRUB選單

Ubuntu 16.04會自動更新kernel,一段時間重開機可能就會選到新的kernel,有時候與一些就的驅動程式會不相容。要固定開機GRUB選單,首先要去看想要選用哪個kernel:
  • cat /boot/grub/grub.cfg | grep menuentry | grep 4.10.0
上面是已經知道剛開始安裝的kernel是4.10.0,請自行找到所需的那個kernel。找到menuentry後,把後面單引號匡起來編號存下來,寫到 /etc/default/grub,如下面所示:
  • GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.10.0-42-generic'

2018年1月29日 星期一

Ubuntu 16.04文字模式開機捲動緩慢

系統是Ubuntu 16.04 LTS,雖然開機已經是文字模式了,但開到某個程度後文字捲動很緩慢,感覺像是以前CRT螢幕一樣要一行一行掃描。解決方式如下,首先修改 /etc/default/grub ,下面這一行的註解拿掉:
  • GRUB_TERMINAL=console
再用下面的指令更新GRUB設定:
  • sudo update-grub
重新開機就可以看到快速捲動的文字訊息了。上面那個設定,會讓grub menu背景的圖片不顯示,單純的就是黑白的文字顯示在終端機上~
至於說要怎樣讓開機直接進入文字模式請參考《Ubuntu 16.04開機直接進入文字模式》

_EOF_

2018年1月27日 星期六

Ubuntu 16.04開啟開機GRUB選單

Ubuntu 16.04預設將開機的GRUB選單給關掉,要打開的話需要修改 /etc/default/grub,將下面這一行註解起來,結果如下:
  • #GRUB_HIDDEN_TIMEOUT=0
再用下面的指令更新GRUB設定:
  • sudo update-grub
重新開機的時候即可看到GRUB選單了

_EOF_

2017年12月12日 星期二

Fedora 20將開機硬碟放到RAID-1

某機器系統是Fedora 20(Heisenbug)都安裝在一個硬碟/dev/sda上,分割區是:
  • /dev/sda6:掛載到/
  • /dev/sda1:掛載到/boot
  • /dev/sda7:掛載到/home
現在想把此開機碟做成RAID-1,而此RAID-1由/dev/sdc與/dev/sdd兩個硬碟組成。步驟與《Ubuntu 16.04將開機硬碟變成RAID-1》一樣的指令請參考前一篇,在Fedora上面不同的指令用紅色標記:

2017年10月18日 星期三

Linux的網路開機流程

在本地端機器沒有安裝系統的情況下,透過網路的伺服器提供的服務來開機,此過程叫做網路開機(netbooting)。流程請參考《Netbooting on POWER - An Introduction》:
  1. 本機詢問動態IP(Dynamic IP discovery)
    DHCP伺服器給予動態IP(Dynamic IP response)
  2. 本機請求開機啟動程式(Request for grub2, grub2是一種boot loader)
    TFTP伺服器給予開機啟動程式(Deliver grub2 binary)
  3. 本機請求開機啟動設定檔(Request for grub2.cfg)
    TFTP伺服器給予開機啟動設定檔(Deliver grub.cfg file)
  4. 本機請求kernel與initrd(Request kernel/initrd)
    檔案伺服器給予kernel與initrd
  5. 本機請求與接收其他安裝內容(Request and deliver installer content)