开机流程+文件系统

news/2024/9/19 18:43:34/ 标签: linux, 文件系统, lvm, inode, block, 开机启动流程

linux开机启动流程
1.开启电源

2.BIOS/UEFI 阶段:

计算机开机时,首先执行基本输入/输出系统 (BIOS) 或统一可扩展固件接口 (UEFI) 中的启动程序。
BIOS/UEFI 会进行自检 (POST),初始化硬件设备,并检测可用的启动设备。


3.Boot Loader 阶段:


主引导记录(Master Boot Record,MBR)
BIOS/UEFI 会查找并加载引导加载程序 (Boot Loader),如 GRUB (GRand Unified Bootloader)。
Boot Loader 负责加载操作系统的内核 (kernel) 和初始 RAM 文件系统 (initramfs) 到内存中。


4.内核启动阶段:

内核被加载后,会解压缩并初始化。它负责管理系统的硬件资源,并启动第一个用户空间进程 init。
内核启动时会执行一系列初始化任务,如加载设备驱动程序、挂载根文件系统等。
init 进程启动阶段:

5.init 进程是用户空间的第一个进程,它负责初始化系统的各个方面,并启动其他系统服务。


在传统的 SysVinit 系统中,init 进程可能会根据运行级别 (runlevel) 启动不同的服务和脚本。
在现代系统中,init 进程通常由 systemd 或 Upstart 等初始化系统来管理。
用户空间初始化阶段:

一旦 init 进程启动,它会启动系统中的各种服务和进程,包括网络服务、日志记录、用户登录管理等。

加载/etc/fstab 等基础配置文件

6.验证密码执行,执行开机启动程序

1./etc/profile:首先,系统会加载/etc/profile文件。该文件是系统范围的全局环境变量文件,用于设置系统范围的环境变量和配置。
2.~/.bash_profile:如果存在用户的~/.bash_profile文件,系统会加载该文件。这是用户特定的环境变量和配置文件,用于在用户登录时设置个人的环境变量和执行个人的配置。
3.~/.bashrc:如果~/.bash_profile文件不存在,系统会尝试加载~/.bashrc文件。~/.bashrc是在每次打开新的终端窗口时执行的脚本,用于设置用户特定的环境变量和配置。
4./etc/bashrc:最后,系统会加载/etc/bashrc文件。这是系统范围的全局环境变量文件,用于设置系统范围的环境变量和配置。

顺序就上1-4

开机启动
    主板检查基本的硬件有没有问题
ram  可读可写
rom  只读芯片--》厂家生产就规划好了的
BIOS的基本输入输出系统--》开机启动
cmos 存放各种硬件的配置信息,时间,启动顺序-》传参给BIOS

1.
/etc/profile
2.
~/.bash_profile
3.
~/.bashrc
4.
/etc/bashrc

BOOT 引到,系统
有第一引导顺序
从上而下  

磁盘的MBR   主引导程序 --》 512字节


 
机械盘 --》 hhd

固态盘--> ssd


dd 命令 可以查看磁盘挂载

牛批的磁盘公司
三星 西部数据 捷希 海康威视等

磁盘和分区的概念

磁道 扇区,柱面

一个硬盘有多个磁道
一个磁道划分63个扇区
一个扇区占512个字节
编号是从最里面开始编号的
分区类型
    主分区4个--》最多四个
    拓展分区  --》可以有可以没有--》概念上的 占一个主分区的位置
    逻辑分区  编号必须从5开始
LVM(Logical Volume Manager)是一种用于在 Linux 操作系统上管理硬盘驱动器和逻辑卷的工具。通过 LVM,你可以动态地调整文件系统的大小,而不需要重新分区或重新格式化硬盘。

LVM 的核心概念包括:


Physical Volumes(物理卷,PV):这是硬盘驱动器或分区,用于创建逻辑卷组。
Volume Groups(逻辑卷组,VG):由一个或多个物理卷组成的逻辑卷组。逻辑卷组是用来创建逻辑卷的基础。
Logical Volumes(逻辑卷,LV):逻辑卷是从逻辑卷组中划分出来的虚拟分区,它们可以被挂载和用于存储数据。

dev -->device 设备
c开头的文件 是字符 character -》与字符的显示,接受相关字符的输入输出 
b开头的文件 是block 块文件--》 存储数据相关文件

fdisk 用于管理磁盘的命令


        fdisk -l  列出当前的磁盘分区
        fdisk命令建立分区
        用途:在交互式的操作环境中管理磁盘分区
        格式:fdisk  [磁盘设备]
        交互模式中的常用指令
        m:查看操作指令的帮助信息
        p:列表查看分区信息  print
        n:新建分区  new
        d:删除分区  delete
        w:保存分区设置并退出  write
        q:放弃分区设置并退出  quit
