當前位置:首頁 » 操作系統 » linux系統初始化

linux系統初始化

發布時間: 2022-05-11 12:20:15

linux是如何初始化網路的

以下幾種辦法在大部分發行版本中可用:
sudo service networking restart
/etc/init.d/networking restart
sudo service network restart
/etc/init.d/network restart
如果想要配置網卡(設置IP,MAC地址,網關,DNS等等)
配置文件在sudo vi /etc/network-scripts/ifcfg-eth0
如果沒有的話,那就在sudo vi /etc/network/interfaces
也可以臨時修改:sudo ifconfig eth0 IP地址 netmask 255.255.255.0

⑵ Linux基本配置和管理---- Linux系統啟動詳解

linux基本配置和管理----
linux系統啟動詳解1
系統啟動的流程
BIOS
->
MBR+boot
code
->
執行引導程序:
GRUB
->
載入內核
->
執行init
->
運行runlevel2
啟動詳解
1
BIOS
1
BIOS
指的是基本的輸入輸出系統(basic
input
output
system),一般保存在主板上的BIOS晶元中
2
計算機啟動的第一步一般都是先啟動BIOS,然後BIOS去檢查硬體以及查找可啟動的設備
3
可啟動的設備可以在BIOS中進行設置,包括USB
,
CDROM
,
HD等
2
MBR
1
MBR是512位元組的,前446位元組為引導代碼
2
BIOS通過第一個扇區的512位元組中最後兩個位元組為55aa來判斷設備為啟動設備
3
MBR只是去載入引導程序GURB
3
GRUB
1
GRUB是現在linux使用的主流的引導程序
2
GRUB可以引導幾乎所有的操作系統
3
GRUB的相關文件保存在/boot/grub中
4
KERNEL
1
MBR的引導代碼將負責找到並載入linux的內核
2
linux內核保存在
/boot/vmlinuz......
3
一般還會載入內核模塊的打包文件
/boot/init.....
4
linux為了保持內核的精簡會將一些不常用的驅動,功能編譯為模塊,然後在要用的時候動態的載入,而這些模塊被保存為initrmfs文件
5
早期的linux是使用initrd文件,但是現在的絕大多數的linux版本都是使用initrmfs,這樣能夠更節省空間,更加靈活
6
命令dmesg可以用來查看被次啟動內核的輸出信息
5
INIT
1
init
是linux運行的第一個進程,init是所有進程的父進程,編號為1
2
調用/etc/rc.d/rc.sysinit來對系統進行初始化,掛載文件系統,並且根據運行級別啟動相應的程序
3
linux的運行級別
0
關機
1
單用戶模式
2
不帶網路的多用戶模式
3
命令行的多用戶模式
4
未使用
5
圖形界面多用戶模式
6
重啟
4
我們可以通過runlevel查看之前和當前的運行級別
5
命令init可以用來查看改變當前的運行級別
6
單用戶修改root密碼
1
為內核傳遞參數1或者是single可使系統進入單用戶模式
2
單用戶模式不啟動任何的服務
3
單用戶模式直接以root登錄,不需要密碼
4
我們可以通過passwd來修改root的密碼
5
由於任何接近我們這個物理機的人都有可能修改我們的root密碼,因此我們可以通過GRUB加密來防止密碼被修改
6
我們在grub.conf中的啟動設置裡面添加一行password
--md5
加密後的串
密碼我們可以通過grub-md5-crypt
生成

⑶ Linux系統初始化設備的過程主要有哪些

