Slackware Loongarch64 中文手册
  • 翻译说明
    • 贡献力量
  • 前言
    • 目标读者
    • 为什么会有一版新的 Slackware 手册?
    • 本书中使用的约定
    • 致谢
  • Slackware 介绍
    • 为何使用 Slackware?
    • 与其他 Linux 发行版的差异
    • 许可
  • 安装
    • 从安装介质启动
    • 分区
    • 安装程序
      • Help
      • Keymap
      • Addswap
      • Target
      • Source
      • Select
      • Install
      • Configure
  • 引导
    • mkinitrd
    • 引导器
      • LILO
      • GRUB2
    • 多重引导
      • 引导多个分区
      • 引导多个硬盘
  • 基本 Shell 命令
    • 系统文档
    • 处理文件和目录
      • 列出文件和目录内容
      • 在文件系统中移动
      • 文件和目录的创建与删除
    • 归档和压缩
      • zip、unzip
      • gzip
      • bzip2
      • XZ、LZMA
      • tar
    • 阅读文档
      • more
      • less
    • 链接
  • Bourne Again Shell
    • 什么是 Shell?
    • 环境变量
    • 通配符
    • TAB 键补全
    • 输入、输出重定向
    • 任务管理
    • 终端
    • 制定
  • 进程控制
    • ps
    • kill 和 killall
    • top
    • 计划任务
  • X 视窗系统
    • X 是什么?
    • 配置 X 服务器
    • 选择窗口管理器
    • 设置图形界面登陆
  • 打印
    • 选择打印程序
    • 获取驱动
    • 在 CUPS 中设置打印机
    • 从命令行打印
      • 打印格式化数据
  • 用户和组
    • 用户和组是什么?
    • 管理用户和组
    • 管理用户和组的其他工具
    • 手动管理用户和组
  • 文件系统权限
    • 权限概述
    • chmod、chown 和 chgrp
    • SUID、SGID 和粘滞位
  • 使用文件系统
    • 文件系统的层次
    • 本地文件系统类型
      • ext2
      • ext3
      • ext4
      • reiserfs
      • XFS
      • JFS
      • iso9660
      • vfat
      • swap
    • 使用 mount 指令
    • 网络文件系统
      • NFS
      • SMB
  • vi
    • vi 是什么?
    • vi 的不同模式
    • 打开、保存和退出
    • 移动光标
    • 编辑文本
    • vi 小纪
  • Emacs
    • Emacs 是什么?
    • 起步
    • 移动光标
    • 获得帮助
    • 调用函数
    • Emacs 小纪
  • 网络
    • netconfig
    • 手动配置
    • 使用 rc.inet1.conf 自动配置网络
  • 无线网络
    • iwconfig
    • 有线等(无)效保密
    • Wifi 登陆保护
      • 再看 rc.inet1.conf
    • wicd
  • 基本网络工具
    • 网络诊断工具
      • ping
      • traceroute
      • telnet
      • ssh
      • tcpdump
      • nmap
      • host
      • dig
      • finger
    • 网页浏览器
      • lynx
      • links
      • wget
    • 邮件客户端
      • pine
      • mutt
      • mailx
    • FTP 客户端
      • ftp
      • ncftp
      • lftp
    • rsync
  • 包管理
    • pkgtool
    • 软件包的安装、移除和升级
    • 软件包的压缩格式
      • slackpkg
      • rpm2tgz
  • 追踪系统更新
    • 稳定分支
    • 订阅安全更新邮件列表
    • 升级 Slackware 版本
  • Linux 内核
    • 内核是做什么的?
    • 设置内核模块
    • 编译以及为什么要编译内核
由 GitBook 提供支持
在本页
  • GRUB2 的grub.cfg
  • GRUB2 的 EFI 程序
在GitHub上编辑
  1. 引导
  2. 引导器

GRUB2

GRUB2 是一种 Linux 引导器,并且目前是 LoongArch Slackware 的默认引导器。

UEFI (Unified Extensible Firmware Interface) 固件只支持 GPT (GUID Partition Table) 分区,所以在安装系统分区时需要把磁盘分区格式设置为 GPT 格式。

GRUB2 的grub.cfg

grub.cfg 的功能简单来讲可以分为两部分:启动界面的设置、启动项的配置。下面介绍下通过修改哪些配置文件,来进行定制 grub.cfg:

  • 启动界面的设置:/etc/default/grub 是 grub 全局配置文件,文件中定义了 grub 的全局宏,主要包含了启动界面的设置,比如默认启动项的设置、等待用户选择启动项时间设置、加载的字体等。

  • 启动项的配置:/etc/grub.d/ 目录下是 grub 的配置脚本,在定制系统启动时可以修改全局配置文件和配置脚本。

可以使用 grub-mkconfig 生成 grub2 配置文件 grub.cfg,执行:

    grub-mkconfig -o /boot/grub/grub.cfg