-->这个支持2T以下的文件

parted  --》支持大数据磁盘分区
        --》超过2T的文件也支持

格式化 mkfs.格式 选项 设备名
mkfs.ext4
mkfs.xfs

磁盘挂载


mount 
挂载设备 /dev/sda1 到目录 /mnt:
mount /dev/sda1 /mnt
mount -t nfs server:/path /mnt
 /mnt 是本地计算机上的目录,server:/path 是远程服务器上 NFS 文件系统的路径。

umount /mnt 取消挂载

dd 备份命令--》直接从物理磁盘--》跳过文件系统
dd [选项]
常见选项:
if=input_file:指定输入文件。
of=output_file:指定输出文件。
bs=block_size:指定每次读取和写入的字节数。
count=n:指定要复制的块数或数据块的数量。

seek=n:在输出时跳过前面的 n 个块。
skip=n:在输入时跳过前面的 n 个块。
status=progress:显示操作进度。
复制整个磁盘:
dd if=/dev/sda of=/dev/sdb bs=4M status=progress
将文件内容转换为大写:
dd if=input_file of=output_file conv=ucase
创建指定大小的空文件:
dd if=/dev/zero of=file_name bs=1M count=100
删除设备的前几个字节
dd if=/dev/sda of=/dev/sda bs=512 count=1 skip=10

lsof的使用

lsof -i:80
     -p 进程被占用
     /file 文件被张勇

/etc/fstab 


用于定义文件系统的挂载点和挂载选项。它的全称是 "file systems table"(文件系统表)

文件系统的类型:


    windows NTFS fat32
    linux   swap xfs ext4
    vfs 虚拟文件系统

MBR 
    主引导记录
    组成: 主引导程序 ,DPT 结束标记

swapon -a 开启分区
swapoff -a 关闭分区
查看 /etc/fstab


文件的组成:


目录项: 一个文件或者一个文件夹占一个目录项--》一个目录条目 dentry
        文件名+inode(可以理解一个指向数据的指针)
inode: 存放数据的属性--》元数据:描述数据的数据
    ll -i
    index node 索引节点
inode-index:组成
    inode-no filename
block: 存放真正的数据--》数据
##备份(dump)分区--》查看分区的元数据
[root@dhcp-clinet ~]# dump
dumpe2fs  dumpkeys 
[root@dhcp-clinet ~]# dumpe2fs /dev/sda1

superblock(超级块):记录此 file system 的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式
    inode bitmap 记录那些inode使用了,那些没有使用
    block bitmap 记录那些block使用了,那些没有使用


   删的是目录项

查看block的id 
    xfs_info  + 分区名
    blkid 
[root@dhcp-clinet ~]# blkid 
/dev/sda1: UUID="6bc30cf4-c026-4c79-9100-623bf2f971ab" TYPE="xfs" 
/dev/sda2: UUID="bYvYKG-4U55-xfIv-IuKH-nchH-ZeEd-YLkj2v" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="d9045d70-68b3-46a4-9731-0bb764d52afc" TYPE="xfs" 

文件=目录项+inode+block
目录项: 文件名+ inode-no


查看inode 的命令:


    ll -i  文件名
    stat 文件名

软链接和硬链接的区别?


ln命令新建软和硬链接
    软链接:删除原文件,链接文件不可使用  ln -s 软连接
    硬链接:删除原文件,链接文件可以继续使用

常见的文件系统: 


    xfs nfs ext4 swap tmpfs  nfts(微软自己的文件系统,fat32-->已经淘汰了的文件系统) vfs(虚拟文件系统)

删除文件背后的操作:
    释放inode--》标记
    标记block--》标记
    更新父目录
    删除了目录项--》清除原来的数据(元数据)

破坏文件系统
dd if=/dev/zero of=/dev/sdb6     bc=1024         count=1
    输入的分区    输出的分区   输入块的大小(字节)  数量

修复文件系统


    命令: fsck /dev/sdb6  -y    file system check
修复这个分区--》一般是ext4系统
xfs_repair 修复xfs文件系统
    要针对不同的文件系统需要不同的修复工具    
挂载命令格式:
mount  类型 选项 设备名 挂载点
 可以查看挂载的分区和权限
选项类型: ro,rw
          exec
          suid_nosuid 
          remount
umount 取消挂载