1.自檢:依賴於CPU,ROM中的程序
2.載入BIOS,Boot Sequence確定啟動順序
3.MBR:
硬碟0磁軌0扇區的MBR文件,共512位元組
446:BootLoader
64:分區表,每16位元組一個分區
2:5A(一個特殊標記)
4.kernel文件vmlinuz+initrd:只能放在基本磁碟分區,BootLoader會把vmlinuz當做根來使用,即/vmlinuz
將vmlinuz載入到內存中使用。vmlinuz分為兩段,前半部分未壓縮段,是為了解壓第二段。
至此BootLoader任務完成,退場。
操作系統安裝時會執行一個命令,安裝程序完成後自動運行腳本,收集操作系統運行需要的腳本,將所需要的模塊打包成initrd,幫助內核完成初始化
initrd: ram disk,內核將之作為根來使用,將硬碟模擬成磁碟
5.initrd將所需文件復制到/下,內核完成初始化後進行根切換
6.啟動/sbin/init,由內核空間進入用戶空間
/lib/moles
/sbin/init:
/etc/inittab
id:3:initdefault:
/etc/rc.d/rc.sysinit腳本

⑷ arm開發板安裝的linux系統啟動時做了哪些初始化

開發板上電第一步是啟動固件,固件是出廠時固化好的,固件的作用是初始化一下基本的 設備,以nand為例,固件irom初始化好sram後,將nand中的前4k的bootloader(一般為uboot)拷貝到sram中,sram再初始化另一些設備比如dram等等,然後運行剩下的bootloader,接下來就是引導linux內核的啟動了。bios在開發板相當與irom部分功能和uboot的前4k,內存時鍾會在uboot中初始化的。uboot先做一些准備(比如設svc模式,關看門狗、中斷、mmu等),然後設置內核參數表,然後跳到內核的地址運行,內核一般是壓縮的,需要先解壓,入口是stext,是在arch/arm/kernel/vmlinux.lds.S中定義的

⑸ Linux如何啟動流程Linux啟動流程詳解

當用戶打開電源後,BIOS開機自檢,確定啟動設備,安裝啟動設備,啟動設備上面安裝的GRUB開始引導Linux,Linux首先先進行內核引導,通過跟切換,執行init程序,init程序確定啟動級別,根據啟動級別進行系統初始化和運行的服務,然後返回init啟動終端,用戶通過驗證成功登陸Shell,這就是一個從開機到登陸的啟動過程。

一、硬體引導啟動
當用戶打開電源後POST開始自檢,檢測硬體設備是否確實或者存在故障(是否影響正常開機),如果不影響正常開機,就把任務交給BIOS。BIOS通過搜索,安裝啟動確定啟動設備,啟動項為硬碟,BIOS去讀取硬碟的前512位元組到內存,找到BootLoader,確定GRUB

二、GRUB引導啟動內核
這一部分概況起來就是:GRUB程序載入執行並開始引導kernel程序

Boot Loader就是在操作系統內核運行之前運行的一小段程序。通過GRUB引導可以確定內核程序,因為引導扇區只有446位元組,GRUB只是一個小的程序安裝在裡面,真正使用的在MBR後面的扇區存放,我們想使用Bootloader GRUB功能必須讀取後面的文件,Bootloader GRUB功能程序的運行和載入配置選項分為三個階段

Stage1階段:
Stage1階段其實就是執行系統安裝時預先寫入到MBR的Bootloader中的程序。

Stage1階段的任務僅是將硬碟0柱面0磁軌2扇區的內容讀入內存並執行,它是Stage1.5階段或Stage2階段的入口,引導進入Stage1.5階段或Stage2階段。 在此Stage1階段,還沒有識別文件系統的能力。

Stage1.5階段:
stage1.5階段是stage1階段和stage2階段的中間橋梁。stage1.5階段具有識別啟動分區文件系統的能力,此後GRUB程序便有能力去訪問/boot分區下/grub目錄下的 stage2文件,並將stage2載入內存執行。

Stage2階段
Stage2階段執行時,首先會解析GRUB程序的配置文件grub.conf,並依配置文件決定是否顯示系統啟動菜單。然後載入內核鏡像到內存中,通過initrd程序建立RAMDisk內存虛擬根文件系統。此時控制權將轉交給內核程序。

