国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

Linux開機流程分析
2008-08-01   

開機不是只要按一下電源鈕而關機只要關掉電源鈕就可以了嗎?有何大學問?話是這樣沒錯啦,但是由于 Linux 是一套多人多任務的操作系統,你難保你在關機時沒有人在線上,如果你關機的時候碰巧一大群人在線上工作,那會讓當時在線上工作的人馬上斷線的!那不是害死人了!一些資料可以無價之寶哩!另外,與 DOS 環境不同的是, Linux 在執行的時候,雖然你在畫面上只會看到黑壓壓的一片,完全沒有任何畫面,但其實他是有很多的程序在背景底下執行的,例如郵件程序、瀏覽器主機程序等,你如果隨便關機的話,是很容易傷害硬盤及數據傳輸的動作的!所以在 Linux 下關機可是一門大學問喔
既然開機是很嚴肅的一件事,呵呵,那我們來了解一下整個開機的過程吧!好讓大家比較容易發現開機過程里面發生錯誤的地方,與解決之道!不過,由于開機的過程中,那個 Boot Loader 使用的軟件可能不一樣,例如 Mandrake 9.0 已經同時提供 Lilo 與 Grub 這兩個開機管理程序,雖然 lilo 與 grub 的激活過程或許有點不太相同,但是他的原理則都是一樣的哩!這里我們先介紹較老牌的 Lilo 啰! Lilo 是什么?!簡單的說,他是 LInux LOader 的縮寫,就是 Linux 開機時候加載的咚咚就對了!這東西可是控制了你的多重開機的命脈!底下的篇幅會再分別介紹這兩套開機管理程序!底下先開始來談談 Linux 是如何開機的呢?基本的流程為:
1. 加載 BIOS 的硬件信息;
2. 讀取 MBR 的 Kernel Loader (亦即是 lilo, grub, spfdisk 等等)開機信息;
3. 加載 Kernel 的操作系統核心信息;
4. Kernel 執行 init 程序并取得 run-level 信息;
5. init 執行 /etc/rc.d/rc.sysinit 檔案;
6. 激活核心的外掛式模塊 (/etc/modules.conf);
7. init 執行 run-level 的各個批次檔( Scripts );
8. init 執行 /etc/rc.d/rc.local 檔案;
9. 執行 /bin/login 程序;
10. 登入之后開始以 Shell 控管主機。
大概的流程就是上面寫的那個樣子啦,而每一個程序的內容主要是在干嘛呢?底下就分別來談一談吧!
· 尋找 BIOS 加載硬件信息:
稍微有 PC 硬件經驗的人們大概都知道 BIOS ( Basic Input/Output Setup ) 的作用!他是第一個被加載計算機的資料!你主機的 CPU 資料、開機順序、硬盤大小、芯片組工作狀態、PnP 的開啟與否、內存的時脈等等等...這都記錄在 BIOS 當中!所以啦,開機之后,系統會先去找這個東西;
· 可開機硬盤的 MBR 讀取 Kernel loader:
再來呢?呵呵!當然就是硬盤的開機資料啰!由于個人計算機的系統在讀完 BIOS 之后,會先去讀取第一個開機硬盤的第一個扇區(就是 master boot record, MBR 啰!),還記得這個 MBR 嗎?嗄!忘記了?趕緊回到第二篇好好的再復習一遍ㄋㄟ?。而這個扇區主要就是在記錄開機的信息!還記得上面提到的 Lilo 及 grub 吧?他的紀錄就是在這里啰!所以啰,這個時候 Lilo 紀錄的信息就會被讀出來,系統并依 Lilo 的信息去不同的系統開機,這也就是多重開機設定的地方啦。
好了,先再來回憶一下,如果你是以 grub 程序開機的話,那么在開機的時候會顯示什么資料呢?呵呵!會顯示蠻多的開機選單,沒錯?就是『選單』,然后選擇了你的選擇項目之后,系統就會跑到該扇區去讀取該操作系統的核心啰!呵呵!所以一個好的 boot loader 會具有兩個功能,就是:
o 選單功能 ( menu )
o 指向功能 ( pointer )
那么為何要有 loader 呢?我想,我們得先來探討一下這個話題才行!要探討之前先來了解一下,曉不曉得 Windows 與 Linux 的檔案格式一不一樣?!呵呵!當然不一樣對不對,好了,那么再來說一說,請問,你的計算機怎么知道你的硬盤的資料是什么系統?哈哈!那就是 loader 的主要功能啰!在你能使用系統之前,一定需要加載核心對吧!?但是怎樣讓你的硬件認識核心呢?那就是 kernel loader 的主要功能了!所以這里需要提出的是, Linux 的 loader ( lilo 或 grub ) 是可以認識 windows 的核心檔案的,但是 Windows 的 loader 卻不認識 Linux 的核心檔案,因此,作為一個多重開機的設定 loader ,就無法使用 Windows 所提供的 loader 啰!由于需要讓系統認識你的 kernel ,因此,就需要 kernel loader 啦!這樣想就對啦!
· 加載核心( Kernel ):
好了,等我們在 grub 的選單中選擇了 Linux 這個系統,然后主機跑到 Linux 所在的硬盤之下,就開始將他的核心加載啰。在 Linux 的系統下,通常開機的核心都擺在 /boot 底下,因此,這個時候的 boot loader 就會到 /boot 去尋找相關的核心。我們的 kernel 名稱通常就是 /boot/vmlinuz-xxxx 的格式,目前 Mandrake 9.0 的核心版本為 2.4.19,而 Mandrake 自行釋出的版本為 2.4.19-16mdk ,所以,使用 uname –r 會出現 2.4.19-16mdk 呦!然后 MDK 9.0 預設核心檔案就是: /boot/vmlinuz-2.4.19-16mdk 這一個!好了,加載這個檔案再往下繼續吧!
· 核心執行 init 并由 /etc/inittab 取得系統登入狀態:
核心加載之后,由核心執行的第一個程序就是 /sbin/init 啰!而這個程序第一個目標當然就是確定主機是要以怎樣的情況登入!這個時候就必須要以 /sbin/init 來加載 /etc/inittab 的信息啦!而 Linux 共有幾種登入模式呢?嗯!這里似乎有需要說明一下 Linux 有哪些登入的狀態!如果你進入 Linux 的 /etc/inittab 檔案的話( 可以使用 vi 啦 ),你應該會看到如下的信息:
[root @test /root]# vi /etc/inittab #  0 - halt (Do NOT set initdefault to this) 關機 #  1 - Single user mode 單人使用(系統有問題時候的登入狀況) #  2 - Multiuser, without NFS (The same as 3, if you do not have networking) 多人但無網絡 #  3 - Full multiuser mode 文字界面登入的多人系統 #  4 - unused 系統保留 #  5 - X11  X-Windows 圖形界面登入的多人系統 #  6 - reboot (Do NOT set initdefault to this) 重新開機 # id:3:initdefault:
·  
上面顯示的就是目前可以登入的狀態了(就是 run-level 啦!),共有 0?6 的登入狀態,其中,我們比較常使用的是 3 與 5 , 因為我們需要 Linux 是多人多任務的情況,而較常登入的狀態就是文字與圖形界面啦!所以這里需要設定成 3 或者是 5 ,千萬不要設定成 0 或者是 6 喔!不然系統會一直直接重新開機或者是直接關機....預設的系統登入在上面這個表格的最底下一行紀錄著!就是『id:3:initdefault 』那一行!注意喔!因為 VBird 預設是以文字界面來登入,所以才會是 3 ,如果你要改成圖形界面登入的話(請確定你的 X-windows 沒有問題),那么就將 /etc/inittab 里面的上面那一行,將 3 改成 5 即可啰! #p#分頁標題#e#
那么什么是『單人維護模式 ( run-level 為 1 )』?如果你有玩過 Windows 的話,那么你在開機的時候如果按下 F8 時,不是會出現一些什么『安全模式』啦、『正常開機』啦或『 MS-DOS 模式』等等的進入 Windows 的狀態嗎?尤其是當你不正常關機的時候, Windows 預設就會以『安全模式』來激活 Windows 啰!Windows 的『安全模式』幾乎不加載一些復雜的模塊,讓你的 Windows 一定可以開機成功!那么 Linux 的維護模式狀態即是使用單人模式( 就是 run_level 為 1 啦!)所以說, Linux 的登入情況是如何呢?呵呵!沒錯,就是在這里加載的啦!
· init 的第一個執行內容 /etc/rc.d/rc.sysinit :
確定了登入狀態之后,再來當然就是需要將主機的信息給他讀進去 Linux 系統啰!而 Linux 系統的第一個資料內容就是 /etc/rc.d/sysinit 這個檔案啦!如果你有空進入這個檔案去看看的話,會發現這個檔案的內容包括了==>設定預設路徑( PATH )、設定主機名稱、執行 /etc/sysconfig/network 所記錄的網絡信息、掛載 /proc 這個保存在內存當中的主機基本訊息、以及其它幾個 Linux 操作系統最基本的幾個信息!大抵來說,他的基本工作是:
1. 設定預設路徑:( PATH )
2. 設定網絡狀態:系統會再去讀取 /etc/sysconfig/network,并將該檔案內的資料,如 NETWORKING, FORWARD_IPV4, HOSTNAME, DOMAINNAME, GATEWARY, GATEWAYDEV 等等的設定讀入系統中。
3. 激活系統的置換空間(簡單的可以想成是虛擬內存): swapping
4. 檢查檔案系統:這個時候系統會去檢查一些可能會存在的目錄,例如 /fsckoptions 與 /forcfsck 及 /fastboot 等等的目錄,當你的系統有不正常關機的現象時(例如突然的斷電等等),那么 Linux 將會自動的強制去檢查 root 的檔案系統 ( checking root filesystems )。簡單的想一想,就好象是 Windows 系統下,當你不正常關機時,在開機的過程中就會出現掃瞄硬盤的情況相同啦!
5. 周邊設定與系統設定的參數 ( /proc ):在 Linux 或者是 Unix 系統中,你會在根目錄中發現一個很奇怪的扇區,那就是 /proc 啰!其實這個目錄是記錄在內存當中的,每次開機的時候就會被建置起來。他的主要功能是記錄主機的一些接口設備的最新資料狀況!例如網絡周邊啦、輸入輸出周邊啦等等的。沒事的話,不要到里面亂砍喔!會有問題
6. 設定 Plug and Play ( PNP )的一些參數資料;
7. 清除 /etc/mtab ;
8. mount root 及 /proc 檔案系統 :好了,將一些資料都設定好之后,當然就是需要將資料寫下來啰!這個時候就會將 root 與 /proc 資料給他 mount 上檔案系統啦!
9. 決定是否使用模塊, 加載模塊
10. 檢查檔案系統 :與前面相同的,當前面的 /fastboot 檢查的旗標開啟之后,就會以 fsck 檢查你的其它扇區啰! ( 使用 fsck )
11. 掛上其它檔案系統
12. 設定 console 字型
13. 打開 quota
14. 清除不必要的檔案, 如 lock, pid
15. 設定 clock
16. serial port 初始化
17. 將開機訊息經由 dmesg 放入 /var/log/dmesg 中 
如此一來,在 /etc/rc.d/rc.sysinit 就已經將基本的系統設定資料都寫好了,也將系統的資料設定完整!而如果你想要知道到底開機的過程中發生了什么事情呢?那么就使用第十六章學會的 dmesg 就可以知道啰
· 激活核心的外掛式模塊 (/etc/modules.conf):
由于我們的核心越來越聰明,所以呢,我們可以選擇使用模塊的型態 ( 這個在后面也會繼續說明 ) 來進行驅動程序的加載!那么如果系統原本找不到的模塊 ( 例如早期的 via-rhine 芯片組 ) 就可以在這個檔案里面 /etc/modules.conf 寫入呢!
· init 執行 run-level 的各個 scripts :
由于不同的 run-level 所需要加載的模塊并不相同,所以系統早就為不同的 run-level 設定了一些批次檔( scripts )來做這件事啰!而 run-level 早就在前面的時候以 /etc/inittab 當中取得啰!好了,如果你知道如何進入到 /etc/rc.d 的目錄中的話,那么你將會看到該目錄下應該有八個目錄跟三個檔案,目錄 rc0.d ~ rc6.d 分別代表了各個 run-level 的 scripts !而在這些目錄中的檔案都是以 S 及 K ( 大寫 ) 為開頭的檔案,并接兩位數的數字與該服務的名稱所組合而成的!如下所示為 Mandrake 9.0 的 /etc/rc.d/rc3.d 的內容: 
[root @test /root]# ll /etc/rc.d/rc3.d total 0 lrwxr-xr-x1 root root  16 Oct 19 11:05 K55routed -> ../init.d/routed* lrwxr-xr-x1 root root  18 Oct 19 10:58 S03iptables -> ../init.d/iptables* lrwxr-xr-x1 root root  17 Oct 19 11:26 S10network -> ../init.d/network* lrwxr-xr-x1 root root  16 Oct 19 11:26 S12syslog -> ../init.d/syslog* lrwxr-xr-x1 root root  16 Oct 19 11:26 S20random -> ../init.d/random* lrwxrwxrwx1 root root  13 Oct 28 15:22 S40atd -> ../init.d/atd* lrwxr-xr-x1 root root  19 Oct 19 10:59 S40saslauthd -> ../init.d/saslauthd* lrwxrwxrwx1 root root  14 Oct 19 21:28 S55ntpd -> ../init.d/ntpd* lrwxrwxrwx1 root root  14 Oct 19 12:11 S55sshd -> ../init.d/sshd* lrwxrwxrwx1 root root  16 Oct 19 12:00 S56xinetd -> ../init.d/xinetd* lrwxr-xr-x1 root root  18 Oct 19 11:26 S75keytable -> ../init.d/keytable* lrwxr-xr-x1 root root  17 Oct 19 11:12 S80prelude -> ../init.d/prelude* lrwxr-xr-x1 root root  17 Oct 19 11:03 S85numlock -> ../init.d/numlock* lrwxr-xr-x1 root root  18 Oct 19 11:35 S89internet -> ../init.d/internet* lrwxr-xr-x1 root root  15 Oct 19 11:26 S90crond -> ../init.d/crond* lrwxr-xr-x1 root root  17 Oct 19 11:26 S95kheader -> ../init.d/kheader* lrwxr-xr-x1 root root  14 Oct 19 11:38 S99adsl -> ../init.d/adsl* lrwxr-xr-x1 root root  19 Oct 19 11:04 S99linuxconf -> ../init.d/linuxconf* lrwxr-xr-x1 root root  11 Oct 19 10:41 S99local -> ../rc.local*
·  
在這個目錄下的檔案都是連結檔,均指向到 /etc/rc.d/init.d 這個目錄下,而這個 /etc/rc.d/init.d 目錄則是以 Linux 的 rpm 安裝方法時,設定一些服務的激活目錄。舉個例子來說,如果你要重新激活 sendmail 的話,而且你的 sendmail 是以 rpm 來安裝的,那么下達 /etc/rc.d/init.d/sendmail restart 就可以直接激活 sendmail 啰!所以你即可知道 /etc/rc.d/init.d 里面檔案的主要功能!因此,當你的 run-level 內的 scripts 要激活哪寫服務呢,呵呵!就將檔案連結到該 init.d 目錄下的檔案并加以激活即可啰!也就是說『當你以 文字模式 ( run-level=3 ) 激活 Linux 時,你的系統在經過 BIOS、 MBR、 Kernel、 init、/etc/rc.d/rc.sysinit 之后,就會進入 /etc/rc.d/rc3.d 來激活一些服務』啰!不過,需要注意的是,在 rc3.d (或其它目錄下 rc0.d ~ rc6.d )目錄中 S 開頭的檔案為執行該服務, K 為開頭的檔案則是殺掉該服務的意思。那么那些數字代表的意義為何?那就是激活的順序啦!例如S12syslog 會比S90crond 更早被執行呢!那么為什么要有這些順序呢?這是有原因的!例如您的主機有要激活 WWW 好了,那么您的網絡設定應該要先激活才對吧!所以啰,如果 WWW 先激活,才驅動網絡,那么 WWW 自然就一定起不來啦!所以各項服務的激活順序也是相當重要的!目前 Mandrake 當中,可以使用 chkconfig 來設定開機要激活的服務選項呢!#p#分頁標題#e#
· init 執行 /etc/rc.d/rc.local
在 DOS 或 Windows 的系統中,對于 autoexec.bat 與 config.sys 這兩個檔案您應該不陌生吧?!這兩個檔案是 DOS 或 Windows 在完成開機之后,第一個要去讀取的內容!那么 Linux 有沒有該檔案?!有的!在 Linux 系統執行完了大部分的開機程序之后,接著下來就是要執行你的 Linux 主機的個人化設定啰!舉個例子來說,由于 Red Hat 7.2 預設是將 CDROM 視為一個模塊激活的裝置,因此你的 cdrom 將必須要加載兩個模塊之后才能使用,分別是 modprobe cdrom, modprobe ide-cd 這兩個指令!而如果你想每次都使用 cdrom 的話,那么你每次開機都必須記得手動加載這兩個模塊!粉累耶....這個時候就可以將這兩行指令加入到 /etc/rc.d/rc.local 當中去啰!也就是說,不論你有什么需要在開機的時候寫進去的指令,都可以在這里寫入喔! ( 通常為了避免麻煩,我們都將開機完之后必須要做的幾件事情,例如激活 NAT 主機的命令,使用 tarball 安裝的一些軟件的激活指令都寫在這個檔案來,那么系統開機完成之后,你所需要執行的指令也都執行完畢啰!)
 
