开机流程+文件系统

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.rhkb.cn/news/315138.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis-Plus笔记——基础环境搭建

Spring 基础环境 Spring 基础环境 指的是 Spring MyBatis 辅助类 1.引入依赖 <properties> <maven.compiler.source>22</maven.compiler.source> <maven.compiler.target>22</maven.compiler.target> <project.build.sourceEncoding>…

mysql-sql-练习题-1

文章目录 环境注释建表 5张建库学生表课程表教师表分数表总表 语法书写顺序in学过/没学过完全相同 环境 Windows cmd&#xff08;普通用户/管理员&#xff09; mysql -uroot -pmysql版本&#xff0c;模式&#xff08;可自定义&#xff09; select version(),global.sql_mode…

Vue基础:为什么要学Vue3,Vue3相较于Vue2有那些优势?

为什么要学Vue3&#xff1f; 1.框架层面 1.响应式底层API的变化 Proxy 数组下标的修改 对象动态添加属性 解释说明&#xff1a;1.vue2采用的是Object.definePrototype&#xff0c;它每次只能对单个对象中的单个数据进行劫持&#xff0c;所以在Vue2中data()中的数据一多就要进行…

开启智慧之旅,AI与机器学习驱动的微服务设计模式探索

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自热榜文章&#x1f525;&#xff1a;探索设计模式的魅力&#xff1a;开启智慧…

PotatoPie 4.0 实验教程(21) —— FPGA实现摄像头图像二值化(RGB2Gray2Bin)

PotatoPie 4.0开发板教程目录&#xff08;2024/04/21&#xff09; 为什么要进行图像的二值化&#xff1f; 当我们处理图像时&#xff0c;常常需要将其转换为二值图像。这是因为在很多应用中&#xff0c;我们只对图像中的某些特定部分感兴趣&#xff0c;而不需要考虑所有像素的…

ASP.NET企业投资价值分析系统

摘 要 本文将影响股票投资价值的宏观因素、行业因素、企业内部等诸多因素予以量化分析&#xff0c;对钢铁板块和汽车板块各上市公司进行综合评估&#xff0c;为广大股民的投资方向和资金安全提供了有力的支持。本文还阐述了企业投资价值分析的必要性&#xff0c;说明了企业投…

Elasticsearch进阶篇(三):ik分词器的使用与项目应用

ik分词器的使用 一、下载并安装1.1 已有作者编译后的包文件1.2 只有源代码的版本1.3 安装ik分词插件 二、ik分词器的模式2.1 ik_smart演示2.2 ik_max_word演示2.3 standard演示 三、ik分词器在项目中的使用四、ik配置文件4.1 配置文件的说明4.2 自定义词库 五、参考链接 一、下…

FPGA 以太网通信UDP通信环回

1 实验任务 上位机通过网口调试助手发送数据给 FPGA &#xff0c; FPGA 通过 PL 端以太网接口接收数据并将接收到的数据发送给上位机&#xff0c;完成以太网 UDP 数据的环回。 2 系统设计 系统时钟经过PLL时钟模块后&#xff0c;生成了两种不同频率和相位的时钟信号&#…

PotatoPie 4.0 实验教程(28) —— FPGA实现sobel算子对摄像头图像进行边缘提取

什么是sobel算子&#xff1f; Sobel 算子是一种常用的边缘检测算子&#xff0c;用于在图像中检测边缘。它基于对图像进行梯度运算&#xff0c;可以帮助识别图像中灰度值变化较大的区域&#xff0c;从而找到图像中的边缘。 Sobel 算子通过计算图像的水平和垂直方向的一阶导数来…

基础SQL DQL语句

