资源描述
在VMware中搭建自己的linux系统
一、 准备工作
a) VMware系统:CentOS 6.3;
b) 搭建系统内核:linux-2.6.33.tar.gz
c) Busybox: busybox-1.20.1.tar.bz2
二、 准备用于搭建MyLinux的新硬盘
a) 在VMware中添加新硬盘
添加完新硬盘了。
b) 对新硬盘格式化。
1、查看硬盘#fdisk –l
可以看到多了新建的硬盘 /dev/sdb
2、对硬盘分区 #fdisk /dev/sdb
在Command (m for help): n中输入n,表示添加新的分区;
接着显示Command action
e extended
p primary partition (1-4)
输入p,表示设置为主分区;
接着显示,Partition number (1-4): 1,输入1,表示该主分区的分区号为1.
设置分区大小:
First cylinder (1-130, default 1): 按回车,表示分区的开始位置为默认的第1个柱面;
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +100M,这里输入+100M,表示该分区的大小为100M。
最后输入W,表示写入新的磁盘信息。不写入的话,前面的分区工作就不会保存。
3、进行格式化 #mkfs –t ext3 /dev/sdb1
表示对第二个硬盘(sdb)(也就是MyLinux)的第一个分区进行格式,格式为ext3。
c) 挂载Mylinux
在/mnt 下新建一个目录MyLinux用于挂载新的硬盘。
#mkdir /mnt/MyLinux
#mount /dev/sdb1 /mnt/MyLinux
三、 编译内核
a) 下载解压内核
到网站http://www.kernel.org/ 下载内核,这里下载linux-2.6.35.13.tar.bz2 内核。
解压内核 # bzip2 -d linux-2.6.35.13.tar.bz2
# tar -xvf linux-2.6.35.13.tar.bz2
# cd linux-2.6.35.13
b) 配置编译内核
# make distclean
#make menuconfig
可以先用 #lspci查看硬件信息
[root@localhost linux-2.6.35.13]# lspci
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
00:0f.0 VGA compatible controller: VMware SVGA II Adapter
00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
00:11.0 PCI bridge: VMware PCI bridge (rev 02)
00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.1 PCI bridge: VMware PCI Express Root Port (rev 01)
…………………………………………………………………………………………
………………………………………………………………………………………….
00:18.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.7 PCI bridge: VMware PCI Express Root Port (rev 01)
02:00.0 USB controller: VMware USB1.1 UHCI Controller
02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
02:02.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 02)
02:03.0 USB controller: VMware USB2 EHCI Controller
[root@localhost linux-2.6.35.13]#
以下详细介绍内核的配置(除以下选项外其它都可以不选)
General setup --->
[*] System V IPC
[*] Enable loadable module support --->
Processor type and features --->
Processor family (Pentium Pro) --->
(X) Pentium-Pro
[*] Generuc x86 support
Bus options (PCI etc.) --->
[*] PCI support
PCI access mode (Any) --->
(X) Any
Executable file formats / Emulations --->
[*] Kernel support for ELF binaries
[*] Write ELF core dumps with partial segments
-*- Networking support --->
Networking options --->
<*> Packet socket
<*> Unix domain sockets (NEW)
[*] TCP/IP networking
<*> IP: IPsec transport mode (NEW)
<*> IP: IPsec tunnel mode (NEW)
<*> IP: IPsec BEET mode (NEW)
-*- Large Receive Offload (ipv4/tcp)
<*> INET: socket monitoring interface (NEW)
Device Drivers --->
[*] Block devices --->
<*> Loopback device support
SCSI device support --->
<*> SCSI device support
[*] legacy /proc/scsi/ support (NEW)
<*> SCSI disk support
[*] SCSI low-level drivers (NEW) --->
<*> BusLogic SCSI support
[*] Fusion MPT device support --->
<*> Fusion MPT ScsiHost drivers for SPI
<*> Fusion MPT ScsiHost drivers for FC
<*> Fusion MPT ScsiHost drivers for SAS
<*> Fusion MPT misc device (ioctl) driver
-*- Network device support --->
[*] Ethernet (10 or 100Mbit) --->
[*] EISA, VLB, PCI and on board controllers
<*> AMD PCnet32 PCI support
Graphics support --->
<*> Support for frame buffer devices --->
File systems --->
<*> Second extended fs support
[*] Ext2 extended attributes
[*] Ext2 POSIX Access Control Lists
[*] Ext2 Security Labels
[*] Ext2 execute in place support
<*> Ext3 journalling file system support
[*] Default to 'data=ordered' in ext3 (NEW)
[*] Ext3 extended attributes (NEW)
[*] Ext3 POSIX Access Control Lists
[*] Ext3 Security Labels
CD-ROM/DVD Filesystems --->
<*> ISO 9660 CDROM file system support
{*} Native language support --->
<*> Codepage 437 (United States, Canada)
<*> Simplified Chinese charset (CP936, GB2312)
配置完成后就可以开始编译了:
# make bzImage
这是个漫长的过程,最后提示Kernel: arch/x86/boot/bzImage is ready。说明在内核的arch/x86/boot/目录中生成内核文件bzImage。
四、 制作文件系统(busybox)
a) 下载解压内核
到网站 下载busybox,这里下载busybox-1.20.1.tar.bz2。
解压内核 # bzip2 -d busybox-1.20.1.tar.bz2
# tar -xvf busybox-1.20.1.tar
# cd busybox-1.20.1
b) 配置安装busybox
# make menuconfig
下面是需要编译进busybox的功能选项。
在Busybox Settings --->
General Configuration --->
[*] Don't use /usr
PS :这个选项一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令。
在Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
PS:这个选项也是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使它正常工作。
其它选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了,配置好后退出并保存。
#make
PS: 编译busybox可能会遇到cannot find -lcrypt解决方法
搜索了下解决办法正确的是:#yum install glibc-static写下来备忘,方便其他遇到的朋友
Trying libraries: crypt m
Library crypt is needed Library m is needed
Final link with: crypt m
上面那个错误解决后会看到这个提示,其实已经编译成功了,这个时候执行make install就可以得到文件系统了。
#make install
make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向它的链接。
c) 拷贝文件系统
# cd /opt/busybox-1.20.1
#cp –r _install/* /mnt/MyLinux 将_instal下的文件全复制到MyLinux
#rm -f _install/linuxrc
#cp -r examples/bootfloppy/etc/ /mnt/MyLinux/ 将etc下的配置文件拷到MyLinux下
#cd /mnt/MyLinux
#mkdir proc mnt usr var tmp dev sys 创建目录
#cp -a /dev/{console,tty,tty2} dev/
五、 系统引导Grub
有两种方式引导系统,一种是由CentOS6.3来引导MyLinux启动,这样就直接修改CentOS6.3中的Grub文件;另一种是将MyLinux作为一个单独的系统,要在Mylinux中安装Grub。下面具体介绍这两种:
① 更新Grub
修改grub的配置文件grub.conf,#vim /boot/grub/grub.conf添加:
title MyLinux (2.6.35)
kernel /bzImage ro root=/dev/sdb1
(只要这么简单就够了)
最后复制内核文件到CentOS6.3 的 /boot 目录下。
#cp /opt/linux/linux-2.6.35.13/arch/x86/boot/bzImage /boot/
现在可以重启系统了
#reboot
在进入系统的时候按下任意键,进入Grub模式,可以看到新建的MyLinux系统了。
回车就可以进入了。
② 安装Grub
a) Grub的安装
先挂载MyLinux 硬盘,#mount /dev/sdb1 /mnt/MyLinux
安装Grub,#grub-install –root-directory=/mnt/MyLinux /dev/sdb1
成功的话,会在/mnt/MyLinux目录下添加/boot/grub目录。
拷贝上面编译好的内核文件到MyLinux硬盘的/mnt/MyLinux/boot目录中;
#cp /opt/linux/linux-2.6.35.13/arch/x86/boot/bzImage /mnt/MyLinux/boot
在/mnt/MyLinux/boot编写grub.conf文件,#vim /mnt/MyLinux/boot/grub/grub.conf(刚安装时没有这个文件)。
在grub.conf中添加如下内容。
title MyLinux (2.6.35)
kernel /boot/bzImage ro root=/dev/sda1
(只要这两行就够了)
其中splashimage-指定Grub的引导菜单界面风格;Hiddenmenu-隐藏Grub引导菜单。
最后还要重启系统进入Grub模式,对MyLinux硬盘进行进一步出来。(这一步是怎么完成的还不清楚)不过这布很关键,要不人等下再新的虚拟系统中提示 Hard Ware Error。
#reboot,重启系统
开机时按任意键进入Grub模式;
输入c进入命令行;
执行root (hd1,0)
执行setup (hd1)
最好执行 halt 关闭系统。
PS :因为在CentOS6.3中 MyLinux是第二块硬盘所以是用hd1表示。
PS: root 与 (hd1,0)之间有空格,setup与(hd1)之间也是有空格。
b) 建立新系统
选择前面制作好系统的MyLinux硬盘。
看到MyLinux (2.6.35)了,回车进入系统。
六、 进入系统了
不过这个文件系统是只读的,下面还要什么出来还没搞定。
展开阅读全文