前面的步驟都被主機執行之后,開機的程序就已經完全的激活完畢了!也就是說,如果你已經有網絡的服務激活的話(通常在 /etc/rc.d/init.d 時就加載啰),那么你的主機已經在 Internet 上面提供服務了!所以根本就不需要你登入 Linux 系統你的主機也能正確的提供相關的服務喔!
· 開機設定檔 /etc/sysconfig
不過,在開機的過程中,到底使用了多少設定檔呢?呵呵!使用最多的設定檔大多放置在 /etc/sysconfig 這個目錄底下呢!來看一下 Mandrake 9.0 在這個設定檔底下有哪些東西?
 
[root @test root]# ll /etc/sysconfig total 100 -rw-r--r--1 root root 511 Sep 19 17:48 alsa -rw-r--r--1 root root 239 Sep 19 17:48 autofsck -rwxr-xr-x1 root root  41 Oct 19 11:39 autologin* -rwxr-xr-x1 root root  36 Oct 19 11:35 clock* drwxr-xr-x4 root root 4096 Oct 19 11:27 console/ -rw-------1 root root  35 Oct 19 11:35 drakconnect -rw-------1 root root  29 Oct 19 11:35 drakconnect.adsl_pppoe -rw-------1 root root 363 Oct 19 11:35 drakconnect.netc -rwxr-xr-x1 root root 275 Oct 19 11:47 i18n* -rw-r--r--1 root root 952 Sep 19 17:47 init -rw-r--r--1 root root 1407 Sep 19 17:48 installkernel -rwxr-xr-x  1 root root 446 Aug 26 23:37 ipvsadm* -rwxr-xr-x1 root root  39 Oct 19 11:27 keyboard* -rwxr-xr-x1 root root 114 Oct 18 11:43 mouse* -rwxr-xr-x1 root root  53 Oct 19 11:39 msec* -rw-r--r--1 root root0 Sep 17 22:16 msec.rpmnew -rwxr-xr-x1 root root 100 Oct 19 13:35 network* drwxr-xr-x5 root root 4096 Oct 19 10:41 networking/ drwxr-xr-x2 root root 4096 Oct 19 13:36 network-scripts/ -rwxr-xr-x1 root root  10 Oct 19 11:26 pcmcia* -rw-r--r--1 root root 153 Jul 25 2000 rawdevices -rw-r--r--1 root root 336 Jul 26 20:35 saslauthd -rw-r--r--1 root root 455 Aug 14 09:30 syslog -rwxr-xr-x1 root root  56 Oct 19 11:39 system* -rw-r--r--1 root root 337 Sep 19 17:48 usb -rw-r--r--1 root root  41 Aug 22 18:11 xinetd
·  
上面具有黃色字體的哪幾個項目尤其重要!
 