磁盘分区挂载的命令:


    df -Th 查看查看挂载点
    lsblk 挂载点+挂载分区名
    blkid  挂载分区+uuid号+类型

分区表


    GPT :128分区-->没有4个分区的限制
    msdos --》MBR--》默认是4个主要分区


I/O调度算法


    deadline --》有截止时间
    noop  --》 只处理简单的排序,本质是一个FIFQ的队列,相同的相近的IO请求,先来先处理
    CFQ   --》公平调度算法--》分配时间片
可以查找多队列的调度算法
     mq-deadline
     bfq
     none

RAID 磁盘阵列


    作用:1.提升速度
          2.冗余、容错
raid --》硬raid    ,软raid      
    类型:
            riad 0 raid1 raid5  raid6
最少磁盘数     >=2     2       >=3   >=4
磁盘利用率    100%      50%          n-1  n-2   
IO读写速度     快     慢         较快  较快
容错           无      有     有    较强
raid技术在真实的服务器里是一定会使用的。
磁盘阵列: 很多块磁盘放到一起组成一个磁盘组,这个磁盘组就叫磁盘阵列
            不同的组合方式背后的技术,就有不同的功能。
raid卡:硬件,安装到服务器上

常见的raid的类型:


        raid0 --》条带卷 (Striping)--》读写速度快 --》至少2块以上磁盘组成 -->没有容错功能--》100%--》同时写数据
        raid1--》镜像卷(mirror)--》2块磁盘组成--》有容错功能--》50% ---》系统盘、存放数据
        raid5-->3块以上磁盘--》有容错功能(只能坏1块)--》速度比较快--》(n-1)/n  ---》使用非常多
        raid6--》4块以上磁盘--》有容错功能(最多坏2块)--》速度比较快--》(n-2)/n  ---》使用非常多
        raid10 --》4块以上磁盘--》有容错功能(最多坏2块)--》速度比较快--》50% 

云服务器会使用raid

云服务器是虚拟机,是在真实的机器里使用虚拟化软件模拟出来的。

LVM-->逻辑卷管理


    优势:动态扩容--》空间利用率高
         支持在线扩容
         数据备份方便

LVM 三个基本概念:


    PV: 物理卷--》基本物理卷
        PE 基本单元
    VG: 卷组--》组合物理卷
    LV:逻辑卷--》组合一个大的分区
LVM的推荐步骤:
PV -》VG-》 LV-》 格式化,挂载文件系统

pv的命令:
[root@dhcp-clinet ~]# pv
pvchange   pvck       pvcreate   pvdisplay  pvmove     pvremove   pvresize   pvs        pvscan     
pvcreate name

-->注意可以去man 手册查看
[root@dhcp-clinet ~]# vg
vgcfgbackup    vgchange       vgconvert      vgdisplay      vgextend       vgimportclone  vgmknodes      vgremove       vgs            vgsplit        
vgcfgrestore   vgck           vgcreate       vgexport       vgimport       vgmerge        vgreduce       vgrename       vgscan   

[root@dhcp-clinet ~]# lv
lvchange     lvcreate     lvextend     lvmconf      lvmdiskscan  lvmetad      lvmsadc      lvreduce     lvrename     lvs          
lvconvert    lvdisplay    lvm          lvmconfig    lvmdump      lvmpolld     lvmsar       lvremove     lvresize     lvscan  

扩容:lvextend +L 2G /dev/sda1

关闭LVM的顺序:


1.umount
2.lvremove
3.gvremove
4.pvremove
5.清除/etc/fstab/ 里面的记录
6.fdisk修改分区id

TFTP是一种简单而轻量的文件传输协议,适用于简单的文件传输需求,而FTP则更为强大和灵活,支持更复杂的文件操作。MTFTP则是TFTP的一种改进版本,通过使用组播技术提高了传输效率。