基础查询 select * from 表名; 查询所有字段 create table emp(id int comment 编号,workno varchar(10) comment 工号,name varchar(10) comment 姓名,gender char(1) comment 性别,age tinyint unsigned comment 年龄,idcard char(18) comment 身份证号,worka…

本地生活服务平台哪家强,怎么申请成为服务商?

当下&#xff0c;本地生活服务已经成为了多家互联网大厂布局的重要板块&#xff0c;在巨大的市场需求和强大的资本加持下&#xff0c;不少人都看到了本地生活服务平台广阔的前景和收益空间。在此背景下&#xff0c;许多普通人都跃跃欲试&#xff0c;想要成为本地生活服务商&…

ptyhon画图显示中文

import matplotlib.pyplot as plt import matplotlib# 设置中文字体 matplotlib.rcParams[font.sans-serif] [SimHei] matplotlib.rcParams[font.family]sans-serifplt.plot([1, 2, 3, 4]) plt.xlabel(这是x轴) plt.ylabel(这是y轴) plt.title(这是标题) plt.show()用这个代码…

计算机网络知识点

层次模型 IQS七层模型 TCP/IP 原理体系结构 应用层 应用层 应用层 表示层 运输层 运输层 会话层 网际层 网络层 运输层 网络接口层 数…

Bentley二次开发教程27-交互窗口-案例实战1-可视化矩形梁生成工具

为了展现在MicroStation二次开发中使用WinForm界面控件与MicroStation内的数据交互&#xff0c;这里我们使用三个案例进行展示&#xff0c;分别为可视化矩形梁生成工具&#xff0c;EC属性赋值工具与文件选择复制工具。 可视化矩形梁生成工具 该工具会根据用户输入的数据实时…

GAN详解,公式推导解读,详细到每一步的理论推导

在看这一篇文章之前&#xff0c;希望熟悉掌握熵的知识&#xff0c;可看我写的跟熵相关的一篇博客https://blog.csdn.net/m0_59156726/article/details/138128622 1. GAN 原始论文&#xff1a;https://arxiv.org/pdf/1406.2661.pdf 放一张GAN的结构&#xff0c;如下&#xff1…

基于canal监听MySQL binlog实现数据增量同步

一、背景 业务反馈客服消息列表查询速度慢&#xff0c;有时候甚至要差不多20秒&#xff0c;急需优化提升速度。 二、方案 引入 首先&#xff0c;体验系统&#xff0c;发现查询慢的正是消息列表查询接口。 接着去看代码的设计&#xff0c;流程比较长&#xff0c;但从代码逻…

【新知实验室 - TRTC 实践】音视频互动 Demo、即时通信 IM 服务搭建

一、TRTC 初识 TRTC 是什么 TRTC&#xff08;Tencent RTC&#xff09;腾讯实时音视频&#xff0c;源自于 QQ 音视频团队&#xff0c;是基于 QQ 音视频多年来的音视频技术积累&#xff0c;位于腾讯云的 RTC 云服务。TRTC 支持腾讯会议、企业微信直播、微信视频号、腾讯云课堂、…

clickhouse安装部署

虚拟机&#xff1a;virtualbox7.0 操作系统&#xff1a;ubuntu server 22.04.3 虚拟机硬件&#xff1a;cpu 1&#xff0c;内存 2G&#xff0c; 硬盘 100G 采用默认安装 参照 https://clickhouse.com/docs/en/install#quick-install 安装部署 对于Debian、Ubuntu&#xff0c…

【漏洞复现】艺创科技智能营销路由器后台命令执行漏洞

漏洞描述&#xff1a; 成都艺创科技有限公司是一家专注于新型网络设备研发、生产、销售和服务的企业&#xff0c;在大数据和云时代&#xff0c;致力于为企业提供能够提升业绩的新型网络设备。 智能营销路由器存在后台命令执行漏洞&#xff0c;攻击者可利用漏洞获取路由器控制…

用NuGet安装 Oracle ODP.NET

oracle官网原文&#xff1a;Using NuGet to Install and Configure Oracle Data Provider for .NET Using NuGet to Install and Configure Oracle Data Provider for .NET In this section, you will install ODP.NET NuGet packages from nuget.org. Select View > Solut…