o clock 在設定我們 Linux 主機的時區,可以使用格林威治時間,也就是標準時間,也可以使用臺灣的本地時間 ( local );
o i18n 在設定一些語系的使用方面,例如最麻煩的文字接口下的日期顯示問題!如果您是以中文安裝的,那么預設語系會被選擇 big5 ,所以在純文字接口之下,你的檔案日期顯示就會呈現亂碼!這個時候就需要更改一下這里啦!更動這個 i18n 的檔案,將里面的 LC_TIME 改成 en 即可!!
o Keyboard 與 mouse 就是在設定鍵盤與鼠標的形式;
o network 可以設定主機名稱,以及 GATEWAY 這兩個重要信息呢!
o 至于 network-scripts 里面的檔案,則是主要用在設定網絡卡~這部份我們在網絡架設篇才再次提到!
總之,這個目錄下的檔案都是很重要的啦!
變換預設的登入模式
剛剛在上面說了登入主機的方式最少有六種,不過常使用的是 run-level 3 的文字接口模式與 run-level 5 的圖形接口模式!如果你在安裝的過程中選擇了文字接口登入,但是后來卻想以圖形接口登入系統,應該怎么做?!簡單的很!就直接修改 /etc/inittab 這個檔案的內容即可!如何做呢?!以 vi 或者是其它的文書編輯軟件,進入 /etc/inittab 這個檔案,檔案的內容有點像這樣: 
# Default runlevel. The runlevels used by Mandrake Linux are: #  0 - halt (Do NOT set initdefault to this) #  1 - Single user mode #  2 - Multiuser, without NFS (The same as 3, if you do not have networking) #  3 - Full multiuser mode #  4 - unused #  5 - X11 #  6 - reboot (Do NOT set initdefault to this) # id:3:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 # Things to run in every runlevel. ud::once:/sbin/update # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6
在上面的資料中,將 id:3:initdefault: 里頭的 3 改成 5 ,那么在下次的登入時就會變成是圖形接口啰!同理,要由圖形接口變成文字接口來登入時,也是將上面那行改成 3 即可!此外,不知道您有沒有經驗,在你的 Linux 主機當中, Linux 共提供了六個終端機接口與 一 個圖形接口的登入點,你可以按下 『 Ctrl 』+ 『 Alt』 加上『F1』 ~ 『F6』 功能鍵 來變換不同的文字接口登入點!至于圖形接口則僅使用于『 Ctrl + Alt + F7 』這一個喔!不過,如果你只想要提供四個文字接口呢?該如何是好?!呵呵!只要將上面的最后兩行刪掉,只剩下 1:2345:....至 4:2345:...,只剩下這四行然后重新開機之后,你的 F5 與 F6 功能鍵的作用就會消失啰!就這么簡單啦!不過,需要注意的是,圖形接口只有一個,當你使用圖形接口登入時,那么將直接進入 tty7 那一個圖形接口的登入屏幕喔!而當你在 tty1 輸入 startx 激活 X-Windows 時,你的控制權將會跑到 tty7 (就是在 F7 功能鍵),此時,若您的 X-windows 掛了!那么直接按下『 Ctrl + Alt + F1 』 回到 tty1 之后,直接刪除該 X-Windows 的程序即可關閉 X-Windows 啰!很不錯吧!#p#分頁標題#e#

