内核编译磁盘分区
⑴ linux磁盘分区的Linux磁盘分区
在Windows操作系统中,是先将物理地址分开,再在分区上建立目录.在Windows操作系统中,所有路径都是从盘符开始,如C://program file。
Linux正好相反,是先有目录,再将物理地址映射到目录中。在Linux操作系统中,所有路径都是从根目录开始。Linux默认可分为3个分区,分别是boot分区、swap分区和根分区。
无论是Windows操作系统,还是Linux操作系统,每个分区均可以有不同的文件系统,如FAT32、NTFS、Yaffs2等。
(1)boot分区
该分区对应于/boot目录,约100MB.该分区存放Linux的Grub(bootloader)和内核源码。用户可通过访问/boot目录来访问该分区.换句话说,用户对/boot目录的操作就是操作该分区。
(2)swap分区
该分区没有对应的目录,故用户无法访问。
Linux下的swap分区即为虚拟内存.虚拟内存用于当系统内存空间不足时,先将临时数据存放在swap分区,等待一段时间后,然后再将数据调入到内存中执行.所以说,虚拟内存只是暂时存放数据,在该空间内并没有执行。
Ps:虚拟内存
虚拟内存是指将硬盘上某个区域模拟为内存.因此虚拟内存的实际物理地址仍然在硬盘上.虚拟内存,或者说swap分区只能由系统访问,其大小为物理内存的2倍。
(3)根分区
在Linux操作系统中,除/boot目录外的其它所有目录都对应于该分区.因此,用户可通过访问除/boot目录外的其它所有目录来访问该分区。
Attention!!!
(1)在Linux操作系统中,用户可根据需要进行修改分区.修改后的分区中,同一目录下的文件可能在不同分区中.比如/home目录下有a、b、c三个目录,可将不同的分区挂载到这三个目录下,这种操作是允许的。
(2) 逻辑分割的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个) 逻辑分割(5号到63号), SATA硬盘则有11个) 逻辑分割(5号到15号)。 (鸟哥版的)
不过根据最新的 linux内核技术规范 中指示,逻辑分区可以无限。
<1>硬盘上至少有1个主分区。
<2>逻辑分区不能再进行分区。
(3)Linux分区目录和盘符的关系:
假如硬盘安装在IDE1的主盘,并用户想分区成6个可以使用的硬盘分区,则可以采用下面两种方式。
方式一:采用3个主分区和3个逻辑分区
方式二:采用1个主分区和5个逻辑分区
当然还有其他的分区方式,只要满足上述说的规则就行
安装Linux时,默认分为三个区,分别是/boot分区、根分区和swap分区.这三个分区分别对应的盘符是hda1、hda2、hda3。
(4)Linux允许使用fdisk -l命令和df -h命令来查询其硬盘分区.其中,df无法显示出swap分区的大小。
[root@localhost /]#df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/hda2 8.8GB 3.1GB 5.3GB 38% / (根分区)
/dev/hda1 99MB 9.2MB 85MB 10% /boot (boot分区)
(5)在PC机下,A、B盘并不存在,这两个盘在Linux下类似于hda1/hda3,而C盘类似于hda2,D、E、F盘类似于hda5、hda6、hda7。
(6)swap分区不对应盘符。
(7)若硬盘的MBR已坏,则该磁盘就不能再作为引导盘,只能作为数据盘.因为MBR位于硬盘的起始处,用户不能通过软件进行修复,也不能跳过起始处.而硬盘中间的某个磁道坏了,用户可以软件修复,也可以跳过该磁道。
⑵ Linux内核重新编译安装后,分区会不会改变
不会, 内核跟系统是2个概念, 编译安装内核不是重装系统 所以不会对分区造成任何影响
内核编译好只是一个内核文件和相应的内核驱动, 内核文件放在 /boot下面用以启动系统, 内核驱动一般放在 /lib/kernel 下面
⑶ Linux内核编译
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux作为一个自由软件,
在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定
制一个更高效,更稳定的内核,就需要重新编译内核。本文将以RedHat Linux 6.0(kernel
2.2.5)为操作系统平台,介绍在Linux上进行内核编译的方法。
一、 下载新内核的源代码
目前,在Internet上提供Linux源代码的站点有很多,读者可以选择一个速度较快的站点下载。笔者是从站点www.kernelnotes.org上下载了Linux的最新开发版内核2.3.14的源代码,全部代码被压缩到一个名叫Linux-2.3.14.tar.gz的文件中。
二、 释放内核源代码
由于源代码放在一个压缩文件中,因此在配置内核之前,要先将源代码释放到指定的目录下。首先以root帐号登录,然后进入/usr/src子目录。如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-2.2.5的子目录。该目录下存放着内核2.2.5的源代码。此外,还会发现一个指向该目录的链接linux。删除该连接,然后将新内核的源文件拷贝到/usr/src目录中。
(一)、用tar命令释放内核源代码
# cd /usr/src
# tar zxvf Linux-2.3.14.tar.gz
文件释放成功后,在/usr/src目录下会生成一个linux子目录。其中包含了内核2.3.14的全部源代码。
(二)、将/usr/include/asm、/usr/inlude/linux、/usr/include/scsi链接到/usr/src/linux/include目录下的对应目录中。
# cd /usr/include
# rm -Rf asm linux
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi
(三)、删除源代码目录中残留的.o文件和其它从属文件。
# cd /usr/src/linux
# make mrproper
三、 配置内核
(一)、启动内核配置程序。
# cd /usr/src/linux
# make config
除了上面的命令,用户还可以使用make menuconfig命令启动一个菜单模式的配置界面。如果用户安装了X window系统,还可以执行make xconfig命令启动X window下的内核配置程序。
(二)、配置内核
Linux的
内核配置程序提供了一系列配置选项。对于每一个配置选项,用户可以回答"y"、"m"或"n"。其中"y"表示将相应特性的支持或设备驱动程序编译进内
核;"m"表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序
的支持。由于内核的配置选项非常多,本文只介绍一些比较重要的选项。
1、Code maturity level options(代码成熟度选项)
Prompt for development and/or incomplete code/drivers
(CONFIG_EXPERIMENTAL) [N/y/?]
如果用户想要使用还处于测试阶段的代码或驱动,可以选择“y”。如果想编译出一个稳定的内核,则要选择“n”。
1、 Processor type and features(处理器类型和特色)
(1)、Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC, PPro/6x86MX) [PPro/6x86MX] 选择处理器类型,缺省为Ppro/6x86MX。
(2)、Maximum Physical Memory (1GB, 2GB) [1GB] 内核支持的最大内存数,缺省为1G。
(3)、Math emulation (CONFIG_MATH_EMULATION) [N/y/?] 协处理器仿真,缺省为不仿真。
(4)、MTRR (Memory Type Range Register) support (CONFIG_MTRR) [N/y/?]
选择该选项,系统将生成/proc/mtrr文件对MTRR进行管理,供X server使用。
(5)、Symmetric multi-processing support (CONFIG_SMP) [Y/n/?] 选择“y”,内核将支持对称多处理器。
2、 Loadable mole support(可加载模块支持)
(1)、Enable loadable mole support (CONFIG_MODULES) [Y/n/?] 选择“y”,内核将支持加载模块。
(2)、Kernel mole loader (CONFIG_KMOD) [N/y/?] 选择“y”,内核将自动加载那些可加载模块,否则需要用户手工加载。
3、 General setup(一般设置)
(1)、Networking support (CONFIG_NET) [Y/n/?] 该选项设置是否在内核中提供网络支持。
(2)、PCI support (CONFIG_PCI) [Y/n/?] 该选项设置是否在内核中提供PCI支持。
(3)、PCI access mode (BIOS, Direct, Any) [Any] 该选项设置Linux探测PCI设备的方式。选择“BIOS”,Linux将使用BIOS;选择“Direct”,Linux将不通过BIOS;选择“Any”,Linux将直接探测PCI设备,如果失败,再使用BIOS。
(4)Parallel port support (CONFIG_PARPORT) [N/y/m/?] 选择“y”,内核将支持平行口。
4、 Plug and Play configuration(即插即用设备支持)
(1)、Plug and Play support (CONFIG_PNP) [Y/m/n/?] 选择“y”,内核将自动配置即插即用设备。
(2)、ISA Plug and Play support (CONFIG_ISAPNP) [Y/m/n/?] 选择“y”,内核将自动配置基于ISA总线的即插即用设备。
5、 Block devices(块设备)
(1)、Normal PC floppy disk support (CONFIG_BLK_DEV_FD) [Y/m/n/?] 选择“y”,内核将提供对软盘的支持。
(2)、Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (CONFIG_BLK_DEV_IDE) [Y/m/n/?] 选择“y”,内核将提供对增强IDE硬盘、CDROM和磁带机的支持。
6、 Networking options(网络选项)
(1)、Packet socket (CONFIG_PACKET) [Y/m/n/?] 选择“y”,一些应用程序将使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。
(2)、Network firewalls (CONFIG_FIREWALL) [N/y/?] 选择“y”,内核将支持防火墙。
(3)、TCP/IP networking (CONFIG_INET) [Y/n/?] 选择“y”,内核将支持TCP/IP协议。
(4)The IPX protocol (CONFIG_IPX) [N/y/m/?] 选择“y”,内核将支持IPX协议。
(5)、Appletalk DDP (CONFIG_ATALK) [N/y/m/?] 选择“y”,内核将支持Appletalk DDP协议。
8、SCSI support(SCSI支持)
如果用户要使用SCSI设备,可配置相应选项。
9、Network device support(网络设备支持)
Network device support (CONFIG_NETDEVICES) [Y/n/?] 选择“y”,内核将提供对网络驱动程序的支持。
10、Ethernet (10 or 100Mbit)(10M或100M以太网)
在该项设置中,系统提供了许多网卡驱动程序,用户只要选择自己的网卡驱动就可以了。此外,用户还可以根据需要,在内核中加入对FDDI、PPP、SLIP和无线LAN(Wireless LAN)的支持。
11、Character devices(字符设备)
(1)、Virtual terminal (CONFIG_VT) [Y/n/?] 选择“y”,内核将支持虚拟终端。
(2)、Support for console on virtual terminal (CONFIG_VT_CONSOLE) [Y/n/?]
选择“y”,内核可将一个虚拟终端用作系统控制台。
(3)、Standard/generic (mb) serial support (CONFIG_SERIAL) [Y/m/n/?]
选择“y”,内核将支持串行口。
(4)、Support for console on serial port (CONFIG_SERIAL_CONSOLE) [N/y/?]
选择“y”,内核可将一个串行口用作系统控制台。
12、Mice(鼠标)
PS/2 mouse (aka "auxiliary device") support (CONFIG_PSMOUSE) [Y/n/?] 如果用户使用的是PS/2鼠标,则该选项应该选择“y”。
13、Filesystems(文件系统)
(1)、Quota support (CONFIG_QUOTA) [N/y/?] 选择“y”,内核将支持磁盘限额。
(2)、Kernel automounter support (CONFIG_AUTOFS_FS) [Y/m/n/?] 选择“y”,内核将提供对automounter的支持,使系统在启动时自动 mount远程文件系统。
(3)、DOS FAT fs support (CONFIG_FAT_FS) [N/y/m/?] 选择“y”,内核将支持DOS FAT文件系统。
(4)、ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/m/n/?]
选择“y”,内核将支持ISO 9660 CDROM文件系统。
(5)、NTFS filesystem support (read only) (CONFIG_NTFS_FS) [N/y/m/?]
选择“y”,用户就可以以只读方式访问NTFS文件系统。
(6)、/proc filesystem support (CONFIG_PROC_FS) [Y/n/?] /proc是存放Linux系统运行状态的虚拟文件系统,该项必须选择“y”。
(7)、Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?] EXT2是Linux的标准文件系统,该项也必须选择“y”。
14、Network File Systems(网络文件系统)
(1)、NFS filesystem support (CONFIG_NFS_FS) [Y/m/n/?] 选择“y”,内核将支持NFS文件系统。
(2)、SMB filesystem support (to mount WfW shares etc.) (CONFIG_SMB_FS)
选择“y”,内核将支持SMB文件系统。
(3)、NCP filesystem support (to mount NetWare volumes) (CONFIG_NCP_FS)
选择“y”,内核将支持NCP文件系统。
15、Partition Types(分区类型)
该选项支持一些不太常用的分区类型,用户如果需要,在相应的选项上选择“y”即可。
16、Console drivers(控制台驱动)
VGA text console (CONFIG_VGA_CONSOLE) [Y/n/?] 选择“y”,用户就可以在标准的VGA显示方式下使用Linux了。
17、Sound(声音)
Sound card support (CONFIG_SOUND) [N/y/m/?] 选择“y”,内核就可提供对声卡的支持。
18、Kernel hacking(内核监视)
Magic SysRq key (CONFIG_MAGIC_SYSRQ) [N/y/?] 选择“y”,用户就可以对系统进行部分控制。一般情况下选择“n”。
四、 编译内核
(一)、建立编译时所需的从属文件
# cd /usr/src/linux
# make dep
(二)、清除内核编译的目标文件
# make clean
(三)、编译内核
# make zImage
内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件zImage。如果编译的内核很大的话,系统会提示你使用make bzImage命令来编译。这时,编译程序就会生成一个名叫bzImage的内核映像文件。
(四)、编译可加载模块
如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。
# make moles
# make modelus_install
编译成功后,系统会在/lib/moles目录下生成一个2.3.14子目录,里面存放着新内核的所有可加载模块。
五、 启动新内核
(一)、将新内核和System.map文件拷贝到/boot目录下
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.3.14
# cp /usr/src/linux/System.map /boot/System.map-2.3.14
# cd /boot
# rm -f System.map
# ln -s System.map-2.3.14 System.map
(二)、配置/etc/lilo.conf文件。在该文件中加入下面几行:
default=linux-2.3.14
image=/boot/vmlinuz-2.3.14
label=linux-2.3.14
root=/dev/hda1
read-only
(三)、使新配置生效
# /sbin/lilo
(四)、重新启动系统
# /sbin/reboot
新内核如果不能正常启动,用户可以在LILO:提示符下启动旧内核。然后查出故障原因,重新编译新内核即可。
了解更多开源相关,去LUPA社区看看吧。
希望对你能有所帮助。
⑷ Linux 内核编译时出现 “设备上没有空间”,该如何进行重新定义空间
1)你编译的分区空间不足了,你换一个容量大的分区进行编译即可。
可以用df -h 查看各挂载分区的容量
2)分区用fdisk命令进行
具体可以参考《鸟哥的Linux私房菜_基础学习篇_第三版》
⑸ linux 编译内核 空间不够怎么办我分给linux的盘只有8G
8g按理够了,如果不行,可以卸载一些不用软件,也可以动态加载内核。
如果你是学习linux内核,建议不要覆盖内核,这样新的不行还可以用旧的,如果是单纯的使用,可以覆盖。
⑹ linux系统的磁盘分区有哪几种
1、/分区。用于存储系统文件。
2、swap,即交换分区,也是一种文件系统,它的作用是作为Linux的虚拟内存。
在Windows下,虚拟内存是一个文件:pagefile.sys;而Linux下,虚拟内存需要使用独立分区,这样做的目的据说是为了提高虚拟内存的性能。
3、/home:是用户文件夹所在的地方。如果独立划分/home,即使Ubuntu不能启动,也可以用Live CD启动来取得自己的文件资料。
4、/boot:包含了操作系统的内核和在启动系统过程中所要用到的文件。
在很多老旧的教程中,都会让用户在/boot目录上挂载一个大小为100MB左右的独立分区,并推荐把该/boot放在硬盘的前面——即1024柱面之前。事实上,那是Lilo无法引导1024柱面后的操作系统内核的时代的遗物了。当然,也有人说,独立挂载/boot的好处是可以让多个Linux共享一个/boot。
其实,无论是基于上述的哪种理由,都没有必要把/boot分区独立出来。首先,Grub可以引导1024柱面后的Linux内核;其次,即使是安装有多个Linux,也完全可以不共享/boot。因为/boot目录的大小通常都非常小,大约20MB,分一个100MB的分区无疑是一种浪费,而且还把把硬盘分的支离破碎的,不方便管理。另外,如果让两个Linux共享一个/boot,每次升级内核,都会导致Grub的配置文件冲突,带来不必要的麻烦。而且,不独立/boot分区仅仅占用了根目录下的大约20MB左右的空间,根本不会对根目录的使用造成任何影响。
但值得注意的是,随着硬盘容量的增大,无法引导Linux内核的现象再次出现,这也就是着名的137GB限制。很遗憾,Grub是无法引导137GB之后的分区中的Linux内核的。如果你不巧遇到了这样的情况,你就要考虑把/boot独立挂载到位于137GB前方的独立分区中,或者索性就把 Linux的分区都往前移动,让根目录所在分区位于137GB之前。
5、/usr/local:是 Linux系统存放软件的地方。
建议把/opt,/usr或/usr/local独立出来的教程,基本上也是非常老的了。使用Ubuntu时,我们一般都是使用系统的软件包管理器安装软件,很少自己编译安装软件。而建议独立/usr,/opt,/usr/local的理由无非是为了重装系统时不再重新编译软件而直接使用早先编译的版本。不过对于大多数普通用户来说,这个建议通常是没有意义的。
6、/var:是系统日志记录分区。
7、/tmp分区,用来存放临时文件。
建议把/var和/tmp独立出来的教程通常是面向服务器的。因为高负载的服务器通常会产生很多日志文件、临时文件,这些文件经常改变,因此把/var,/tmp独立出来有利于提高服务器性能。但如果你用Ubuntu是做桌面的,或从来不关心过系统日志这东西,就没有必要独立的为/var和/tmp挂载分区。
还有些老旧的教程中建议把Linux安装在主分区中,或在/boot下挂载一个主分区。事实上,这也是不需要的。Linux的所有分区都可以位于逻辑分区中。所以请放心的把Linux安装在逻辑分区中吧。
---
Linux的文件系统(分区格式)主要有ext3、ReiserFS、XFS、JFS等。同时Linux也可以读写使用FAT、FAT32和NTFS文件系统的分区。
Ubuntu默认的文件系统是ext3。
或许有人会告诉你其他文件系统会有什么什么优点,ext3会有什么什么不好,但如果你对文件系统并不了解的话,我的建议就是使用默认的ext3,默认的设置可能不一定是性能最好的,但对普通用户一定是最稳定最安全最适合的。
最大分区大小:ext3是4TB,ReiseFS是16TB。FAT32在Windows XP和Windows 2000里的最大分区是32GB;而Linux中的FAT32则可以支持到2TB。
最大文件大小:ext3是2GB-4GB,ReiseFS是8TB,FAT32是4GB。
---
如果你准备在硬盘里只安装Ubuntu一个操作系统的话,建议你采用三分区方案:
1)“/”分区:使用ext3文件系统;分区容量为10GB-15GB。
2)“swap”分区:用于交换空间。内存小于或等于 512MB,swap分区容量为内存大小的2倍;内存大于512MB的,swap分区容量等于内存大小。
3)“/home”分区:使用ext3文件系统;分区容量为“/”和“swap”以外的剩余空间
在linux系统中至少必须有两个挂载点(磁盘分区),分别是 / 及 swap ,其余是否要将其他的挂载点独立分割出来则视你的规划需求而定。可参考以下建议:
swap的大小约等同你的内存大小,或稍大
初次接触的新手或硬盘空间有限 Desktop的安装建议:
挂载点 装置 说明
/ /dev/hda1 可用空间 - swap大小后的所有空间
swap /dev/hda2 大约内存大小 建议至少512Mb
高级用户 Desktop的安装建议:
挂载点 装置 说明
/ /dev/hda1 15G
/home /dev/hda2 最大的剩余空间
/boot /dev/hda3 128MB左右
swap /dev/hda5 大约内存大小(建议至少512MB)
高级用户 Server的安装建议:
挂载点 装置 说明
/ /dev/hda1 15G
/home /dev/hda2 最大的剩余空间
/boot /dev/hda3 128MB左右
swap /dev/hda5 大约内存大小(建议至少512MB)
/var /dev/hda6 视服务器功能决定大小
安装Liunx Ubuntu磁盘分区的配置与建议事项就说到这里,有了以上的相关说明相信要将自己的硬盘规划好,应该不会是件难事啦。
Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1、hda2、hda3、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。因此,Linux 下面每一个硬盘总共最多有 16 个分区。
因此 hda1- hda4 是主区的意思。 hda5以后是逻辑分区!!
http://www.linuxprobe.com/chapter-06.html 具体你可以看下这个,上面你会学到更多的
希望可以帮到你啊
⑺ 在mount上的分区解压编译内核是否有问题
硬盘空间不足, 多格式化出来一个分区,
然后mount上,在这个分区解压编译内核
虚拟机试过,没有问题。启动也无影响
⑻ Linux内核编译为什么intird来制作 RAMdisk
如果没有initrd,可能会不能够识别linux所在的根分区,因为内核并没有带所有的磁盘驱动和文件系统驱动,现在根文件系统可能保存在各种存储设备上,包括SCSI, SATA, U盘等等。把这些设备驱动程序全部编译到内核中显得不太方便。所以,用内存模拟硬盘来存放驱动,然后加载就可以访问硬盘了
initrd并非必须,如果内核可以直接挂载根分区,就不需要。
⑼ linux10.04 系统编译内核时提示硬盘空间不足
wubi 有很多安装方式,估计你用的是虚拟 linux 分区文件的方式安装的。
这个时候你就算安装到一个 10000000G 的分区下面,也只能实现你安装时设置的大小。你从另外一个系统上面看,这个分区里面就几个文件而已。
刻盘重新装吧,wibi 是拿来混日子的。用 ubuntu 来编译内核也是混日子的。
用 wubi + ubuntu 来编译内核……还是关机省点电来的实际……
⑽ 如何在外置挂载硬盘上编译linux内核
有两种解决办法:
1、重新安装Ubuntu系统,分区的时候多分10GB左右的空间。建议分区大小如下:
/boot 500MB
/ 15GB
swap 4GB(根据你的内存大小而定,如果你的内存大于4GB,则没有必要分swap分区)
2、重新分一个区出来,建议大小为10GB左右,然后挂载到/目录下,则此时的/目录会增加10GB。这样你就可以重新编译内核了