概念:就是利用网络带宽,进行同时大量装机--》 Kickstart:无人检查的确认装机--》他会记录装机典型的需要⼈⼯⼲预填写的
各种参数,并⽣成⼀个名为ks.cfg的⽂件
PXE客户端远程装机的流程:
 1. PXE Client 从⾃⼰的PXE⽹卡启动,向本⽹络中的DHCP服务器索取IP;通过dhcp的四次握手
 2. DHCP 服务器会分配给客⼾机的IP,同时告知PXE⽂件的放置位置(该⽂件⼀般是放在⼀台TFTP服务器
 3. PXE Client 向本⽹络中的TFTP服务器索取pxelinux.0 ⽂件,取得⽂件后之执⾏该⽂件--》相当于一个开机引导程序
 4. 根据pxelinux.0 的执⾏结果,通过TFTP服务器加载内核和⽂件系统 ;
 5. 进⼊安装画⾯,客户端在向FTP服务器(vsftp服务)响应请求,共享系统安装⽂件传输给PXE客⼾机。
 6. PXE客⼾机进⼊到安装提⽰界⾯,⽤⼾需要⼿动来完成系统安装的操作。--》这里可以是用kickstart来进行记录手动安装默写配置的程序

 有三种安装操作系统的安装方式


 HTTP、
 FTP
 NFS⽅式

需要安装的软件
yum install dhcp -y
vim /etc/dhcp/dhcpd.cof

#安装主引导程序的变种
输⼊:yum install syslinux -y
#查找pxelinux.0
rpm -ql syslinux |grep pxelinux.0
syslinux ->  pxelinux.0


#tftp的服务配置


输⼊:yum install tftp-server -y
复制⼀份“pxelinux.0”⽂件到“/var/lib/tftpboot/”⽬录下,并查看是否复制成功
vim /etc/xinetd.d/tftp

#ftp服务的配置文件
yum install vsftpd -y
 


http://www.ppmy.cn/news/1439979.html

相关文章

39岁TVB靓仔小生自曝恋情,曾沦为洗车工如今半年赚足7位数

39岁高钧贤自从2005年参加香港先生选举夺冠后,之后加入TVB拍摄过多套电视剧集,最近更有份参与《逆天奇案2》,日前他回到TVB电视城一厂与冯盈盈宣传剧集,更随即拍摄短片纪录放在网上分享,意外曝光TVB餐厅餐单&#xff0…

Qt | 键盘事件

Qt | 鼠标事件第四节十、键盘事件 1、Qt 使用 QKeyEvent 类来描述与键盘有关的信息,比如按下或释放键的代码,使用枚举类型 QEvent::Type 描述与键盘有关的事件,比如 QEvent::KeyPress 表示键盘按下事件, QEvent::KeyRelease表示键盘释放事件等。 2、是否接收键盘事件,最…

【STM32+HAL+Proteus】系列学习教程4---GPIO输入模式(独立按键)

实现目标 1、掌握GPIO 输入模式控制 2、学会STM32CubeMX配置GPIO的输入模式 3、具体目标:1、按键K1按下,LED1点亮;2、按键K2按下,LED1熄灭;2、按键K3按下,LED2状态取反; 一、STM32 GPIO 输入…

一则 TCP 缓存超负荷导致的 MySQL 连接中断的案例分析

除了 MySQL 本身之外,如何分析定位其他因素的可能性? 作者:龚唐杰,爱可生 DBA 团队成员,主要负责 MySQL 技术支持,擅长 MySQL、PG、国产数据库。 爱可生开源社区出品,原创内容未经授权不得随意使…

centOS7.9| 无root安装 openssl 1.1.1

这里写自定义目录标题 0.先安装 gcc121.下载和编译 openssl 1.1.12. 让 pkg-config 能找到.pc文件 0.先安装 gcc12 见之前的博客: 无root编译安装 gcc12 1.下载和编译 openssl 1.1.1 https://www.openssl.org/source/https://github.com/openssl/openssl/releases?page3 (2…

SIMRAD AP48 自动舵控制器维修用于 Continuum 自动驾驶仪系统Simrad显示器仪器深圳捷达工控维修

AP48 自动驾驶仪控制器是一款用于 Continuum 自动驾驶仪系统的高级专用控制头,采用现代玻璃舵造型进行了增强。 AP48 专为各种条件下的响应能力和易用性而设计,将大型铝制旋转控制旋钮与专用的“闪避键”配对,以 1 度或 10 度的增量调整左舷…

串口服务器可以直接连接工业路由器吗

串口服务器可以直接连接工业路由器吗 在工业物联网的架构中,串口服务器和工业路由器都是不可或缺的重要组件。串口服务器的主要功能是将串口通信转换为网络通信,实现数据的远程传输和管理;而工业路由器则负责在工业环境中提供稳定、可靠的网…

(mac)Promethues监控之mysqld_exporter(MySQL监控)

搭建Mysqld_exporterPrometheusGrafana监控系统 普罗米修斯是后端数据监控平台,通过Mysqld_exporter收集mysql数据,Grafana将数据用图形的方式展示出来 前提:已安装grafana和promethues 1.下载安装Mysql (1)启动MySQL…

zabbix6.4告警配置(短信告警和邮件告警),脚本触发

目录 一、前提二、告警配置1.邮件告警脚本配置2.短信告警脚本配置3.zabbix添加报警媒介4.zabbix创建动作4.给用户添加报警媒介 一、前提 已经搭建好zabbix-server 在需要监控的mysql服务器上安装zabbix-agent2 上述安装步骤参考我的上篇文章:通过docker容器安装za…

羊大师分析,羊奶相伴五一畅享自然时光

羊大师分析,羊奶相伴五一畅享自然时光 羊奶相伴,五一畅享自然时光,这是一句富有诗意和生活气息的语句。羊奶,作为一种营养丰富、易于消化的饮品,不仅为人们提供了优质的蛋白质、矿物质和维生素,还因其独特…

面试经典150题——整数转罗马数字

面试经典150题 day18 题目来源我的题解方法一 模拟方法二 不使用额外空间的方法 题目来源 力扣每日一题;题序:12 我的题解 方法一 模拟 俗称 狗屎代码 哈哈哈哈 时间复杂度:O(K)。K13 空间复杂度:O(1) public String intToRoma…

【TCP:可靠数据传输,快速重传,流量控制,TCP流量控制】

文章目录 可靠数据传输TCP:可靠数据传输TCP发送方事件快速重传流量控制TCP流量控制 可靠数据传输 TCP:可靠数据传输 TCP在IP不可靠服务的基础上建立了rdt 管道化的报文段 GBN or SR 累计确认(像GBN)单个重传定时器(像…

商城数据库88张表结构(六)

DDL 21.用户反馈表 CREATE TABLE wang_feedbacks (feedbackid int(11) NOT NULL AUTO_INCREMENT COMMENT 自增ID,feedback Type int(4) NOT NULL DEFAULT 0 COMMENT 反馈类型,内容来自原系统基础数据表,usedid int(11) DEFAULT NULL COMMENT 反馈者ID,create Time…

C 语言实例 - 输出双精度(double)数

使用 printf() 与 %e 输出双精度数。 #include <stdio.h>int main() {double d; // 声明双精度变量d 12.001234; // 定义双精度变量printf("d 的值为 %le", d);return 0; }输出结果&#xff1a; d 的值为 1.200123e01

基于FastGPT搭建知识库问答系统

什么是 FastGPT &#xff1f; FastGPT 是一个基于 LLM 大语言模型的知识库问答系统&#xff0c;提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排&#xff0c;从而实现复杂的问答场景&#xff01; FastGPT 允许用户构建本地知识库&#xff0c;…

服务器数据恢复—ESXi无法识别数据存储和VMFS文件系统如何恢复数据?

服务器数据恢复环境&#xff1a; 一台某品牌服务器&#xff0c;通过FreeNAS来做iSCSI&#xff0c;然后使用两台同品牌服务器做ESXi虚拟化系统。 FreeNAS层为UFS2文件系统&#xff0c;使用整个存储建一个稀疏模式的文件&#xff0c;挂载到ESXi虚拟化系统。ESXi虚拟化系统中有3台…

Python教程:深入了解 Python 中 Dict、List、Tuple、Set 的高级用法

一.使用方法介绍 Python 中的 Dict&#xff08;字典&#xff09;、List&#xff08;列表&#xff09;、Tuple&#xff08;元组&#xff09;和 Set&#xff08;集合&#xff09;是常用的数据结构&#xff0c;它们各自有着不同的特性和用途。在本文中&#xff0c;我们将深入了解这…

新开的拼多多店铺怎么运营

今天给大家分享一下如何在拼多多平台上开设并运营一家店铺。不管你是创业者还是小型商家&#xff0c;相信这个话题都会对你有所帮助。 拼多多新店需要做些推广提高店铺权重 新店用3an推客做推广比较好 3an推客是给商家提供的营销工具&#xff0c;3an推客CPS推广模式由商家自主…

mac上安装Tomcat

1. 简介 Tomcat 是一个开源的 Java 服务器&#xff0c;它实现了 Java Servlet、JavaServer Pages&#xff08;JSP&#xff09;和Java WebSocket 技术。Tomcat 是 Apache 软件基金会的一个项目&#xff0c;是一个轻量级、高性能的 Web 容器。作为一个 Web 服务器&#xff0c;To…

CoReFace:深度人脸识别的样本引导对比正则化

CoReFace: Sample-Guided Contrastive Regularization for Deep Face Recognition 一、摘要 人脸识别对比正则化&#xff08;CoReFace&#xff09;&#xff08;损失函数&#xff09;&#xff0c;将图像级正则化应用于特征表示学习。 具体来说&#xff0c;采用样本引导对比学习…