『壹』 自己定製的linux系統沒有apt-get,如何安裝apt-get包
不是所有linux系統都用atp-get安裝軟體。
一般來說著名的linux系統基本上分兩大類:
1.RedHat系列:Redhat、Centos、Fedora等
2.Debian系列:Debian、Ubuntu等
RedHat 系列
1 常見的安裝包格式 rpm包,安裝rpm包的命令是「rpm -參數」
2 包管理工具 yum
3 支持tar包
Debian系列
1 常見的安裝包格式 deb包,安裝deb包的命令是「dpkg -參數」
2 包管理工具 apt-get
3 支持tar包
一、yum安裝。
yum安裝常用軟體的命令
#yum check-update
#yum remove 軟體包名
#yum install 軟體包名
#yum update 軟體包名
yum命令常見使用方法
yum -y install 包名(支持*) :自動選擇y,全自動
yum install 包名(支持*) :手動選擇y or n
yum remove 包名(不支持*)
rpm -ivh 包名(支持*):安裝rpm包
rpm -e 包名(不支持*):卸載rpm包
二、apt-get安裝。
apt-cache search package 搜索軟體包
apt-cache show package 獲取包的相關信息,如說明、大小、版本等
sudo apt-get install package 安裝包
sudo apt-get install package --reinstall 重新安裝包
sudo apt-get -f install 修復安裝
sudo apt-get remove package 刪除包
sudo apt-get remove package --purge 刪除包,包括配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安裝的包
sudo apt-get dist-upgrade 升級系統
apt-cache depends package 了解使用該包依賴那些包
apt-cache rdepends package 查看該包被哪些包依賴
sudo apt-get build-dep package 安裝相關的編譯環境
apt-get source package 下載該包的源代碼
sudo apt-get clean && sudo apt-get autoclean 清理無用的包
sudo apt-get check 檢查是否有損壞的依賴
『貳』 如何定製linux
花錢找人做吧。或者自己找資料:
debian 最簡安裝,之後安裝必須的軟體,保證你的 debian 不超過 500M (超過了也沒事,Linux LiveCD 的製作軟體會壓縮你的系統程序的,一般 50% 的效果還是有的。)這個 Debian Linux 必須可以啟動(符合能啟動的要求……)
裝好 debian 後找 syslinux ,它是一個製作 Linux liveCD 的解決方案。這個東西的教程網上很多,基本按照順序照抄就行了。不過需要你自己編譯內核,打開幾個功能。或者需要幾個特殊的操作。這些需要你小心謹慎的製作。
建議在虛擬機裡面進行操作,這樣隨時查資料方便。
-----------------
從內核編譯?這個不是從 0 開始的人能做的。我懷疑是你沒有上課,導致你根本不知道老師已經講過。或者這科根本就可以忽略。(中國的計算機課程學習,Linux 都是可以忽略的課程)
如果你真想做:
看 LFS 。之後 LFS 做好基礎系統,再看 BLFS 。BLFS 寫了怎麼安裝裡面的軟體。
http://www.linuxfromscratch.org/
LFS 和 BLFS 都在這個網站。 read online 就行了。
之後再看 http://www.linux-live.org/
這里是一個 Linux liveCD 製作工具。
資料嘛。 LFS 的中文只有 6.1.1 的, LFS 最新的資料是 6.3 版。當然舊版版也能打到目的。BLFS 貌似只有英文版。
live 的資料也一樣只有英文的,不過這個東西字少翻字典來得及。
『叄』 Linux系統啟動及定製過程
CentOS的啟動流程總體順序如下:
POST --> Boot Sequence --> bootloader(MBR) --> Kernel --> 載入rootfs --> switchroot --> /sbin /init --> (配置文件:/etc/inittab, /etc/init/*.conf) --> 根據init配置文件設置默認運行級別 --> 運行系統初始化腳本/etc/rc.d/rc.sysinit,完成系統初始化 --> 開啟或關閉用戶選定的對應運行級別下所對應的服務 --> 啟動終端,列印登錄提示符。
註:前面加粗部分代表內核空間的系統啟動流程,後面未加粗部分代表用戶空間的系統啟動流程。
第一步:硬體啟動過程
POST加電自檢
主要實現的功能是檢測各個外圍硬體設備是否存在而且能夠正常運行起來,實現這一自檢功能的是固化在主板上的ROM(主要代表為CMOS)晶元上的BIOS(Basic Input/Output System)程序;例如BIOS會檢測CPU、Memory以及I/O設備是否能夠正常運行,如果是個人計算機的話可能還會檢測一下顯示器。只要一通電,CPU就會自動去載入ROM晶元上的BIOS程序,是這樣來實現的。而檢測完成之後就進行硬體設備的初始化。
選擇啟動設備以載入MBR
主要實現的功能是選擇要啟動的硬體設備,選擇了之後就可以讀取這個設備上位於MBR里頭的bootloader了。這一步的實現是這樣的:根據BIOS中對啟動順序的設定,BIOS自己會依次掃描各個引導設備,然後第一個被掃描到具有引導程序(bootloader)的設備就被作為要啟動的引導設備。
MBR(Main Boot Record),是硬碟的0柱面,0磁軌、1扇區(第一個扇區),稱為主引導扇區,也稱為主引導記錄。它由三部分組 成:主引導程序(BootLoader)、硬碟分區表DPT(Disk Partition table)和硬碟有效標志(55AA)。
註:硬碟默認一個扇區大小為512位元組。
第一部分,主引導程序(BootLoader)佔446個位元組,負責從活動分區中裝載,並運行系統引導程序。
第二部分,硬碟分區表DPT佔64個位元組,有4個分區表項,每個分區表項佔16個位元組,硬碟中分區有多少以及每一個分區的大小都記 錄在其中。
第三部分,硬碟有效標志,佔2個位元組,固定為55AA。如果這個標志位0xAA55,就認為這個是MB
第二步:GRUB引導階段
不同的系統有不同的主引導程序(BootLoader)。Windows使用的是NTLDR(NT Loader,Windows NT系列操作系統)、Bootmgr(Boot Manager,Windows Vista,7,8,10),Linux一般使用的是grub(也叫grub legacy)和grub2。GRUB程序載入執行並引導kernel(內核)程序,其中有三個階段,Grub引導階段的文件都在/boot/grub/目錄下。
stage1: 這一階段執行的就是系統安裝時預先寫入到MBR的Bootloader程序,即是存放在MBR的前446位元組里的程序。它的任務僅是讀取(載入)硬碟的0柱面,0磁軌,2扇區的內容(/boot/grub/stage1)並執行。
stage1.5: 這一階段是Stage1階段和Stage2階段的橋梁,功能是載入stage2所在分區的文件系統驅動,讓stage1中的bootloader能識別stage2所在分區的文件系統,此後grub程序便有能力去訪問/boot/grub/stage2。
stage2: 這一階段讀取並解析grub的配置文件/boot/grub/grub.cnf,根據配置文件載入內核鏡像到內存中,通過initrd程序建立虛擬根文件系統,最後調用(轉交)內核。
第三步:內部引導階段
載入內核,核心開始解壓,啟動一些最核心的程序。為了讓內核足夠的輕小,硬體驅動並沒放在內核文件裡面。系統僅探測可識別到的所有硬體設備,載入硬體驅動程序,即載入真正的根文件系統所在設備的驅動程序(有可能會藉助於ramdisk載入驅動),以只讀方式掛載根文件系統,運行用戶空間的第一個應用程序:/sbin/init。
第四步:init初始化階段(系統初始化階段)
雖然CentOS 5、CentOS 6以及CentOS 7的/etc/init配置文件內容各不相同,但總體的啟動流程相同:/sbin/init --> 根據/etc/inittab配置文件設置默認運行級別 --> 運行系統初始化腳本/etc/rc.d/rc.sysinit,完成系統初始化 --> 關閉或啟動用戶選定的默認運行級別所對應的服務 。
對於CentOS 5來說,初始化程序init是SysV init,其配置文件為:/etc/inittab; 對於CentOS 6來說,初始化程序init是upstart,其配置文件為:/etc/inittab, /etc/init/ .conf,也就是upstart將配置文件拆分成多個,在/etc/init/目錄下以conf結尾的都是upstart風格的配置文件,而/etc/inittab僅用於設置默認運行級別; 對於CentOS 7來說,初始化程序init是systemd,其配置文件:/usr/lib/system/systemd/, /etc/systemd/system/ ;
具體執行過程:/sbin/init程序會讀取/etc/inittab文件確認運行級別,然後執行/etc/rc.d/rc腳本,根據確認的運行級別啟動對應/etc/rc.d/rc#.d/目錄下的服務(#為0~6),與此同時執行系統初始化腳本/etc/rc.sysinit(軟鏈接,指向/etc/rc.d/rc.sysinit),還會載入/etc/rc.local(軟鏈接,指向/etc/rc.d/rc.local文件)用戶自定義服務(腳本)。
CentOS7中初始化進程變為了systemd,systemd即為system daemon,是Linux下的一種init軟體,開發目標是提供更優秀的框架以表示系統服務間的依賴關系,並依此實現系統初始化時服務的並行啟動,同時達到降低Shell系統開銷的效果,最終代替現在常用的System V與BSD風格的init程序。與多數發行版使用的System V風格的init相比,systemd採用了以下的新技術:A.採用Socket激活式與匯流排激活式服務,以提高相互依賴的各服務的並行運行性能;B.用Cgroup代替PID來追蹤進程,即使是兩次fork之後生成的守護進程也不會脫離systemd的控制。
第五步:啟動終端
根據前面獲取的運行級別來啟動終端,mingetty程序是用於啟動終端的,它會調用登錄程序login,這樣就能顯示出登錄提示符了,類似mingetty這種用於打開終端的程序還有getty等。而如果默認運行級別為5,則會打開圖形界面。
第一步:硬體啟動過程
這一步和CentOS6差不多,詳細請看1.1內容。
第二步:GRUB引導階段
從這一步開始,CentOS6和CentOS7的啟動流程區別開始展現出來了。CentOS7的主引導程序使用的是grub2,執行過程是先載入boot.img、core.img兩個鏡像,再載入MOD模塊文件,把grub2程序載入執行,接著解析配置文件/boot/grub/grub.cfg,根據配置文件載入內核鏡像到內存,之後構建虛擬根文件系統,最後轉到內核。
CentOS7中使用命令進行配置,而不直接去修改配置文件了。grub.cfg配置文件開頭注釋部分說明了由/etc/grub.d/目錄下文件和/etc/default/grub文件組成。改好配置後都需要使用命令grub2-mkconfig -o /boot/grub2/grub.cfg,將配置文件重新生成。
第三步:內部引導階段
這一步與CentOS6也差不多,載入驅動,切換到真正的根文件系統,唯一不同的是執行的初始化程序變成了/usr/lib/systemd/systemd。
第四步:init初始化階段(系統初始化階段)
CentOS7中我們的初始化進程變為了systemd。執行默認target配置文件/etc/systemd/system/default.target(這是一個軟鏈接,與默認運行級別有關)。然後執行sysinit.target來初始化系統和basic.target來准備操作系統。接著啟動multi-user.target下的本機與伺服器服務,並檢查/etc/rc.d/rc.local文件是否有用戶自定義腳本需要啟動。最後執行multi-user下的getty.target及登錄服務,檢查default.target是否有其他的服務需要啟動。
注意:/etc/systemd/system/default.target指向了/lib/systemd/system/目錄下的graphical.target或multiuser.target。而graphical.target依賴multiuser.target,multiuser.target依賴basic.target,basic.target依賴sysinit.target,所以倒過來執行。
unit對象:unit表示不同類型的systemd對象,通過配置文件進行標識和配置;文件中主要包含了系統服務、監聽socket、保存的系統快照以及其他與init相關的信息。(也就是CentOS6中的伺服器啟動腳本)
第五步:啟動終端
systemd執行sysinit.target
systemd啟動multi-user.target下的本機與伺服器服務
systemd執行multi-user.target下面的/etc/rc.d/rc.local
Systemd執行multi-user.target下的getty.target及登錄服務
getty.target是啟動終端的systemd對象。如果到此步驟,系統沒有指定啟動圖形桌面,到此就可以結束了,如果需要啟動圖形界面,要在此基礎上啟動桌面程序。
從 CentOS 7 版本之後,系統開始用 systemd 實現init進程,系統啟動和伺服器守護進程管理器功能,負責在系統啟動或運行時,激活系統資源,伺服器進程和其它進程。
unit表示不同類型的systemd對象,通過配置文件進行標識和配置;文件中主要包含了系統服務、監聽socket、保存的系統快照以及其它與init相關的信息。
3.2 system unit文件格式
/usr/lib/systemd/system:發行版打包者使用,每個服務最主要的啟動腳本設置,類似於之前的/etc/init.d/
/etc/systemd/system:系統管理員和用戶使用,管理員建立的執行腳本,類似於/etc/rcN.d/Sxx的功能,比上面目錄優先運行
/lib/systemd/system::ubutun的對應目錄
/run/systemd/system:系統執行過程中所產生的服務腳本,比上面目錄優先運行
unit 格式說明:
service unit file文件通常由三部分組成:
Unit段的常用選項:
Service段的常用選項:
Install段的常用選項:
注意:對於新創建的unit文件,或者修改了的unit文件,要通知systemd重載此配置文件,而後可以選擇重啟。
首先在啟動界面按e編輯啟動參數,
將ro參數更改為rw init=/sysroot/bin/sh,按ctr + x啟動系統
按下圖執行命令更改root密碼
『肆』 我想裝Linux系統 該怎麼弄啊
分類: 電腦/網路 >> 操作系統/系統故障
解析:
大部分初學者都是在有XP之後裝Linux的,下面以我的分區作例子來說明,我的分區情況是:
主分區 C NTFS /dev/hda1 4 GB
擴展分區 /dev/hda2
D NTFS /dev/hda5 10 GB
E NTFS /dev/hda6 30 GB
F FAT32 /dev/hda7 3 GB
/boot ext3 /dev/hda8 40 MB
/ ext3 /dev/hda9 8.5GB
/home ext3 /dev/hda10 1 GB
/swap swap /dev/hda11 256MB(和你內存一樣或1倍到2倍之間,我的內存就是256MB)
(註:後面四個分區都是屬於擴展分區,用來裝Linux)
1、將下載下來的ISO文件放在格式為FAT32分區的根目錄下(如F:\),名稱保持一致.(如:shrike-i386-disc1.iso shrike-i386-disc2.iso shrike-i386-disc3.iso);
2、用UltraISO之類的工具將disc1中的dosutils目錄提取出來,放在同一個根目錄下(如路徑為F:\dosutils);
3、重啟機器,設置BIOS從軟盤啟動後插入MS-DOS盤,或其它可引導盤;
4、進入dosutils目錄,運行其中的autoboot.bat文件(輸入autoboot即可);
5、這時出現的是安裝界面的語言;選什麼隨便你,看得懂就好,呵呵;
6、接下來叫你選擇鍵盤類型,你的是什麼就選什麼,一般默認就好;
7、然後出現的界面是選擇安裝方法,當然是選擇:硬碟驅動器;
8、然後選擇分區(這每個人的分區不同,所以不一定相同),就舉我的例子,我是把那三個鏡像文件和dosutils放在F盤的根目錄下,所以選擇/輸入:/dev/hda7即可;
9、之後安裝就開始初始化了,在這一步,一般可以正確識別顯示器、顯卡和滑鼠。之後就開始以文本模式開始安裝(只能以文本模式安裝);
10、接下來出現的提示是選擇滑鼠類型,根據自己的滑鼠選擇吧,很簡單的(為什麼有些人裝完後滑鼠不能識別,我真覺得很神奇:O);
11、然後選擇安裝類型,選擇:定製
12、之後就進入磁碟分區設置了。第一次安裝可以選擇讓Linux自動分區,安全、省事。我選擇:DiskDruid,因為想看看它長什麼樣,呵呵;
13、進入DiskDruid之後,屏幕上就顯示了你目前的分區狀況,你可以對它們進行編輯。以我的分區狀況為例,在這里,我要為/boot、/、/home分別設置掛載點:/boot、/、/home。注意兩個問題,1,掛載點要小寫,不然單獨的/boot和/home分區會被掛載/BOOT、/HOME文件夾中,達不到預期效果(至於為什麼要設單獨分區,請參閱相關主題);2,在編輯「/」的掛載點時,也許會出現警告框,請大膽地選擇「強行添加」,沒有問題的。最後編輯SWAP分區,確定後選擇格式化SWAP區就行;
14、引導裝載程序配置,我選擇:GRUB(推薦新手使用,因為很簡單)之後的兩個引導裝載程序配置全部跳過,不進行修改;
15、之後到了引導分區設置,在這里可以設置「引導標簽」,即在機器啟動時,出現在GRUB中選項的名稱(WINDOWS操作系統在GRUB中默認顯示為DOS,你可以在這里把「DOS」改成「WINXP」等字樣);
16、選擇安裝引導程序的位置:選擇MBR;
17、etho的網路配置:大體分為使用DHCP和不使用DHCP(這是我個人理解方式,呵呵)因為我不是使用DHCP的,所以按空格鍵把「使用bootp/dhcp」前面的「*」號去掉,選擇「引導時激活」,然後輸入IP地址、子網掩碼、默認網關以及主、次DNS(和XP中的數值一樣);
18、之後可以設置主機名,隨便你設
19、是防火牆規則,個人認為沒有必要設高。我是選擇:定製,然後在WWW(HTTP),郵件(SMTP)和FTP處安空格打上「* 」就好(這樣設置之後,瀏覽網頁就沒有問題);
20、語言支持,這是多選項哦,按選多少選多少,但是別忘了中文和英文哦;
21、默認語言,我建議選:USA(就算不懂E文也好),因為默認為英文的話,在Shell下不會出現亂碼,看著舒服,安裝後又可以改默認語言,怕啥呢;
22、時區,上海,北京,,,,,選吧隨便;
23、設置根口令,看你喜歡;
24、驗證配置:請在「使用屏蔽口令」和「啟用MD5口令」前加上「*」(選中它們);
25、選擇軟體包:翻到最後一行,看到:Everything 沒有?選吧,等啥,只要選上這個,以後的初級問題基本上不會出現哦。如果空間不足,請務必盡量選上所有開發工具及相關內容,可以避免安裝後編譯軟體出現問題;
26、開始安裝..........享受不用換盤的Linux安裝吧
PS:在安裝的過程中,可以按ALT+FX(FX是指F2、F3、、、F6),有東西看哦,是安裝的摘要,如果有出現WARNING之類的詞,把它記下來,也許會有用哦。按F1可以回到安裝界面。
就這樣,如果安裝所有軟體包,大約1小時後,你就可以「享受」Linux了。(知道「」的意思嗎?嘿嘿)
我這樣安裝之後沒有任何系統問題哦!
1、畫面偏移:
大部分人安裝完後出現的第一個問題就是畫面偏移的問題。當然,這可以通過顯示器上的按鈕來調
整,可是如果是和XP雙系統的話,那每次都調可就麻煩了。解決辦法很簡單,下個顯卡驅動,在X
桌面的虛擬終端鍵入「init 3」來關閉X桌面,到終端下安裝就OK了。如果是NVIDIA的顯卡,在安
裝後,用VI之類的編輯器編輯/etc/X11/XF86Config文件,把該文件中Driver 「nv」中的nv改
成nvidia即可,然後運行startx
啟動X系統,畫面就正常了。
2、mount分區,可以顯示中文文件名的:
mount -t vfat -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/win
(其中的vfat、hda7、win根據每個人的系統可以改變。936和cp936有的是用gb2312,不過在我
的系統中就不行)
想要讓分區在系統啟動時自動掛載,則要用vi 等編輯器編輯/etc/fstab,在該文件的末尾加入:
例如:/dev/hda7 /mnt/win vfat auto,codepage=936,iocharset=cp936 0 0 類似的語段
即可。
3、中文字體初步美化:
凡是剛接觸Redhat系列的新手打開Mozilla的第一個反應一般都是字體模糊的讓眼睛想流淚,其實
解決方法也不難,以下是本人的經驗,希望對大家有幫助:
首先在你的Linux中要有simsun.ttf這個字體文件(可以在WINDOWS中找到,也許找到的是
simsun.ttc,直接把它改成simsun.ttf就行。把它弄到Linux中有兩個方法,一個是mount,還有一
個是在你用ln -s 建立連接,用後面一個方法可以節省空間,前提是放字體的那個分區在Linux啟動
時要自動掛載);之後在/usr/share/fonts/default目錄下建立一個文件夾,名為:myttf,然後將
simsun.ttf文件用cp拷貝到/usr/share/fonts/default/myttf下,這樣就可以用ttmkfdir >
fonts.dir來生成字體列表。如果要保證列表的完整性,則需要
將/usr/X11R6/lib/X11/fonts/encodings/下的encodings.dir這個文件拷貝
到/usr/share/fonts/default/myttf之後再執行ttmkdir > fonts.dir命令。這時就已經把
simsun字體裝入系統了。然後要做的是用vi 打開/etc/X11/XF86Config,在其中的
Section "Files"部分加入:FontPath "/usr/share/fonts/defaults/myttf"這句話,最好放在
原先那個FontPath語句的前面。然後在Section "Mole"部分加入 Load "xtt"和
Load "GLcore",並且在 Load "freetype"和Load "type1"前面加上"#"用以屏蔽它們,因為
它們不能和"xtt"共存。接下來要改的是/etc/gtk/中的gtkrc.zh_CN這個文件,把裡面的fontset
部分的後半部,即"\"後面的內容改為"-misc-simsun-medium-r-normal--16-*-*-*-*-*-
gb2312.1980-0,*-r-*",最後打開/etc/gnome/中的gtkrc.zh_CN里的所有Fontset部分全部改
為"-misc-simsun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0",這是在GNOME中
的改法。如果是KDE,則在KDE的K菜單―選項―個人化―國家和語言選擇中國、字型檔
zh_CN.gb2312。在K菜單―選項―觀感―字體項中選則你想要的字體就可以了(我沒用過)。最
後注銷重啟GNOME就搞定了。
有兩點需要注意:
LINUX的分區一般用EXT3,在安裝過程中,安裝程序會要求你選擇安裝的目標路徑(就是目標盤了)此時有兩個知識點就是分區格式,選擇EXT3,還有一個叫:SWAP,SWAP我也不懂什麼,我理解為:相當於虛擬內存,用來載入一些系統的東東,假設你要安裝到F盤上,F盤空間為10G=20480MB,沒錯吧:) 那麼你在分區時就要根據你的內存大小,假設你的內存為256M,那麼你就要給這個盤分一個叫SWAP的東東,空間為256*2=512,其實剩下全部給EXT3
另外,在LINUX下對硬碟的分區是這樣認識的,他所示顯示的方式跟WIN不一樣,
如果你有兩個硬碟:他會顯示為:第一個硬為hda,第二個當然是hdb,如果第一個硬碟有三個分區,那麼每個分區則顯示為hda1,hda2,hda3,假設第二個硬碟也有兩個分區,則顯示為hdb1,hdb2,吼吼吼
『伍』 如何定製小型的linux系統,具體的步驟,謝謝了
系統啟動過程
1、加電自檢(POST代碼)
2、boot loader
GRUB -- /boot/grub/grub.conf
kernel
initrd.img
3、INIT
/sbin/init ----- /etc/inittab
/etc/rc.d/rc.sysinit
/etc/rc.d/rc RUNLEVEL
/etc/rc$runlevel.d/S* start
/etc/rc$runlevel.d/K* stop
/etc/X11/prefdm
4、登錄
文本 login
圖形 gdm/kdm
自製一個U盤系統
准備工作:在真實機中把yum配置好
[root@localhost /]# ls /mnt/Server/ 這是軟體包所處的目錄
[root@localhost /]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
rhel-debuginfo.repo
[root@localhost yum.repos.d]# cp rhel-debuginfo.repo pg.repo
[root@localhost yum.repos.d]# vim pg.repo
[root@localhost yum.repos.d]# cat pg.repo
[rhel-server]
name=Red Hat Enterprise Linux
baseurl=file:///mnt/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
1、准備U盤,並分區,格式化成ext3(可選)文件系統[root@localhost pg]# fdisk -l
[root@localhost pg]# fdisk -l
Disk /dev/sda: 4003 MB, 4003463168 bytes
84 heads, 20 sectors/track, 4654 cylinders
Units = cylinders of 1680 * 512 = 860160 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 5 4655 3905600 c W95 FAT32 (LBA)
[root@localhost pg]# fdisk /dev/sda
The number of cylinders for this disk is set to 4654.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): d
Selected partition 1
Command (m for help): p
Disk /dev/sda: 4003 MB, 4003463168 bytes
84 heads, 20 sectors/track, 4654 cylinders
Units = cylinders of 1680 * 512 = 860160 bytes
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-4654, default 1):
Using default value 1
Last cylind[root@localhost pg]# mount -t ext3 /dev/sda1 /neter or +size or +sizeM or +sizeK (1-4654, default 4654):
Using default value 4654
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 設備或資源忙.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@localhost pg]# partprobe /dev/sda
[root@localhost pg]# ls /dev/sda1
/dev/sda1
--------------
[root@localhost pg]# mkfs.ext3 /dev/sda1
2、掛載U盤,並把相關文件拷到U盤中
[root@localhost pg]# mount -t ext3 /dev/sda1 /net
把/目錄樹結構在u盤創建好
]# yum --installroot=/net -y install filesystem
/boot
這個目錄應該有vmlinuz-x.x.x initrd-x.x.x.img
/boot/grub
這個目錄中應該有grub的相關文件
grub還要安裝到u盤的首扇區中(grub-install)
/bin /sbin /lib /usr/lib
這些個目錄下應該有一些命令和庫文件
bash ls cp mv
mount
ifconfig
fdisk
mkfs.ext3
基本上你需要的程序比較多,大概有以下一些常用的:
coreutils setup grub vim-enhanced
vim-common gpm perl iptables
openssh openssh-clients
mole-init-tools iputils grep awk sed
procps tar bash gcc make rp-pppoe
passwd libuser e2fsprogs util-linux
net-tools SysVinit kernel
-----------------------
a.關於vmlinuz文件:
]# cp /boot/vmlinuz-2.6.18-194.el5 /net/boot/
b.關於initrd.img文件: 為了包含u盤的驅動,需要手動生成initrd.img(包含usb-storage)
]# modinfo -F filename usb-storage
]# mkinitrd --with=usb-storage /net/boot/initrd-usb-2.6.18-194.img `uname -r`
c. 使用此命令grub-install將grub安裝到u盤的首扇區中
grub-install 需要安裝grub軟體包生成
]# yum --installroot=/net -y install grub
]# grub-install /dev/sda 最後執行這一步,還有一些必要工作沒做
d. ]# cat /net/boot/grub/grub.conf
default=0
timeout=5
title RHEL5U5 usb linux for pg
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-194.el5 ro root=/dev/sda1
initrd /boot/initrd-usb-2.6.18-194.img
e. 為了生成以下這些常用的命令,裝包
bash ls cp mv
mount
ifconfig
fdisk
mkfs.ext3
yum bash ls cp mv
mount
ifconfig
fdisk
mkfs.ext3
yum --installroot=/net -y install coreutils setup grub vim-enhanced vim-common gpm perl iptables openssh openssh-clients mole-init-tools iputils grep awk sed procps tar bash gcc make rp-pppoe passwd libuser e2fsprogs util-linux net-tools SysVinit kernel pam
f.在U盤系統啟動的時候,需要讀fstab文件,掛載文件系統
]# cp /etc/fstab /net/etc
]# vim /net/etc/fstab
]# cat /net/etc/fstab
/dev/sda1 / ext3 defaults 0 0
開始安裝GRUB程序
]# chroot /net/
bash-3.2#
]# chroot /net/
bash-3.2# grub-install /dev/sda
Probing devices to guess BIOS drives. This may take a long time.
No suitable drive was found in the generated device map. 這個錯誤意味著需要去寫devices.map文件
bash-3.2# ls /dev/sda
ls: /dev/sda: 沒有那個文件或目錄
bash-3.2# ls /dev/sda1
ls: /dev/sda1: 沒有那個文件或目錄
bash-3.2# mknod /dev/sda b 8 0
bash-3.2# mknod /dev/sda1 b 8 1
bash-3.2# cat /etc/mtab
/dev/sda1 / ext3 rw 0 0
bash-3.2# cat /boot/grub/device.map
(fd0) /dev/fd0
(hd0) /dev/sda
bash-3.2# grub-install /dev/sda
Could not find device for /dev/mapper/*
Could not find device for /dev/mapper/*
Could not find device for /dev/mapper/*
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(fd0) /dev/fd0
(hd0) /dev/sda
]# chroot /net/
bash-3.2# passwd root 修改密碼不成功,將導致 u盤系統啟動後,用root登錄不成功。
Changing password for user root.
passwd: Authentication token manipulation error
解決方法:
vim /net/etc/passwd
root:*:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
這樣再把root密碼設置為你想要的!
檢查 以下過程是否正確:
/boot/grub/grub.conf
/etc/inittab ---默認運行級別應該是3
/etc/fstab
/etc/passwd
/etc/shadow
pam程序包做驗證的
ls /dev/sda /dev/sda1
]# chroot /net/
bash-3.2# passwd root 這一步必須能成功
---------------------------------------
[root@localhost pg]# rpm -q kernel-doc
kernel-doc-2.6.18-194.el5
[root@localhost pg]# gedit /usr/share/doc/kernel-doc-2.6.18/Documentation/devices.txt
『陸』 如何打造自己的 Linux 發行版
LFS 中文版手冊發布:如何打造自己的 Linux 發行版
您是否想過打造您自己的 Linux 發行版?每個 Linux 用戶在他們使用 Linux 的過程中都想過做一個他們自己的發行版,至少一次。我也不例外,作為一個 Linux 菜鳥,我也考慮過開發一個自己的 Linux 發行版。從頭開發一個 Linux 發行版這件事情被稱作 Linux From Scratch (LFS)。
在開始之前,我總結了一些有關 LFS 的內容,如下:
1. 那些想要打造他們自己的 Linux 發行版的人應該了解打造一個 Linux 發行版(打造意味著從頭開始)與配置一個已有的 Linux 發行版的不同
如果您只是想調整下啟動屏幕、定製登錄頁面以及擁有更好的外觀和使用體驗。您可以選擇任何一個 Linux 發行版並且按照您的喜好進行個性化配置。此外,有許多配置工具可以幫助您。
如果您想打包所有必須的文件、引導載入器和內核,並選擇什麼該被包括進來,然後依靠自己編譯這一切東西。那麼您需要的就是 Linux From Scratch (LFS)。
注意:如果您只想要定製 Linux 系統的外表和體驗,這個指南並不適合您。但如果您真的想打造一個 Linux 發行版,並且向了解怎麼開始以及一些其他的信息,那麼這個指南正是為您而寫。
2. 打造一個 Linux 發行版(LFS)的好處
您將了解 Linux 系統的內部工作機制
您將開發一個靈活的適應您需求的系統
您開發的系統(LFS)將會非常緊湊,因為您對該包含/不該包含什麼擁有絕對的掌控
您開發的系統(LFS)在安全性上會更好
3. 打造一個Linux發行版(LFS)的壞處
打造一個 Linux 系統意味著將所有需要的東西放在一起並且編譯之。這需要許多查閱、耐心和時間。而且您需要一個可用的 Linux 系統和足夠的磁碟空間來打造 LFS。
4. 有趣的是,Gentoo/GNU Linux 在某種意義上最接近於 LFS。Gentoo 和 LFS 都是完全從源碼編譯的定製的 Linux 系統
5. 您應該是一個有經驗的Linux用戶,對編譯包、解決依賴有相當的了解,並且是個 shell 腳本的專家。
了解一門編程語言(最好是 C 語言)將會使事情變得容易些。但哪怕您是一個新手,只要您是一個優秀的學習者,可以很快的掌握知識,您也可以開始。最重要的是不要在 LFS 過程中丟失您的熱情。
如果您不夠堅定,恐怕會在 LFS 進行到一半時放棄。
**6. 現在您需要一步一步的指導來打造一個 Linux 。LFS 手冊是打造 LFS 的官方指南。我們的合作站點 tradepub 也為我們的讀者製作了 LFS 的指南,這同樣是免費的。 ###
您可以從下面的鏈接下載 Linux From Scratch 的電子書:
下載: Linux From Scratch
7. 當前 LFS 的版本是 7.7,分為 systemd 版本和非 systemd 版本。
LFS 的官方網站是: http://www.linuxfromscratch.org/
您可以在官網在線瀏覽 LFS 以及類似 BLFS 這樣的相關項目的手冊,也可以下載不同格式的版本。
LFS (非 systemd 版本):
PDF 版本: http://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-7.7.pdf
單一 HTML 版本: http://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-7.7-NOCHUNKS.html
打包的多頁 HTML 版本: http://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-7.7.tar.bz2
LFS (systemd 版本):
PDF 版本: http://www.linuxfromscratch.org/lfs/downloads/7.7-systemd/LFS-BOOK-7.7-systemd.pdf
單一 HTML 版本: http://www.linuxfromscratch.org/lfs/downloads/7.7-systemd/LFS-BOOK-7.7-systemd-NOCHUNKS.html
打包的多頁 HTML 版本: http://www.linuxfromscratch.org/lfs/downloads/7.7-systemd/LFS-BOOK-7.7-systemd.tar.bz2
8. Linux 中國/LCTT 翻譯了一份 LFS 手冊(7.7,systemd 版本)
經過 LCTT 成員的努力,我們終於完成了對 LFS 7.7 systemd 版本手冊的翻譯。
手冊在線訪問地址:https://linux.cn/lfs/LFS-BOOK-7.7-systemd/index.html 。
其它格式的版本稍後推出。
感謝參與翻譯的成員: wxy, ictlyh, dongfengweixiao, zpl1025, H-mudcup, Yuking-net, kevinSJ 。
關於:Linux From Scratch
這本手冊是由 LFS 的項目領頭人 Gerard Beekmans 創作的, Matthew Burgess 和 Bruse Dubbs 參與編輯,兩人都是LFS 項目的聯合領導人。這本書內容很廣泛,有 338 頁之多。
手冊中內容包括:介紹 LFS、准備構建、構建 LFS、建立啟動腳本、使 LFS 可以引導,以及附錄。其中涵蓋了您想知道的 LFS 項目中的所有東西。
這本手冊還給出了編譯一個包的預估時間。預估的時間以編譯第一個包的時間作為參考。所有的東西都以易於理解的方式呈現,甚至對於新手來說也是這樣。
如果您有充裕的時間並且真正對構建自己的 Linux 發行版感興趣,那麼您絕對不會錯過下載這個電子書(免費下載)的機會。您需要做的,便是照著這本手冊在一個工作的 Linux 系統(任何 Linux 發行版,足夠的磁碟空間即可)中開始構建您自己的 Linux 系統,付出時間和熱情。
如果 Linux 使您著迷,如果您想自己動手構建一個自己的 Linux 發行版,這便是現階段您應該知道的全部了,其他的信息您可以參考上面鏈接的手冊中的內容。
請讓我了解您閱讀/使用這本手冊的經歷,這本詳盡的 LFS 指南的使用是否足夠簡單?如果您已經構建了一個 LFS 並且想給我們的讀者一些建議,歡迎留言和反饋。
BLFS階段,startx後firefox等程序中文全部亂碼問題的解決 http://www.linuxidc.com/Linux/2007-05/3789.htm
用LFS從零開始構建完整Linux系統 http://www.linuxidc.com/Linux/2011-08/40706.htm
基於Ubuntu 10.10 構建LFS 6.7[圖文] http://www.linuxidc.com/Linux/2011-02/32545.htm
via: http://www.tecmint.com/create-custom-linux-distribution-from-scratch/
作者:Avishek Kumar 譯者:wwy-hust 校對:wxy
本文由 LCTT 原創翻譯