Lilo
好了,要開始來搞定 boot loader 啰!第一個介紹的事較老牌的 lilo 這個玩意兒!他算是最標準的 Linux boot loader 啰!目前我的幾部主機里面,用的也大部分都是他呢!Lilo 的設定與安裝方面必需要分成兩個步驟,分別是設定 /etc/lilo.conf 這個設定檔,設定完畢之后,還必需要給他改寫進去 MBR 或者是 Super block 才行!
· 設定檔 /etc/lilo.conf
基本上, lilo 是加載 Linux 核心的重要開機資料的安裝程序,他的參數設定檔案就放在 /etc/lilo.conf 里頭,那么我們來看一看里面有什么設定參數吧,基本上他的設定參數有點像底下這樣,可以分為兩部分,一個是整體的設定方面,一個則是每一個開機設定的核心檔案:
[root @test linux]# vi /etc/lilo.conf # 第一部份,整體的設定部分 prompt<==強制出現 boot 的開機訊息啰! Compact  <==可以整合一些讀取的扇區,可以保持 map 較小,相當適合軟盤開機時使用 delay=50 <==如果有多重開機的話,可以設定這個延遲時間,單位0.1秒 timeout=50 <==與 delay 有類似的關系!也是 0.1 秒,如果 5 秒內沒有按鍵盤,直接以第一個 image 開機。 default=linux-2.4.18 <==如果開機的過程中,出現了boot之后,使用者沒有動作, 則以此設定的核心開機,與底下的label需對應 boot=/dev/had <==Lilo 的開機信息寫入到 /dev/hda 這顆硬盤的 MBR 當中。 map=/boot/map <==用來說明 local 主機的地圖信息啰! install=/boot/boot.b <==關于開機區的訊息(boot sector),不用理他沒關系! Linear<==在較大容量的硬盤使用時,可以加入這一個參數試試看! lba32 <==這個東西也是在大容量的硬盤使用時候會需要的參數! password=1234567 <==設定密碼!如果為了安全起見,可以設定您的 lilo 密碼哩! message=/boot/message <==那個 LILO 的訊息就是在里面出現的啦! # 第二部分,個別的開機設定部分,一個 image 或 other 均代表一個開機設定! image=/boot/vmlinuz-2.4.7-10 <==核心檔案啦! label=linux-2.4.7<==請注意!label 前面以 [tab] 按鍵來作為分隔! 這個字眼則是顯示在 boot 里頭挑選項目。 initrd=/boot/initrd-2.4.7-10.img read-only  <==開機扇區掛載為只讀!這是預設狀況,實際在 掛加載 Linux 系統時,會重新掛載成可寫! root=/dev/hda1  <==掛載成 / 這個 root 目錄的磁盤! other=/dev/hdb1 <==如果是『非 Linux 核心』就以 other 來設定 開機的磁盤扇區! label=Windows2k <==同樣的要有 label 來表示這個開機扇區的名稱!
·  
注意一下上面那幾個咚咚:
o delay 與 timeout 的設定是 0.1 秒,所以 delay=50 表示延遲時間為 5 秒!
o linear 與 lba32 通常用在 SCSI 或者是較大的硬盤,例如扇區超過 1024 磁道的硬盤,可以使用這個項目來除錯!不過,如果是小于 8GB 的硬盤,這兩個東西有沒有設定就沒有什么影響了!
o default 需要設定成底下幾個 image 或者是 other 的 label 才成!這個地方最常被忘記!因為常常會記得修改 label ,但是忘記跟著改變 default 的內容!此外,如果你想要修正開機預設的操作系統選項,在這里改啦!
o password 的用途在于安全防護方面,不過有個困擾,就是『如果你的計算機因為不正常關機(如斷電后重開)而在電源恢復的時候重新開機時,則會卡在這個階段無法直接進入 Linux 系統』,因為你必須提供 password 才能繼續的工作呀!
o boot 顯示的是開機的扇區選擇! 這里也蠻重要的,如果你想要安裝在 MBR 里面的話,如同上面的書寫模式,就是寫入 /dev/hda ,后面不要加上每個 partition 的代碼!但是,如果你是想寫入 Super Block ,例如我想要寫入的是 had5 這個 Logical 的 partition 時,那么這里就必需要改寫為 /dev/hda5 啰!所以,您應該只要一看到這個 boot 后面接的內容,就會知道那個安裝的扇區是 MBR 還是 Super Block 啰!
o image 可以設定成多數個!如果你的 Linux 系統有多個核心檔案的時候,例如我們剛剛編譯完成的一個新的核心,然而你又不想丟掉舊核心,就可以設定成兩個不同核心的開機系統啰!
大致上就是這樣吧!其它不明了是什么東西的選項,可以使用 man lilo.conf 來看看里頭的設定!因為還有很多開機時后需要加載的參數可以來設定一番呢!
· 以預設的 lilo.conf 新增一個開機檔
好啦!為了測試一下您是否已經知道了 lilo.conf 的設定方式,所以我們來做個實驗吧!請在您的『實驗主機』上面,不要在提供服務的主機上面完呦!否則死掉了不要怪我沒警告您…我們先試圖安裝在 super block 上面好了!以下面為例,黃色字體的部分是經過我的修改之后的結果,您的 /etc/lilo.conf 應該會長的跟我的差不多才是!
boot=/dev/hda1 map=/boot/map vga=normal default=linux keytable=/boot/us.klt prompt nowarn timeout=100 message=/boot/message menu-scheme=wb:bw:wb:bw image=/boot/vmlinuz label=linux root=/dev/hda1 initrd=/boot/initrd.img append="devfs=mount" read-only image=/boot/vmlinuz label=failsafe root=/dev/hda1 initrd=/boot/initrd.img append="devfs=nomount failsafe" read-only image=/boot/vmlinuz <==就給他新增加一個 label ,但是內容不變! label=linux-test root=/dev/hda1 initrd=/boot/initrd.img append="devfs=mount" read-only
·  
這樣就設定好了!接著下來看一下怎么安裝他吧!
·
· 安裝 lilo
既然設定好了,自然就是要安裝他啰!安裝的方式很簡單,直接輸入 lilo 即可!
 
