grub2 引导 Arch Linux 安装镜像的方法
source link: https://blog.lilydjwg.me/2014/2/2/load-arch-linux-iso-with-grub2.42632.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
grub2 引导 Arch Linux 安装镜像的方法
本文来自依云's Blog,转载请注明。
志以备链。
一、准备设备
U 盘、SD 卡、硬盘、移动硬盘均可。不需要重新分区,但是引导部分将被覆盖。不要用太奇葩的分区格式,Windows 和 Linux 下常见的都行。要有地方装 grub。grub 一般情况是安装在第一个分区前的空闲空间(MBR 分区表)或者专门准备的一个分区(GPT 分区表,参见 ArchWiki)。把下回来的镜像文件(如archlinux-2014.01.05-dual.iso
)扔进去。注意据说 BIOS 只能读取 USB 设备前 8G 的内容,因此如果是移动硬盘,最好把文件放第一个分区中。
二、安装 grub2 到设备上(如果目标设备已经安装则跳过)
先挂载镜像所在分区,再执行安装命令。注意:老旧系统可能需要使用grub2-install
命令。
sudo
mount
/dev/sdb1
/mnt
sudo
grub-
install
/dev/sdb
--boot-directory=
/mnt
默认没有配置文件,我这里给出一个:
set
UUID=xxxxxxx
set
ver=2014.01.05
set
label=ARCH_201401
set
isofile=
"/archlinux-$ver-dual.iso"
insmod part_gpt
insmod part_msdos
if
[ -s $prefix
/grubenv
];
then
load_env
fi
if
[
"${next_entry}"
] ;
then
set
default=
"${next_entry}"
set
next_entry=
save_env next_entry
set
boot_once=
true
else
set
default=
"0"
fi
if
[ x
"${feature_menuentry_id}"
= xy ];
then
menuentry_id_option=
"--id"
else
menuentry_id_option=
""
fi
export
menuentry_id_option
if
[
"${prev_saved_entry}"
];
then
set
saved_entry=
"${prev_saved_entry}"
save_env saved_entry
set
prev_saved_entry=
save_env prev_saved_entry
set
boot_once=
true
fi
function
savedefault {
if
[ -z
"${boot_once}"
];
then
saved_entry=
"${chosen}"
save_env saved_entry
fi
}
function
load_video {
if
[ x$feature_all_video_module = xy ];
then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
set
menu_color_normal=light-blue
/black
set
menu_color_highlight=light-cyan
/blue
if
[ x$feature_default_font_path = xy ] ;
then
font=unicode
else
insmod part_msdos
insmod ext2
# 填入自己那个分区的 UUID
search --no-floppy --fs-uuid --
set
=root $UUID
font=
"/grub/fonts/unicode.pf2"
fi
if
loadfont $font ;
then
set
gfxmode=auto
load_video
insmod gfxterm
set
locale_dir=$prefix
/locale
set
lang=zh_CN
insmod gettext
fi
terminal_input console
terminal_output gfxterm
set
timeout=500
menuentry
"Archlinux Live ISO $ver (x86_64)"
{
loopback loop $isofile
linux (loop)
/arch/boot/x86_64/vmlinuz
archisolabel=$label img_dev=
/dev/disk/by-uuid/
$UUID img_loop=$isofile earlymodules=loop
initrd (loop)
/arch/boot/x86_64/archiso
.img
}
注意前几行。把UUID
设置成自己 grub 安装的那个分区的 UUID。UUID 可以使用命令lsblk -o +UUID
取得。ver
设置成自己所使用的安装镜像中间的日期部分,label
那里有相应的年份和月份,相应地修改一下。然后保存为/mnt/grub/grub.cfg
就可以了。isofile
指向自己放 ISO 文件的地方,路径也是相对于挂载点的。
四、外部链接
- 雪月秋水的使用GRUB2引导ISO镜像
Category: Linux | Tags: grub grub2 Arch Linux | Read Count: 25798
8 年前
GRUB2 自带的字体是 GNU 自家的 Unifont 字体。其中汉字部分用的文泉驿的数据。
GRUB2 的中文化是有的。安装的时候系统语言是中文就是中文。但是 GRUB2 的汉化不完全,有时间可以去帮忙。
GRUB2 映射为 ISO 是个坑,GRUB4DOS 那个映射功能可以用。
我有个从 ISO 启动 Ubuntu LiveCD 的配置:http://p.vim-cn.com/cbt8?sh 放在 /etc/grub.d/40_custom 然后 sudo update-grub(ArchLinux 没有 update-grub 命令,要用 sudo grub-mkconfig -o /boot/grub/grub.cfg)就 OK 了。
8 年前
你的发行版应该提供 update-grub 或 grub-mkconfig 命令的。
grub2 不算太麻烦。自动生成的命令有很多 if 是为了照顾 grub2 的旧版本和不同硬件配置。去掉 if 很清爽。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK