多系统分区部署与Linux 2.4内核编译及Grub配置技术求助
搞定Dell Precision上的多系统部署与老内核编译指南
我来一步步帮你完成这些任务,都是针对Dell Precision 64位笔记本的实操方案,咱们分模块拆解:
一、多分区系统部署:CentOS主系统 + 32位Ubuntu 14.04.1 LTS
1. 提前规划分区
建议切换到Legacy BIOS模式(因为后续要装的2.4内核不支持UEFI),分区方案参考:
- /boot分区:分配1GB,格式ext4,所有系统共享这个分区
- CentOS根分区:至少50GB,格式ext4,挂载点
/ - Swap分区:内存≤8GB时分配同内存大小;内存>8GB时分配8GB即可
- Ubuntu根分区:30-40GB,格式ext4,挂载点
/ - 可选共享数据区:剩余硬盘空间,格式ext4,挂载点
/data,方便跨系统传文件
2. 安装CentOS主系统
- 制作最新64位CentOS安装U盘,笔记本从U盘启动
- 安装时选「自定义分区」,按规划创建
/boot、CentOS根分区和Swap分区,完成安装后确认系统可正常启动
3. 安装32位Ubuntu 14.04.1 LTS
- 制作32位Ubuntu安装U盘,笔记本从U盘启动
- 安装时选「其他选项」进入手动分区:
- 找到已有的
/boot分区,设置挂载点为/boot,不要格式化 - 找到预留的Ubuntu根分区,设置挂载点为
/并选择格式化 - Swap分区直接选「用作交换空间」
- 找到已有的
- 安装引导器时,选择CentOS所在的硬盘(比如
/dev/sda),确保Grub能识别两个系统
二、编译带RT补丁的2.4.24 Linux内核
2.4内核年代久远,新编译器不兼容,得先搞定编译环境:
1. 准备编译依赖
在CentOS系统中操作:
# 安装基础编译工具 yum install -y ncurses-devel make wget patch # 2.4内核需要gcc 3.x版本,安装gcc34 yum install -y gcc34 # 指定用gcc34编译 export CC=gcc34
2. 下载内核源码与RT补丁
# 下载2.4.24内核源码 wget https://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.24.tar.gz # 下载对应版本的RT补丁 wget https://archive.kernel.org/pub/linux/kernel/projects/rt/2.4/patches-2.4.24/rt-linux-2.4.24.patch.gz # 解压文件 tar -xzf linux-2.4.24.tar.gz gunzip rt-linux-2.4.24.patch.gz
3. 打RT补丁并配置内核
cd linux-2.4.24 # 打RT补丁 patch -p1 < ../rt-linux-2.4.24.patch # 进入图形化配置界面,启用RT相关选项 make menuconfig
在配置界面中,找到「Processor type and features」,勾选「Preemptible Kernel (Low-Latency Desktop)」(RT补丁核心选项),其他选项可保持默认或根据硬件调整,完成后保存退出。
4. 编译并安装内核
# 编译内核镜像 make bzImage # 编译内核模块 make modules # 安装模块到系统 make modules_install # 安装内核到/boot分区 make install
三、同步编译结果到Grub配置
编译完成后,让Grub识别新内核:
- 自动更新Grub配置:
# CentOS系统执行 grub2-mkconfig -o /boot/grub2/grub.cfg # Ubuntu系统执行 update-grub
- 若自动生成条目异常,手动添加:
编辑/etc/grub.d/40_custom文件,添加以下内容(替换成你的实际分区编号):
执行上述Grub更新命令生效。menuentry "Linux 2.4.24 RT" { insmod ext2 set root='hd0,msdos2' # 替换为你的/boot分区编号 linux /vmlinuz-2.4.24 root=/dev/sda3 ro quiet # 替换为你的根分区 }
额外注意事项
- 2.4内核不支持UEFI,必须保持Legacy BIOS模式才能启动该内核
- 若编译时遇依赖错误,检查gcc版本是否为3.x,或安装老版本库(如
libstdc++3) - 32位Ubuntu安装后,可执行
apt-get install ia32-libs启用64位兼容库
内容的提问来源于stack exchange,提问作者DevBee
相关产品推荐
相关产品推荐