[root @test root]# lilo Added linux *  <==有打星號的是『預設的開機設定檔!』 Added failsafe Added linux-test
·  
看到沒有!要像上面這樣才是安裝成功呦!如果出現了錯誤的訊息,那么肯定是有地方沒有安裝好!這個時候請特別的再重新設定一次 /etc/lilo.conf 呢!有打星號的是『預設的開機設定檔!』
· 而如果您還要看看更多的訊息,那么就需要這樣:
 
[root @test root]# lilo -v LILO version 22.3.2, Copyright (C) 1992-1998 Werner Almesberger Development beyond version 21 Copyright (C) 1999-2002 John Coffman Released 11-Jul-2002 and compiled at 21:48:42 on Aug 13 2002. Reading boot sector from /dev/hda1 Using MENU secondary loader Calling map_insert_data Mapping message file /boot/message -> message-text Calling map_insert_file Boot image: /boot/vmlinuz -> vmlinuz-2.4.19-16mdk Mapping RAM disk /boot/initrd.img -> initrd-2.4.19-16mdk.img Added linux * Boot image: /boot/vmlinuz -> vmlinuz-2.4.19-16mdk Mapping RAM disk /boot/initrd.img -> initrd-2.4.19-16mdk.img Added failsafe Boot image: /boot/vmlinuz -> vmlinuz-2.4.19-16mdk Mapping RAM disk /boot/initrd.img -> initrd-2.4.19-16mdk.img Added linux-test /boot/boot.0301 exists - no backup copy made. Writing boot sector.#p#分頁標題#e#
·  
如果你需要更多的訊息,那么就使用『 lilo –v –v –v 』多一點 –v 就對啦!
·
· 一些問題的解決之道
好了! lilo 安裝完成之后,總是會有一些問題會發生吧!那么如何來解決問題呢?嗯!可以看一下底下的一些解決之道:
o 我要如何選擇不同的開機設定檔?開機的時候我只看的到 boot: 而已?
開機之后,如果是以 lilo 來激活 kernel 時,那么他會出現 boot: 的字樣,出現這個字樣之后,馬上按下 按鍵,那么就會出現目前 lilo 所記憶的開機設定文件啰!然后在 boot 后面輸入想要的開機檔案,就可以啰!
o 安裝好了 Linux 之后,在開機的過程中卻只出現『 LI 』就停止了!該如何是好?
這個問題可能發生的原因是 Lilo 沒有設定好,或者是由于 Linux 安裝在非 /dev/hda ( MBR )的硬盤之中,解決的方法可以如下:
1. 用 Linux 光盤開機,然后在出現 boot: 處輸入
linux root=/dev/hda1 (這個與你的 Linux 安裝的 partition 有關)
順利開機之后,以 vi 修改 /etc/lilo.conf 將
linear
這一行取消(如果沒有這一行的話,那就在 lilo.conf 中加入吧!)然后執行
lilo
再取出光盤并重新開機試試看;
2. 進入 BIOS ,將硬盤的 mode 改成 LBA 試看看;
3. 將Linux往前面一點的扇區安裝,例如你可能安裝在 /etc/hdc1 ,那你可以重新安裝 Linux 在 /dev/hda2 試看看
o 安裝Linux完成之后,卻是出現 010101... 等數字在屏幕上,無法進入 Linux ...
這個問題的發生很有可能是硬盤出了問題了!這個時候可以使用 fsck 來掃瞄啰!
1. 用軟盤或者是光盤開機后,使用fsck這個硬盤修正軟件掃瞄一下您的 root partition ,例如:fsck /dev/hda1
2. 進入 BIOS ,將硬盤的 mode 改成 LBA 試看看;
o 我們知道 DOS 需要在第一顆硬盤的第一個扇區才能正常開機使用!那要是他并非在第一個扇區呢?例如當 DOS 系統在 /dev/hdb1 (第一條排線的 slave )?
解決知道就是以 lilo 修正磁盤的配置啦!如下所示來修改 /etc/lilo.conf
other=/dev/hdb1
 label=DOS
 map_drive=0x80
 to=0x81
 map_drive=0x81
 to=0x80
