內核編譯磁碟分區
⑴ 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。這樣你就可以重新編譯內核了