三、內核引導啟動
這一部分主要是通過在內存中建立虛擬根文件系統實現相關設備的驅動並建立和切換到真正的根文件系統。

解壓內核鏡像載入到內存,以及initrd程序建立RAMDisk內存虛擬根文件系統後,內核開始驅動基本硬體,並調用虛擬根文件系統中的init程序載入驅動模塊初始化系統中各種設備的相關配置工作,其中包括CPU、I/O、存儲設備等。當所需的驅動程序載入完後,會根據grub.conf配置文件中「root=XXX」部分所指定的內容創建一個根設備,然後將根文件系統以只讀的方式掛載,並切換到真正的根文件系統上,同時調用系統進程的/sbin/init程序,進入系統初始化階段。

四、系統初始化
這一步是通過/sbin/init,init程序准備軟體運行壞境,啟動系統服務

通過/etc/inittab文件確定運行級別,然後去執行系統初始化腳本/etc/rc.sysinit,為用戶初始化用戶空間環境,在完成初始化後,根據運行級別,系統開始對應級別的目錄啟動服務,關閉那些不要的服務(裡面S99local -> ../rc.local)用戶自動服務啟動腳本

運行級別:為系統運行或維護等目的而設定;0-6:7個級別
0:關機
1:單用戶模式(root自動登錄), single, 維護模式
2: 多用戶模式,啟動網路功能,但不會啟動NFS;維護模式
3:多用戶模式,正常模式;文本界面
4:預留級別;可同3級別
5:多用戶模式,正常模式;圖形界面
6:重啟
默認級別:3, 5
切換級別:init #
查看級別:runlevel ; who -r
五、啟動終端,用戶登錄
這一步是用戶登錄shell過程

如果沒有改變級別,默認情況執行/sbin/mingetty打開6個純文本終端,讓用戶輸入用戶名和密碼。輸入完成後,再調用login程序,核對密碼。如果密碼正確,就從文件 /etc/passwd 讀取該用戶指定的shell,然後啟動這個shell。更多Linux介紹請查看《Linux就該這么學》。

⑹ 嵌入式Linux系統的如何進行初始化

LINUX系統的初始化可以分為兩部分:內核部分和init程序部分。內核主要完成系統的硬體檢測和初始化,init程序則主要完成系統的各項配置。
主要流程是:CPU自身初始化-->載入BIOS-->BIOS載入內核引導程序(也就是ubuntu我們常說的GRUB)-->內核引導程序載入內核映像(這里的內核代碼是壓縮過的)-->內核映像獲得CPU控制權並開始工作-->內核映像自己解壓縮,開始運行init/main.c中的start_kernel()函數,這時候內核就啟動了,系統初始化,系統的父進程init進程執行起來了,這時候整個系統初始化完畢,接下來只是調用一些UI界面的進程執行。
這是我的一點淺陋簡介,希望對你有所幫助,謝謝!

⑺ linux文件系統怎樣初始化步驟