然后再執行 lilo 寫入 MBR 當中!
o 我不要玩 Linux 了,如何移除 lilo ?
只要以 Windows 的開機片開機,然后以 Windows 系統的 fdisk 下達:
fdisk /mbr
就可以將 Lilo 自 MBR 當中移除啰!
o 無法正常的進入 Lilo 怎么辦?
這的時候開機片就很重要啦!使用開機片,在出現 boot: 的時候,輸入
linux -s
就可以進入啦!這里請特別留意!那個 linux 指的是 label 呢!就像剛剛我們有三個 label ,分別是 linux, linux-test 與 failsafe ,那么如果我要以 linux-test 這個開機設定文件的單人維護模式登入,就必需要改寫成
linux-test –s
linux-test single
請特別留意!!
Grub
grub 是較新的 boot loader 程序,他具有相當多的優點,這里不一一列舉啦!無論如何, lilo 能做的, grub 幾乎都可以做的到,包括選單、密碼、指向等等的功能!不過, grub 比 lilo 要先進的幾點是:
1. 他可以讓您在開機的時候『自行編輯與修改開機設定項目』,有點像是 bash 的指令模式;
2. 他可以自動『動態尋找設定文件』,亦即他可以依據 /boot/grub/menu.lst 的設定而改變其設定!因此,修改設定只要改 /boot/grub/menu.lst 即可,不需要再重新安裝 grub !
很棒吧!不過,在設定底下的工作之前,請先確認您的 grub 這個套件已經安裝上來來!如果還沒有安裝的話,那么先查閱一下 RPM 的安裝方法再說!底下假設 grub 這個套件已經安裝在您的主機上啰!
· 設定檔 /boot/grub/menu.lst
Grub 的設定檔也很簡單,就是 /boot/grub/menu.lst 這個檔案,請注意,那個 lst 是 L 的小寫呢!如果有興趣的話,可以使用 info grub 好好的去看一下他的所有功能,底下僅列出一些我們常用的功能與設定而已喔!
o 關于硬盤的代號:
在 grub 里面,有一點是比較讓人覺得不適應的,那就是他的硬盤代號與 lilo 還有 Linux 傳統的代號不一樣~他的代號主要有點像這樣:
(hd0,0)
hd 指的是 IDE 的硬盤,而里面的 0,0 代表什么呢?第一個 0 代表他是第一個 IDE 的 master ,而第二個 0 代表他是第一塊 partition 的代號,所以呢,這個代號就是 hda1 啦!所以,我們可以得到底下這個對應表:
裝置 Lilo Grub
IDE1 master hda, hda1, hda2 (hd0), (hd0,0), (hd0,1)
IDE1 slave hdb, hdb1, hdb2 (hd1), (hd1,0), (hd1,1)
IDE2 master hdc, hdc1, hdc2 (hd2), (hd2,0), (hd2,1)
IDE2 slave hdd, hdd1, hdd2 (hd3), (hd3,0), (hd3,1)
這里需要先記憶一下啰!
·
好了,那么將我的 menu.lst 列出來一下吧先!
 