新生成的grub.cfg里启动项大致如下:

.... many more lines ommitted ....
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Slackware-15.0+ GNU/Linux' --class slackware_15_0_ --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-555b5454-296c-499b-ac88-219d17c7e5b9' {
        load_video
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt2' --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  c15c4ceb-7c1b-4ad5-a646-217e0b575d95
        else
          search --no-floppy --fs-uuid --set=root c15c4ceb-7c1b-4ad5-a646-217e0b575d95
        fi
        echo    'Loading Linux 6.3.0 ...'
        linux   /vmlinuz-generic-6.3.0 root=UUID=555b5454-296c-499b-ac88-219d17c7e5b9 ro  
        echo    'Loading initial ramdisk ...'
        initrd  /initrd-6.3.0.img
}
.... many more lines ommitted ....

在 Slackware 里的启动条目例子里,menuentry 是显示的启动条目,下面是 GRUB2 加载的 grub 模块,linux 后面跟要启动的内核是 vmlinuz-generic-6.3.0 ,根的 UUID是 555b5454-296c-499b-ac88-219d17c7e5b9, initrd 后面跟加载的 initrd 是 initrd-6.3.0.img ,因为加载了 initrd,所以系统可以解析 UUID ,若你的系统没有 initd,那就不能使用UUID,需要指定设备号。

GRUB2 的 EFI 程序

EFI 程序存放环境设置

  • 在 GPT 分区下,创建 EFI 系统分区(ESP分区,又叫 esp 分区),文件系统格式为 VFAT 分区。

生成更新 EFI 程序

cat  >> grub.cfg << EOL
set root=',gpt2'
set prefix=($root)'/grub'
configfile $prefix/grub.cfg
EOL

GRUB_MODS="acpi adler32 affs afs all_video archelp bfs bitmap bitmap_scale \
blocklist boot bswap_test btrfs bufio cat cbfs chain cmdline_cat_test cmp  \
cmp_test configfile cpio_be cpio crc64 cryptodisk crypto ctz_test datehook \
date datetime diskfilter disk div div_test dm_nv echo efifwsetup efi_gop   \
efinet elf eval exfat exfctest ext2 extcmd fat file font fshelp            \
functional_test gcry_arcfour gcry_blowfish gcry_camellia gcry_cast5        \
gcry_crc gcry_des gcry_dsa gcry_idea gcry_md4 gcry_md5 gcry_rfc2268        \
gcry_rijndael gcry_rmd160 gcry_rsa gcry_seed gcry_serpent gcry_sha1        \
gcry_sha256 gcry_sha512 gcry_tiger gcry_twofish gcry_whirlpool geli        \
gettext gfxmenu gfxterm_background gfxterm_menu gfxterm gptsync gzio halt  \
hashsum hello help hexdump hfs hfspluscomp hfsplus http iso9660 jfs jpeg   \
keystatus ldm linux loadenv loopback lsacpi lsefimmap lsefi lsefisystab    \
lsmmap ls lssal luks lvm lzopio macbless macho mdraid09_be mdraid09        \
mdraid1x memdisk memrw minicmd minix2_be minix2 minix3_be minix3 minix_be  \
minix mmap mpi msdospart mul_test net newc nilfs2 normal ntfscomp ntfs odc \
offsetio part_acorn part_amiga part_apple part_bsd part_dfly part_dvh      \
part_gpt part_msdos part_plan part_sun part_sunpc parttool password        \
password_pbkdf2 pbkdf2 pbkdf2_test png priority_queue probe procfs         \
progress raid5rec raid6rec read reboot regexp reiserfs romfs scsi          \
search_fs_file search_fs_uuid search_label search serial setjmp            \
setjmp_test sfs shift_test signature_test sleep sleep_test squash4         \
syslinuxcfg tar terminal terminfo test_blockarg testload test testspeed    \
tftp tga time trig tr true udf ufs1_be ufs1 ufs2 video_colors video_fb     \
videoinfo video videotest_checksum videotest xfs xnu_uuid xnu_uuid_test    \
xzio zfscrypt zfsinfo zfs"

grub-mkimage -p /boot/efi/EFI/BOOT/ --format=loongarch64-efi \
-c `pwd`/grub.cfg --output=/boot/efi/EFI/BOOT/BOOTLOONGARCH64.EFI \
$GRUB_MODS
# 有少量机型的固件可能会识别BOOTLOONGARCH.EFI,基于实际情况制作

# 参数含义
-p 设置偏好文件夹,cfg文件中会调
--format或-d 表示指定查找模块目录
-c 表示指定配置文件,这个配置文件会集成到efi文件内,就是我们刚刚编写的grub.cfg
--output或-o 表示生成的目标文件
上一页LILO下一页多重引导

最后更新于1年前