1.WinPE镜像制作代码
2.源码方式安装特定版本 Linux Kernel 步骤
3.编译BOOT.EFI总结
4.云主机装黑果实践(4):阿里轻量机上变色龙bootloader启动问题
5.å¦ä½å¶ä½grubå¯å¨å
ç
6.LINUX系统下grub菜单的源码几个技巧
WinPE镜像制作代码
在做启动U盘的时候,我们一般都会将Pe做成ISO的源码格式,下面就为大家提供一个能够直接生成PE ISO的源码源码:
@Echo of
COLOR 1e
Set Prog= 启动ISO映像制作程序
Set L1=
Set L2=
Set L3=?┤ %Prog% ├?
Set L4=
Set L5=
Set L6=
Set L7=
Set L8=?版权所有:caomaoLBL
?
Set L9=?────────────────────────?
Title %Prog%
::checkos
if /i not "%os%."=="windows_nt." goto systemerro
::判断系统版本并设置theos
ver|find /i " 6.1"nul set winver=win7 set theos=win7
ver|find /i " 6.0"nul set winver=vista set theos=vista
ver|find /i " 5.0"nul set winver=winnt set theos=
ver|find /i " 5.1"nul set winver=winnt set theos=xp
ver|find /i " 5.2"nul set winver=winnt set theos=
goto start
:systemerro
cls
echo.
echo.
echo 注意:未经测试,本软件可能不适用于非 windows pe//xp//vista/win7 操作系统。源码
echo 按回车键退出安装程序
pause nul
exit
:Start
Title %Prog%——制作
CLS
Echo.
Echo %L1%
Echo %L2%
Echo %L3%
Echo %L4%
Echo %L5%
Echo %L6%
Echo ?源码 请选择生成方式: ?
Echo %L6%
Echo ? [1] 生成 Grub4dos英文版启动 ISO映像 ?
Echo ? [2] 生成 Grub4dos中文版启动 ISO映像 ?
Echo ? [3] 生成 Grub4dosGfxmenu启动 ISO映像 ?
Echo ? [4] 生成 Isolinux启动 ISO映像 ?
Echo ? [5] 生成 ISO格式PE内核 ISO映像 ?
Echo ? [6] 生成 纯PE启动 ISO映像
Echo ? [7] 生成 EZboot启动 ISO映像 ?
Echo ? [8] 生成 Bootmgr启动 ISO映像 ?
Echo ? [Q] 退出 ?
Echo %L6%
Echo %L7%
Echo %L8%
Echo %L9%
echo.
echo 您现在使用的是 windows %theos% 操作系统 !
echo.
::Set Choice=
Set /P Choice=请选择要进行的源码几日头条源码操作 (1/2/3/4/5/6/7/8/Q) ,然后按回车:
If "%Choice%"=="" GOTO Start
If Not "%Choice%"=="" SET Choice=%Choice:~0,源码1%
If /I "%Choice%"=="1" GOTO Gruben
If /I "%Choice%"=="2" GOTO Grubchs
If /I "%Choice%"=="3" GOTO Grubgfx
If /I "%Choice%"=="4" GOTO Isolinux
If /I "%Choice%"=="5" GOTO Neihe
If /I "%Choice%"=="6" GOTO PEiso
If /I "%Choice%"=="7" GOTO EZboot
If /I "%Choice%"=="8" GOTO Bootmgr
If /I "%Choice%"=="q" EXIT
Goto Start
:Gruben大白菜官网
Binoscdimg.exe -h -m -o -d -l"GRUBEN" -n -b"Bingrldr.bif" -t//,:: -x "rojectGruben" "Gruben.iso"
Goto :Success
:Grubchs
Binoscdimg.exe -h -m -o -d -l"GRUBCHS" -n -b"Bingrchs.bif" -t//,:: -x "rojectGrubchs" "Grubchs.iso"
Goto :Success
:Grubgfx
Binoscdimg.exe -h -m -o -d -l"GRUBGFX" -n -b"Bingrgfx.bif" -t//,:: -x "rojectGrubgfx" "Grubgfx.iso"
Goto :Success
:Isolinux
Binoscdimg.exe -h -m -o -d -l"ISOLINUX" -n -b"Binisolinux.bin" -t//,:: -x "rojectIsolinux" "Isolinux.iso"
Goto :Success
:Neihe
Binoscdimg.exe -h -m -o -l"WINPE" -n -t//,:: -x "rojectNeiHe" "WINPE.ISO"
Goto :Success
Eiso
Binoscdimg.exe -h -m -o -d -l"E" -n -b"Binpe.bin" -t//,:: -x "rojectPEiso" "E.iso"
Goto :Success
:EZboot
Binoscdimg.exe -h -m -o -d -l"EZBOOT" -n -b"rojectEZbootbootloader.bin" -t//,:: -x "rojectEZboot" "EZboot.iso"
Goto :Success
:Bootmgr
Binoscdimg.exe -h -m -o -d -l"NT6.X" -n -b"Binbootmgr.bif" -t//,:: -x "ProjectNT6.X" "NT6.X.iso"
Goto :Success
:Success
title %prog%——制作完成
cls
echo.
echo.ISO映像 已制作成功,就在当前目录下...
echo.
set /p cho=返回主菜单继续制作请输入Y,源码否则按Enter(回车)退出。源码
if /i "%cho%"=="y" call :start
exit
源码方式安装特定版本 Linux Kernel 步骤
源码方式安装特定版本Linux Kernel 步骤详解
本文将详细介绍通过源码方式安装指定版本Linux Kernel(本文以6.2.0版本为例)的源码步骤。在安装过程中,源码您需要下载软件仓库(upstream),源码配置内核以适应特定需求,源码并最终完成内核的源码青云决 源码安装。此外,源码您将学习如何更新Grub配置以确保系统使用新内核启动。
安装前准备:确认操作系统为RHEL(Linux)环境,并拥有root权限。所有命令默认在root权限下执行。确保基础的Linux开发工具已安装,安装过程中如需补充工具则会自动进行。
步骤1:下载并切换到特定版本的Linux Kernel仓库
1.1 下载Linux Kernel仓库至/home目录,后续命令将自动安装于适当位置,无需更改文件名。对于6.2.0版本,无需特别修改文件名。
步骤2:配置内核以自定义属性
2.1 使用配置工具自定义内核属性。andfix源码详解有多种方式:完全重新配置或导入并修改之前的配置文件(.config),最终生成新的配置文件(.config),旧配置文件则命名为(.config.old)。
步骤3:编译Linux Kernel生成bzImage文件
步骤4:默认安装Linux Kernel模块,存储于/lib/modules文件夹。
步骤5:安装Linux Kernel,自动安装至/boot文件夹下,包含System.map-6.2.0-upstream、initramfs-6.2.0-upstream.img、vmlinuz-6.2.0-upstream,更新链接关系至新生成文件。
更新Grub配置
1.1 设置启动内核,使用--set-default参数后跟启动的水墨龙源码Linux Kernel版本。
1.2 选择启动cmdline(非必要),使用--remove-args和--args参数添加或删除cmdline参数。
1.3 查看Grub配置。
1.4 生成新的Grub配置文件,位置根据服务器启动方式决定。
重新启动计算机并配置Linux Kernel
若服务器包含其他Linux Kernel版本,指定特定版本内核并设置启动命令行参数。
1.1 修改启动命令行参数(若需要)。
1.2 重新安装Linux Kernel,删除旧版本文件。操作原因:安装过程自动链接相关文件,重新设置链接关系。删除旧文件标记为.old。预约源码php
1.3 重新生成/boot/grub/grubenv文件,并验证配置。
1.4 重启计算机。
检查安装结果
通过命令检查Linux Kernel版本,确认安装过程无误。
本文详细介绍了源码方式安装特定版本Linux Kernel的完整步骤,包括下载仓库、配置内核、编译及安装内核,以及更新Grub配置。最后,通过重启计算机验证安装结果。希望此指南能够帮助您顺利完成Linux Kernel的安装。
编译BOOT.EFI总结
编译loongnix1.0系统中的BOOTMIPS.EFI指南
一、解压源码包
二、应用压缩包中的补丁到源代码中
三、运行配置脚本
四、开始编译过程
五、安装编译工具
六、生成启动镜像BOOT.EFI
UEFI启动主要通过 /boot/EFI/BOOT/xxxx.EFI 来启动grub引导。而BOOTMIPS.EFI后跟的命令模块可以根据个人需求进行自定义添加。
七、将文件复制到指定位置
重启后,即可利用新编译的BOOTMIPS.EFI引导启动内核。
若欲获取更多相关信息,可关注公众号。
云主机装黑果实践(4):阿里轻量机上变色龙bootloader启动问题
在云主机安装黑果系统系列的第四部分中,我们面临了在阿里轻量机上部署大镜像时的挑战,尤其是启动变色龙bootloader的问题。在这个过程中,我们首先需要解决的是安装脚本installnet.sh的问题,它在处理大镜像时由于wget和gzip版本低导致解压过程卡顿。我们通过替换命令解决了这个问题,使得解压和dd操作可以在分钟内完成,系统成功启动grub2并进入了Tinycore Linux环境。
然而,更大的问题在于cdboot的运行在云主机上失败,无法显示引导界面。这涉及到ignore_msrs的设置和bootloader版本问题。经过排查,我们发现从r的enoch v5.0.版本开始,cdboot可以启动,但及之后的版本则存在问题。通过查看Forge上的源码,我们发现了一些关键commit的影响,特别是对DMA Remapping table和ACPI路径的改动。
为了找到问题所在,我们搭建了pd环境,使用Xcode 8.2.1和macOS .的命令行工具编译不同版本的cdboot。最终,我们锁定在版本的src中的libsaio/cpu.c文件,通过注释部分代码,成功制作出可以在云主机上正常启动的cdboot。这个方法也适用于版本,尽管它在云主机上直接启动失败。
调试的过程涉及到反复试验和调整,因为云主机的特殊性可能导致部分配置不起作用。尽管如此,通过解决关键问题,我们进入了针对云主机定制变色龙的调试流程。值得注意的是,有时通过上传和的wowpc.iso,先启动,再尝试,可以绕过启动界面问题,推测可能是loader的残留硬件参数影响。最小配置的详细信息将在后续章节中进一步探讨。
å¦ä½å¶ä½grubå¯å¨å ç
å°ä¸è½½å¾å°çgrldrç´æ¥æ¹å为grldr.bifï¼ç¶å使ç¨UltraISOæ°å»ºä¸ä¸ªISOéåï¼éæ©âå¯å¨å çï¼å è½½å¼å¯¼ä¿¡æ¯âå è½½grldr.bifã
è¿æ¯ï¼ä½ æ°å»ºçISOéåå·²ç»å ·å¤äºå çå¯å¨åè½ï¼grubèåæ件menu.lstæ¤æ¶åºè¯¥æ¾å¨å çæ ¹ç®å½ï¼ä¸ç¶grldrå¯å¨åæ¾ä¸å°ã
ç½ä¸ä¸å°æç« è®²è¿°äºå¦ä½å°grubè£ å¨è½¯çä¸ï¼å½ç¡¬çå¼å¯¼ä¿¡æ¯è¢«ç ´åæ¶ï¼è¿å¼ 软çå°±å¯ä»¥æ´¾ä¸ç¨åºãä½æ¯å¯¹äºä¸äºæ²¡æ软驱çç¨æ·ï¼æè 使ç¨è½¯é©±ä¸æ¹ä¾¿çç¬è®°æ¬ç¨æ·ï¼å¦æè½ç¨å çå¼å¯¼ç³»ç»ï¼åä¼æ¹ä¾¿å¾å¤ãæ¬æå°è¯´æå¦ä½å¶ä½è¿å¼ å çã
é¦å å设æ们æä¸ä¸ªè¿ä½è¯å¥½çlinuxåè¡çï¼å«cdrtools软件å ï¼ï¼cdædvdå»å½æºï¼å·²ç»é 置好ï¼å¯ä»¥å¨linuxè¿ä½æ£å¸¸ï¼å ³äºå¦ä½è®¾ç½®ï¼ç½ä¸çæç« å¾å¤ï¼ï¼grub软件å ã
æçç³»ç»æ¯redhat linux 9.0,ä½è¿ä¸ªåè¡ççgrubå ä¸ä¸å«ææ们æéè¦çstage2_eltoritoæ件ï¼è¿ä¸ªæ件æ¯å¶ä½grubå¯å¨å ççæéè¦çæ件ï¼æ以æä¸è½½äº0.ççgrub,å°åï¼ftp://alpha.gnu.org/gnu/grub/grub-0..tar.gz
æ¥ä¸æ¥æ¯å®è£ grubï¼åå¤æ°æºç å å®è£ çæ¹å¼ä¸æ ·ï¼æ们éè¦ï¼
tar zxvf grub-0..tar.gz
cd grub-0.
./configure
make
make install
好äºï¼grubå®è£ å®æï¼å¾å°äºstage2_eltoritoï¼ä¸ºäºèç大家çæ¶é´ï¼ææåäºè¿ä¸ªæ件ï¼å¦æåªä½å¯ä»¥ä¸ä¼ ä¾å¤§å®¶ä¸è½½ï¼mailæï¼
ç°å¨æ们è¿æ ·åï¼å¯ä»¥å¾å°èªå·±çgrubå çéåï¼
mkdir iso
mkdir -p iso/boot/grub
cp /stage2_eltoritoæå¨çè·¯å¾/stage2_eltorito iso/boot/grub
cp /boot/grub/menu.lst iso/boot/grub
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso
好äºï¼ç°å¨grub.isoå°±æ¯ä½ æéè¦çéåäº
ç¶åç¨cdrecordæè å端æéåå»å¨cdr/rwå°±å¯ä»¥äº
cdrecord -v dev=0,0,0 /grub.isoçè·¯å¾/grub.iso speed=8
ä¸é¢çå½ä»¤ï¼æ ¹æ®èªå·±çæ åµä¿®æ¹
好äºï¼è¿æ ·æ们就å¾å°äºä¸å¼ grubå¯å¨å çã
å½ç¶ï¼ç±äºå¶ä½grubå¯å¨å çåªéè¦å¤kåèï¼æ以å¨å¶ä½isoçæ¶åï¼ä½ å¯ä»¥æ¾ä¸äºå ¶ä»æç¨çä¸è¥¿å¨isoæ件夹ä¸ï¼åæéåã
LINUX系统下grub菜单的几个技巧
grub软件包的安装
1,安装rpm或者源码包
2,安装到mbr中
*编写/boot/grub/grub.conf文件
*grub-install /dev/hda
制作grub启动盘(将自动载软盘上创建一个/boot目录)
mke2fs /dev/fd0
mount /dev/fd0 /mnt/floppy
grub-install --root-directory=/mnt/floppy/'(fd0)'
利用grub引导盘恢复被覆盖的引导系统
先安装windows在安装linux,grub可以很好的识别并启动windows,这个过程中grub并不能直接加载windows核心引导文件,而是调用windows自身的引导器boot.ini通常是windows所在分区的引导扇区,但是再次安装windows系统时,将重写mbr.这就造成了只能启动新安装的windows,而无法启动linux,因为grub本身就安装在mbr中,被新安装windows的引导覆盖了
grubroot (查看根)
grubfind /boot/grub/grub.conf (查看grub.conf在哪个分区)
grubroot (hd0,0)
grubsetup (hd0) (把grub重新安装到hd0的mbr中)
grub配置文件说明
default saved 指定默认启动项为上次保存值
default 0 默认从第一个菜单启动
splashimage (hd0,0) /boot/grub/splash.xpm.gz 指定grub背景
timeout 指定菜单延迟的时间
title Red Hat linux 指定菜单的名称
root (hd0,0) 设置grub的根设备 root为linux内核所在的分区
kernel /boot/vmlinuz-2.4.-8 ro root=LABEL=/ 加载linux内核
initrd /boot/initrd-2.4.-8.img 使用initrd命令加载镜像文件
title winxp 定义windows启动菜单
map (hd0) (hd1) 用map命令交换磁盘或分区在BIOS中的标志符,用于启动在第二个硬盘中的windows
map (hd1) (hd0)
root (hd1,0) 设置真实windows所在的分区为grub的根设备
makeactive 设置根设备为活动分区(针对windows不能从非活动分区启动)
chainloader+1 调用Windows分区的启动引导器来引导windows系统
savedeafult -- 保存当前启动项为默认启动菜单