[root @test root]# vi /boot/grub/menu.lst timeout 10<==多久之后鍵盤沒有動靜,就直接以 default 的設定開機,這里是秒數! Color black/cyan yellow/cyan <==設定顏色的參數 i18n (hd0,0)/boot/grub/messages <==設定 i18n 多國語系的訊息提示 keytable (hd0,0)/boot/us.klt<==設定鍵盤形式,通常使用美規的鍵盤即可! Default 0<==預設的開機選項,依照底下的排序,第一個為 0 ! title linux <==這是第一個開機設定檔,亦即排序為 0 號! kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 devfs=mount initrd (hd0,0)/boot/initrd.img <==上面兩個則是開機設定檔的基本內容,分別是核心檔案所在地與 Ramdisk 的設定內容! title failsafe  <==這是第二個開機設定檔,亦即排序為 1 號! kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 devfs=nomount failsafe initrd (hd0,0)/boot/initrd.img title windows chainloader (hd1,0) +1
·  
o default 與 title 的計算方式:
基本的說明已經在上表當中了,這里需要在說明的是關于 default 開機檔的計算。如果今天我有四個開機設定檔,那么 default 算的是什么呢?就是『排序』啦!假如我底下依序出現的設定檔 title 分別是 linux, linux-test, windows, failsafe 的話,那么開機的時候, grub 的選單就會顯示: #p#分頁標題#e#
  linux
  linux-test
  windows
  failsafe
其中,linux 就是 0 ,而 failsafe 就是 3 ,如果您要調整開機時后的選單順序,就在 /boot/grub/menu.lst 修改一下他們的順序即可!但是記得 default 要跟著變,因為他也是依據排序而變的呦!這點請不要忘記了?
o title 內容的設定方式:
基本上,如果是一般的硬盤環境中,我們僅需要兩行就可以設定好 title 的內容了,分別是:
root  [開機根目錄 / 所在的磁盤代號] kernel [開機檔案的所在地完整檔名] [root=/dev/硬盤代號] 范例: root  (hd0,0) kernel /boot/vmlinuz-2.4.19-16mdk root=/dev/hda1 設定上面就是這樣而已!所以,開機完畢之后,請將您的 kernel 文件名稱(完整檔名)與開機的根目錄所在的磁盤代號記憶一下,那么下次就可以手動設定開機設定項目呢!但如果是 windows 方面的設定時,那就直接使用 chainloader 這個項目即可,有點像這樣: chainloader [硬盤代號] +1 范例: chainloader (hd1,0) +1
·安裝 grub 在系統中
要安裝 grub 跟 /boot/grub/menu.lst 并沒有相關性!因為剛剛我們就提過了, grub 為動態去搜尋設定文件的,所以寫入 MBR 或 super block 時,并沒有將 menu.lst 寫入ㄋㄟ?好了,那我們就來安裝看看吧!安裝的方式主要也是分為安裝在 MBR 與 super block 呢!底下我們就來談談這兩種安裝的方式:基本上的動作就是:
1.使用 root [磁盤代號] 選擇開機根目錄 / 所在磁盤代號;
2.使用 setup [磁盤代號] 選擇 MBR 或 Super block 直接安裝進去!
3.使用 quit 就可以離開 grub 了!
[root @test root]# grub # 先安裝在 Super Block 底下試看看: grub> root (hd0,0) <==這里輸入我要的 root 硬盤扇區! Filesystem type is ext2fs, partition type 0x83 grub> setup (hd0,0) <==實際安裝上來!使用 setup 指令! Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal) Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal) Running "install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 p /boot/grub/menu .lst "... succeeded Done. # 再安裝在 MBR 試看看: grub> root (hd0,0) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 17 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done. grub> quit <==離開 grub 啰!
這樣就安裝進去啰!很方便吧!并不難吧!
·開機手動設定選項
事實上,每次動手修改完 /boot/grub/menu.lst 就已經完成了 grub 的設定啰!因為他相當的聰明!但是,如果我設定錯誤怎么辦?沒關系!有很多的方法可以使用呢!如果您可以順利的以硬盤進入 grub 畫面,那么恭喜您,可以繼續下面的行動了!但是如果您的 Linux 竟然無法順利的開機了,也就是說,使用硬盤開不了機!那么也沒有關系,別擔心,就直接給他使用 CD 開機,然后在進入 grub 畫面之后,再繼續下面的動作!
o在 grub 畫面下進行手動加入的動作:
在 grub 畫面中,通常畫面的最下方都會顯示一些基本的訊息,例如下方的 Mandrake 預設文字接口 grub 登入圖標:

在這個畫面中,您可以輸入 e 或 c 來選擇『編輯』或『進入指令列模式』,無論如何,這兩個選項將使您進入指令列模式當中啦!所以您就可以看到一個大大的 grub> 提示字符,然后就可以修改或者是自訂一些項目啦!而這些修改或者設定的項目,并不會主動的去覆蓋您的 /boot/grub/menu.lst ,而是這次登入所做的修改而已呢!通常我都是選擇 e 進入編輯的畫面,然后選擇 kernel 與 root 那兩項內容進行編輯即可!例如我們上面提過的,我的 root 與 kernel 已經知道了正確的訊息,所以我就可以按下 c 來輸入底下的字樣:
grub> root (hd0,0)
grub> kernel /boot/vmlinuz-2.4.19-16mdk root=/dev/hda1
這樣就可以進入我們的主機了呢!很厲害吧!
--------------------------------------------------------------------------------
可開機磁盤與救援磁盤制作
不論任何時候,制作可以開機的磁盤與救援的磁盤,都是一件很值得鼓勵的事情!這里我們提供簡單的方式來讓您的磁盤可以開機呦!
# 制作軟盤開機片:
[root @test root]# mkbootdisk --device /dev/fd0 `uname -r`
Insert a disk in /dev/fd0. Any information on the disk will be lost.
Press to continue or ^C to abort:
# 制作救援磁盤:
[root @test root]# mkrescue --device /dev/fd0
不過, mkrescue 比較麻煩的一點是,這個程序僅支持 lilo 這個 loader 的 image file ,所以如果剛剛您是使用 grub 來設定 MBR 的話,那么 mkrescue 就無法動作了

熱詞搜索:

