当前位置:首页 » 操作系统 » 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
会出现这样的提示符:

热点内容
安卓手机用什么软件传软件到苹果 发布:2024-10-09 09:11:02 浏览:367
苹果安卓怎么传抖音 发布:2024-10-09 09:10:18 浏览:822
连接电视路由器如何设置密码 发布:2024-10-09 09:10:16 浏览:781
c语言取模与取余 发布:2024-10-09 08:52:51 浏览:267
安卓怎么像苹果一样滑动返回 发布:2024-10-09 08:20:46 浏览:758
gp数据库行 发布:2024-10-09 08:10:37 浏览:417
会计公需课登录密码是什么 发布:2024-10-09 08:08:20 浏览:800
wps怎么怎么加密码忘了怎么办 发布:2024-10-09 07:54:30 浏览:992
埋堆堆怎样更改缓存路径 发布:2024-10-09 07:48:12 浏览:550
壹号本1s加存储 发布:2024-10-09 07:43:51 浏览:546