System V init啟動過程
概括地講,Linux/Unix系統一般有兩種不同的初始化啟動方式.
1) BSD system init
2) System V init
大多數發行套件的Linux使用了與System V init相仿的init也就是Sys V init,它比傳統的BSD system init更容易且更加靈活。
System V init的主要思想是定義了不同的"運行級別(runlevel)"。通過配置文件/etc/inittab定義了系統引導時的運行級別, 進入或者切換到一個運行級別時做什麼。每個運行級別對應於一個子目錄/etc/rc.d/rcX.d。
每個rcX.d目錄中都是一些以S或K開頭的文件鏈接。這些鏈接指向的腳本都 可以接收start和stop參數,S開頭的鏈接會傳入start參數,一般是開啟一項服務,K會傳入stop參數,一般是停止某服務。
以下是一個大致的System V init過程:
(1)init 過程執行的第一個腳本是 /etc/rc.d/rc.sysinit,它主要做在各個運行級別中進行初始化工作,包括: 啟動交換分區;檢查磁碟;設置主機名;檢查並掛載文件系統;載入並初始化硬體模塊.
(2)執行預設的運行級別模式。 這一步的內容主要在/etc/inittab中體現, inittab文件會告訴init進程要進入什麼運行級別,以及在哪裡可以找到該運行級別的配置文件.
(3)執行/etc/rc.d/rc.local腳本文件。 這也是init過程中執行的最後一個腳本文件,所以用戶可以在這個文件中添加一些需要在登錄之前執行的命令.
(4)執行/bin/login程序
注意:
System V init只是一種模式,每個系統初始化都有差異,但大體上不會相差太多。如busybox執行的第一個啟動腳本就是/etc/init.d/rcS,而且不可以改變,與上面講的不同。
LFS文件系統初始化示例
inittab文件
由下內容可以看出,最先執行的是/etc/rc.d/init.d/rc文件,給這個文件傳入的參數是一個數字,rc會由傳入的數字合成rcX.d目錄的路徑,然後執行其中的所有腳本鏈接。當然這只是一部分功能。
# Begin /etc/inittab
id:3:initdefault:
<em><strong>si::sysinit:/etc/rc.d/init.d/rc sysinit</strong></em> #可以設定初始化腳本
l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
...
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
1:2345:respawn:/sbin/agetty tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
...
# End /etc/inittab

etc目錄結構
只是一部分,有刪減。
.
├── fstab
├── <em>inittab</em>
├── inputrc
├── profile
├── rc.d
│ ├── init.d
│ │ ├── checkfs
│ │ ├── cleanfs
...
│ │ ├── moles
│ │ ├── mountfs
│ │ ├── mountkernfs
│ │ ├── network
│ │ ├── rc #when boot, run.
│ │ ├── reboot
...
│ ├── rc0.d
│ │ ├── K80network -> ../init.d/network
│ │ ├── K90sysklogd -> ../init.d/sysklogd
│ │ ├── S60sendsignals -> ../init.d/sendsignals
│ │ ├── S70mountfs -> ../init.d/mountfs
│ │ ├── S80swap -> ../init.d/swap
│ │ ├── S90localnet -> ../init.d/localnet
│ │ └── S99halt -> ../init.d/halt
│ ├── rc1.d
│ │ ├── K80network -> ../init.d/network
│ │ └── K90sysklogd -> ../init.d/sysklogd
│ ├── rc2.d
│ │ ├── K80network -> ../init.d/network
│ │ └── K90sysklogd -> ../init.d/sysklogd
│ ├── rc3.d
│ │ ├── S10sysklogd -> ../init.d/sysklogd
│ │ └── S20network -> ../init.d/network
│ ├── rc4.d
│ │ ├── S10sysklogd -> ../init.d/sysklogd
│ │ └── S20network -> ../init.d/network
│ ├── rc5.d
│ │ ├── S10sysklogd -> ../init.d/sysklogd
│ │ └── S20network -> ../init.d/network
│ ├── rc6.d
│ │ ├── K80network -> ../init.d/network
│ │ ├── K90sysklogd -> ../init.d/sysklogd
│ │ ├── S60sendsignals -> ../init.d/sendsignals
│ │ ├── S70mountfs -> ../init.d/mountfs
│ │ ├── S80swap -> ../init.d/swap
│ │ ├── S90localnet -> ../init.d/localnet
│ │ └── S99reboot -> ../init.d/reboot
│ └── rcsysinit.d
│ ├── S00mountkernfs -> ../init.d/mountkernfs
│ ├── S02consolelog -> ../init.d/consolelog
│ ├── S05moles -> ../init.d/moles
...
├── udev
│ ├── rules.d
│ │ └── 55-lfs.rules
│ └── udev.conf
└── vimrc

network腳本
#!/bin/sh

. /etc/sysconfig/rc
. ${rc_functions}
. /etc/sysconfig/network