上一篇:Linux初始化:系統V的Init過程
下一篇:深信服SSL VPN解決西安市衛生局移動辦公難題

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
精品国产伦一区二区三区免费| 欧美色综合久久| 国产综合色视频| 美女视频黄免费的久久| 手机精品视频在线观看| 日韩精品福利网| 日韩国产成人精品| 毛片av一区二区| 国产一区在线不卡| 国产精品性做久久久久久| 成人手机在线视频| 99视频一区二区| 欧美日韩在线观看一区二区| 欧洲一区二区三区在线| 欧洲色大大久久| 欧美一个色资源| 久久精品综合网| 亚洲女性喷水在线观看一区| 一区二区三区四区视频精品免费 | 最新国产成人在线观看| 亚洲日本欧美天堂| 亚洲国产色一区| 日本视频中文字幕一区二区三区| 日韩电影免费在线观看网站| 狠狠色丁香婷婷综合| 99久久精品免费看国产免费软件| 一本大道久久a久久综合婷婷| 欧美日韩国产一级片| 欧美成人aa大片| 亚洲欧美日韩成人高清在线一区| 午夜av区久久| 成人综合婷婷国产精品久久 | 免费一级欧美片在线观看| 精品一区二区三区免费视频| av在线不卡网| 欧美一级午夜免费电影| 国产精品乱人伦| 日韩av午夜在线观看| 国产91精品久久久久久久网曝门| 欧美做爰猛烈大尺度电影无法无天| 日韩一卡二卡三卡国产欧美| 欧美激情中文字幕| 日韩电影网1区2区| 91免费观看视频| 久久久精品影视| 亚洲va韩国va欧美va| av一二三不卡影片| 久久久久久久久久久久久久久99| 婷婷久久综合九色综合绿巨人 | 欧美性xxxxxx少妇| 国产精品无圣光一区二区| 久久av资源站| 欧美日本免费一区二区三区| 亚洲视频免费观看| 不卡的av电影| 精品国产成人系列| 久久精品国内一区二区三区| 欧美色综合网站| 一区二区三区国产精品| 国产成人在线电影| 久久青草欧美一区二区三区| 视频一区二区欧美| 欧美性受xxxx| 亚洲线精品一区二区三区| 94色蜜桃网一区二区三区| 国产嫩草影院久久久久| 激情五月婷婷综合网| 制服丝袜在线91| 亚洲成人激情综合网| 在线观看免费亚洲| 亚洲午夜久久久久久久久电影网| 91成人国产精品| 一二三四区精品视频| 99久久777色| 亚洲欧美激情一区二区| 欧美一区午夜视频在线观看| 亚洲电影在线免费观看| 欧美日韩国产123区| 三级影片在线观看欧美日韩一区二区 | 欧美日韩成人综合在线一区二区| 亚洲精品国久久99热| 在线观看国产日韩| 婷婷开心激情综合| 日韩女优制服丝袜电影| 国产一区在线视频| 亚洲欧洲精品成人久久奇米网| 国产999精品久久久久久绿帽| 国产精品女主播在线观看| a级精品国产片在线观看| 亚洲视频一二三区| 欧美日韩国产不卡| 久久国产麻豆精品| 国产精品午夜久久| 欧美日韩在线精品一区二区三区激情| 亚洲bt欧美bt精品777| 日韩午夜中文字幕| 成人午夜视频在线观看| 亚洲桃色在线一区| 欧美精品一卡两卡| 国产在线一区二区综合免费视频| 国产精品全国免费观看高清| 97精品国产97久久久久久久久久久久 | 欧美在线观看禁18| 日本伊人色综合网| 国产欧美一区二区在线| 在线观看亚洲一区| 国产一区美女在线| 亚洲综合一区二区三区| 日韩一级在线观看| a美女胸又www黄视频久久| 视频一区国产视频| 国产欧美日韩精品在线| 欧美精品久久一区| 成人深夜福利app| 日韩**一区毛片| 国产精品久久久久久久蜜臀| 91精品国产综合久久久久久漫画| 国产成人亚洲精品青草天美| 午夜伦欧美伦电影理论片| 久久网站热最新地址| 欧美亚洲国产一卡| 99久免费精品视频在线观看| 久久精品国产**网站演员| 国产精品第五页| 国产三级精品三级在线专区| 欧美日韩国产在线观看| www.色综合.com| 九九在线精品视频| 亚洲va欧美va国产va天堂影院| 国产精品无遮挡| 久久久久久日产精品| 日韩免费观看高清完整版| 日本久久电影网| 成人av资源在线观看| 91麻豆福利精品推荐| 国产精品中文字幕日韩精品 | 偷窥少妇高潮呻吟av久久免费| 国产精品久久看| 久久精品免费在线观看| 日韩视频免费观看高清完整版 | 国产精品久久毛片a| xfplay精品久久| 欧美tickle裸体挠脚心vk| 欧美日韩黄色影视| 欧美日韩国产一级片| 91极品美女在线| 色av一区二区| 在线观看区一区二| 欧美日韩另类一区| 欧美三级日本三级少妇99| 在线欧美小视频| 欧美嫩在线观看| 欧美日高清视频| 欧美电影影音先锋| 51精品久久久久久久蜜臀| 制服丝袜亚洲色图| 91精品婷婷国产综合久久| 91精品一区二区三区在线观看| 3d成人动漫网站| 精品国产凹凸成av人网站| 欧美本精品男人aⅴ天堂| 久久久久久久电影| 国产精品久久久久久久久快鸭| 国产精品国产三级国产aⅴ中文 | 国产精品看片你懂得| 国产精品美女久久久久av爽李琼| 中文字幕欧美激情一区| 亚洲视频在线一区二区| 亚洲午夜精品网| 国内精品久久久久影院色| 国产成人一级电影| 一本到高清视频免费精品| 欧美日韩精品免费观看视频| 欧美成人免费网站| 国产视频911| 亚洲高清不卡在线| 国产精品综合一区二区三区| 国产成人av福利| 在线观看日韩高清av| 日韩精品中文字幕在线一区| 亚洲国产精品传媒在线观看| 亚洲精品乱码久久久久久日本蜜臀| 日韩成人一区二区| 成人视屏免费看| 91精品免费观看| 国产精品三级在线观看| 日韩精品免费视频人成| 国产风韵犹存在线视精品| 欧美在线一二三| 国产日产欧美一区二区三区| 亚洲一区二区三区国产| 久久99久久99| 在线观看亚洲a| 亚洲国产成人自拍| 蜜臀久久99精品久久久久久9| 丁香婷婷综合五月| 欧美一区二区三区影视| 亚洲不卡一区二区三区| 岛国一区二区三区| 日韩一级黄色大片|