GRUB2的功能

GRUB2的主要設計是兼容於『Multiboot Specification』,並且根據底下的需求來設計的:

  • 基本功能對使用者必須很直覺。
  • 必須有對kernel開發者的支援。
  • 對於FreeBSD, NetBSD, OpenBSD和 Linux系統的向下相容,對於『Proprietary kernels』(像是DOS, Windows, OS/2等等)則是使用chain-loading的方式。

除了一些特殊的相容模式以外(chain-loading和Linux piggyback格式),所有的kernel都會以『Multiboot Spec.』上的狀態啟動。除了以上的基本需求外,底下列出其他額外的功能:

能辨識許多種的執行檔格式

支援許多的『a.out』格式,並且也可以讀取Symbol table。

支援non-Multiboot kernels

支援許多其他32-bit不支援Multiboot的kernel,也支援其他bootloader的Chain-loading。

支援多種的modules

自動搜尋其他作業系統

每當『update-grub』被執行時,裡面會有個『os prober』都會自動的去偵測所有已安裝的作業系統,然後被放置於GRUB2的menu裡。

讀取組態檔

支援可讀的文字組態檔,也可以動態讀取其它的組態檔或是將預先設定好的組態檔給嵌到GRUB2的image裡。

支援圖形化選單介面

支援圖形化選單介面,可列出所有目前的boot指令。

提供一個相當有彈性的command-line介面

提供一個相當有彈性的command-line(命令列)介面,如果沒有組態的話,GRUB2會直接進入command-line裡面。而GRUB2的command-line支援使用『tab-completion』,可以根據內容來列出裝置,partitions和檔案。

支援多種filesystem類型

支援很多種的檔案系統,而且可以直接用blocklist來指定檔案,目前支援的有:

  • Amiga Fast FileSystem (AFFS)
  • AtheOS fs
  • BeFS
  • BtrFS
    包含: raid0, raid1, raid10, gzip 和 lzo。
    
  • cpio
    包含: little- 和 big-endian bin, odc 和 newc variants。
    
  • Linux ext2/ext3/ext4
  • DOS FAT12/FAT16/FAT32
  • exFAT
  • HFS
  • HFS+
  • ISO9660
    包含 Joliet, Rock-ridge 和 multi-chunk files。
    
  • JFS
  • Minix fs
    包含 versions 1, 2 和 3。
    
  • nilfs2
  • NTFS
    包含壓縮。
    
  • ReiserFS
  • ROMFS
  • Amiga Smart FileSystem (SFS)
  • Squash4
  • tar
  • UDF
  • BSD UFS/UFS2
  • XFS
  • ZFS
    包含lzjb, gzip, zle, mirror, stripe, raidz1/2/3 和 AES-CCM/AES-GCM加密。
    

    支援自動解壓縮

    會自動解壓縮gzip或是Xz2壓縮檔,可以節省很多空間和傳輸時間。但是因為像是kernel module一定會是壓縮檔,所以像類似這種的檔案就要需要用特殊的讀取module命令。

支援讀取各種BIOS可辨認磁碟裡面的資料

可偵測所有已經安裝的RAM

GRUB2可以在PC兼容的PC上找到所有已經安裝的RAM,這部分是使用進階的BIOS技術來找到所有記憶體的區間,但是並不是所有的kernel都會用到這個資訊就對了。

支援Logical Block Address mode

在比較傳統的磁碟呼叫(traditional disk calls)(也叫做CHS mode)中,存在著一個幾何的轉換問題,就是BIOS無法存取超過磁碟的1024磁柱,所以空間的存取就被限制在508MB到8GB之間。因為各個平台之間這部分並沒有標準的介面,所以GRUB2也無法去解決這個問題。然而,也有一些比較新的平台有支援新的介面,叫做Logical Block Address (LBA) mode,只要GRUB2自動偵測到支援這個模式的話就會去採用它,在LBA模式底下,GRUB可以存取到整顆硬碟。

支援網路開機

雖然基礎上來說GRUB2是個以磁碟為基礎的bootloader,但是它也支援網路功能,像是它可以使用TFTP協定從網路讀取作業系統映像檔來開機。

支援遠端terminals操控

有些電腦沒有支援console模式,所以GRUB2提供了remote terminal的功能,這樣你就可以從遠端的host來操控GRUB2。

results matching ""

    No results matching ""