case "${1}" in
start)
# Start all network interfaces
for file in ${network_devices}/ifconfig.*
do
interface=${file##*/ifconfig.}

# skip if $file is * (because nothing was found)
if [ "${interface}" = "*" ]
then
continue
fi

IN_BOOT=1 ${network_devices}/ifup ${interface}
done
;;

stop)
# Reverse list
FILES=""
for file in ${network_devices}/ifconfig.*
do
FILES="${file} ${FILES}"
done

# Stop all network interfaces
for file in ${FILES}
do
interface=${file##*/ifconfig.}

# skip if $file is * (because nothing was found)
if [ "${interface}" = "*" ]
then
continue
fi

IN_BOOT=1 ${network_devices}/ifdown ${interface}
done
;;

restart)
${0} stop
sleep 1
${0} start
;;

*)
echo "Usage: ${0} {start|stop|restart}"
exit 1
;;
esac

# End /etc/rc.d/init.d/network



⑻ Linux內核初始化 sp設置

Linux內核初始化sp設置方法是sp只要指向遠大於512偏移處都可以。linux在初始的時候會調用fork系統調用來創建第一個進程,他被成為零號進程,創建後會一直存在並且零號進程是所有進程的父進程。

Linux內核初始化的設置方法

首先看任務的結構體,前面是進程的狀態時間片,優先順序信號打開文件等等,重要的是最後TSS結構體,TSS段存放的是進程的一些寄存器的狀態標識,當CPU運行某個進程時,需要將這個進程的TSS段放入CPU中。

TSS實際就是CPU在運行時產生的一些結果會放到這些寄存器中,當再次調用這個進程時再把TSS段放進CPU中,需要將linux的信息從硬碟中移到內存里,之後進行內存向量等的初始化,在內核初始化的過程中,會手動創建0號進程。

⑼ linux系統如何恢復初始設置

方法如下:

1、用戶選擇「恢復出廠設置」。

3、給內核發restart 命令,系統重啟,bootloader並進入recover模式(/sbin/recovery)。

4、get_args() 將 "boot-recovery"和"--wipe_data"寫入BCB。

5、erase_root() 格式化(擦除)DATA分區。

6、erase_root() 格式化(擦除)CACHE分區。

7、finish_recovery() 擦除BCB。

8、重啟系統。

⑽ linux 系統初始化要初始化哪些

如果你用grub來引導linux和windows,當windows出毛病重新安裝後,會破壞MBR中的grub,這時需要恢復grub。

1.把linux安裝光碟的第一張放到光碟機,然後重新啟動機器,在BOIS中把系統用光碟機來引導。

2.等安裝界面出來後,按F4鍵,也就是linux rescue模式。

3.一系列鍵盤以及幾項簡單的配製,過後就「繼續」了這個過程,這里不說了,比較簡單。

4.然後會出現這樣的提示符:

sh#

5.我們就可以操作GRUB了。輸入grub:

sh#grub
會出現這樣的提示符:

熱點內容
android圖片xml 發布:2024-10-09 11:11:08 瀏覽:531
交換機基本配置與遠程登錄怎麼做 發布:2024-10-09 11:02:06 瀏覽:674
伺服器遠程地址怎麼看 發布:2024-10-09 10:43:24 瀏覽:140
隱身訪問訪客會增加嗎 發布:2024-10-09 10:38:29 瀏覽:209
vb代碼如何編譯 發布:2024-10-09 10:22:59 瀏覽:914
sql無效的連接 發布:2024-10-09 10:19:31 瀏覽:70
javaif條件 發布:2024-10-09 10:01:04 瀏覽:958
安卓愛思助手怎麼改戰區 發布:2024-10-09 09:25:29 瀏覽:181
安卓手機用什麼軟體傳軟體到蘋果 發布:2024-10-09 09:11:02 瀏覽:369
蘋果安卓怎麼傳抖音 發布:2024-10-09 09:10:18 瀏覽:823