开机流程+文件系统

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
 

  • 26
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值