linux基础(磁盘存储、软件仓库)

磁盘存储与文件系统完全指南

一、磁盘扫描与管理

1. 添加磁盘后立即生效方法

# 扫描新添加的磁盘
echo '- - -' > /sys/class/scsi_host/host0/scan  # 根据实际情况调整host0/1/2

# Ubuntu多host处理
for i in {0..2}; do
  echo '- - -' > /sys/class/scsi_host/host$i/scan
done

2. 磁盘使用流程

  1. 设备分区 – 划分磁盘空间
  2. 创建文件系统 – 格式化分区
  3. 挂载新文件系统 – 使分区可用

3. 核心磁盘命令

命令 功能描述 常用选项
dd 读取、转换并输出数据 if=输入文件, of=输出文件, ibs=输入块大小, obs=输出块大小, count=块数, skip=跳过输入块, seek=跳过输出块
df 显示磁盘空间使用 -h人类可读格式, -T文件系统类型, -iinode使用, --total总计信息
du 显示文件/目录磁盘使用 -h人类可读格式, -s仅显示总计, -c最后显示总计, -d指定深度, --max-depth最大深度

二、磁盘分区管理

1. 分区方案对比

特性 MBR GPT
最大磁盘容量 2TB 8ZB
最大分区数 4主分区或3主+1扩展(N逻辑) 128主分区
分区标识 /dev/sda1-4(主), /dev/sda5+(逻辑) /dev/sda1-/dev/sda128
技术背景 512字节MBR(446引导+64分区表) 主+备份分区表
启动兼容性 BIOS UEFI

2. MBR分区表操作

备份与恢复:

# 备份MBR分区表
mkdir /data
dd if=/dev/sda of=/data/dpt.img bs=1 count=64 skip=446

# 光盘救援恢复步骤:
1. 开机按Esc或调整BIOS为CD-ROM启动
2. 选择"Rescue a Rocky Linux system"
3. 选择"Skip to shell"
4. 获取备份:scp root@10.0.0.157:~/dpt.img ./
5. 恢复:dd if=dpt.img of=/dev/sda bs=1 seek=446
6. 重启:reboot

fdisk交互命令:

fdisk /dev/sda
  • a 切换启动标志
  • d 删除分区
  • F 列出空闲空间
  • l 列出已知分区类型
  • n 添加新分区
  • p 打印分区表
  • t 更改分区类型
  • v 验证分区表
  • w 写入并退出
  • q 不保存退出
  • g 创建新GPT分区表
  • o 创建新DOS分区表

3. GPT分区管理

gdisk操作:

gdisk /dev/nvme0n1

交互命令与fdisk类似

4. 分区查看命令

fdisk -l      # 查看分区表(dos表示MBR)
lsblk         # 树状显示块设备
hexdump -C -n 512 /dev/sda -v  # 查看前512字节

三、文件系统管理

1. Linux文件系统类型

类型 特点 创建命令
ext2 早期Linux文件系统 mkfs.ext2
ext3 带日志的ext2 mkfs.ext3
ext4 乌班图推崇 mkfs.ext4
xfs rocky推崇 mkfs.xfs
swap 虚拟内存 mkswap
iso9660 光盘文件系统
btrfs 高级文件系统 mkfs.btrfs
reiserfs 高效小文件存储 mkfs.reiserfs

2. 文件系统操作

# 查看分区文件系统
lsblk -f

# 创建文件系统
mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdc1

3. 挂载管理

临时挂载:

mount /dev/sdb1 /mnt/data
umount /mnt/data   # 或 umount /dev/sdb1

持久挂载(/etc/fstab):

# 格式:<设备> <挂载点> <类型> <选项> <备份> <检查>

# 根分区示例
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults 0 1

# 数据分区示例
UUID=1234-5678 /home/data ext4 defaults,noatime 0 2

# 设备名挂载示例
/dev/sdb1 /mnt/backup xfs defaults 0 0

# 虚拟文件系统
proc /proc proc defaults 0 0

# 生效命令
mount -a
mount -o remount /mountpoint  # 重新挂载

查看挂载信息:

cat /etc/fstab
blkid        # 查看UUID

四、文件系统异常修复

1. 修复流程

1. 卸载文件系统:umount /dev/sdX
2. 执行修复工具:fsck/xfs_repair
3. 重新挂载验证:mount /dev/sdX /mountpoint

2. 修复工具

ext系列修复(e2fsck):

e2fsck /dev/sdb1
  • -y 自动回答yes
  • -f 强制修复
  • -p 自动安全修复

xfs修复(xfs_repair):

xfs_repair /dev/sdb1
  • -f 修复文件而非设备
  • -n 只检查不修复
  • -d 允许修复只读挂载设备

3. 修复案例

场景:文件系统损坏

# 准备环境
rm -rf /mount ; mkdir /mount/ext -p
mkfs.ext4 /dev/sdb1
mount /dev/sdb1 /mount/ext/
cp /etc/fstab /mount/ext/f{1,2}

# 人为破坏
dd if=/dev/zero of=/dev/sdb1 bs=1M count=1

# 修复过程
umount /dev/sdb1
e2fsck /dev/sdb1

# 验证修复
mount /dev/sdb1 /mount/ext/
ls /mount/ext/

fstab错误处理:

# 注释错误条目
sed -i '/mount\/xfs/s@^@#@' /etc/fstab

# 检查修改
grep 'mount/xfs' /etc/fstab

# 重新挂载
systemctl daemon-reload
mount -a
mount | grep /mount

# 重启验证
reboot

五、SWAP管理

# 禁用SWAP
1. sed -i '/swap/s/^/#/' /etc/fstab  # 注释配置
2. swapoff -a                        # 禁用所有swap

# 启用SWAP
1. sed -i '/swap/s/^#//' /etc/fstab  # 取消注释
2. swapon -a                         # 启用所有swap

六、RAID技术

1. RAID级别对比

类型 最少磁盘 容错能力 特点 利用率
RAID0 2 数据分块存储,提升性能 100%
RAID1 2 1盘 完全镜像 50%
RAID4 3 1盘 专用校验盘 (n-1)/n
RAID5 3 1盘 分布式校验 (n-1)/n
RAID6 4 2盘 双分布式校验 (n-2)/n
RAID10 4 1组 先镜像后分条 50%
RAID01 4 1组 先分条后镜像 50%

2. RAID创建示例

# 创建RAID5
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sd{b,c,d}1

七、LVM逻辑卷管理

1. LVM结构

  • PV(物理卷) – 物理磁盘/分区
  • VG(卷组) – PV的集合(相当于大硬盘)
  • LV(逻辑卷) – 从VG划分的逻辑分区
  • PE(物理块) – 默认4M
  • LE(逻辑块) – 默认4M

2. LVM操作命令

对象 命令 功能
PV pvcreate /dev/sdXn 创建物理卷
pvdisplay 显示物理卷信息
pvremove 移除物理卷
VG vgcreate vg00 /dev/sdXn 创建卷组
vgextend vg00 /dev/sdYn 扩展卷组
vgreduce vg00 /dev/sdXn 缩小卷组
LV lvcreate -L 10G -n lvdata vg00 创建逻辑卷
lvextend -L +5G /dev/vg00/lvdata 扩展逻辑卷
lvreduce -L 5G /dev/vg00/lvdata 缩小逻辑卷

3. LVM创建流程

# 1. 准备磁盘(分区ID改为8e)
# 2. 创建物理卷
pvcreate /dev/sdb

# 3. 创建卷组
vgcreate vg_data /dev/sdb

# 4. 创建逻辑卷
lvcreate -L 20G -n lv_www vg_data

# 5. 创建文件系统
mkfs.xfs /dev/vg_data/lv_www

# 6. 挂载使用
mkdir /www
mount /dev/vg_data/lv_www /www

4. LVM扩容与缩减

EXT4扩容:

lvextend -L +5G /dev/vg_data/lv_db
resize2fs /dev/vg_data/lv_db

EXT4缩减:

umount /db
fsck -f /dev/vg_data/lv_db
resize2fs /dev/vg_data/lv_db 15G
lvreduce -L 15G /dev/vg_data/lv_db
mount -a

XFS扩容:

lvextend -L +5G -r /dev/vg_data/lv_www  # -r自动调整文件系统

八、软件包管理

1. RPM/YUM (RedHat系)

RPM命令:

rpm -ivh package.rpm  # 安装
rpm -e package        # 卸载
rpm -qi package       # 查询信息
rpm -ql package       # 查询文件列表
rpm -qf /path/file    # 查询文件所属包

YUM仓库配置:

# /etc/yum.repos.d/rocky.repo
[baseos]
name=Rocky Linux $releasever BaseOS
baseurl=https://mirrors.aliyun.com/rockylinux/$releasever/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

YUM命令:

yum repolist          # 查看仓库列表
yum search keyword    # 搜索包
yum list available    # 查看可用包
yum install package   # 安装包
yum provides */cmd    # 查找命令所属包
yum --downloadonly --downloaddir=/path/ install package  # 只下载不安装
yum clean all         # 清除缓存
yum makecache         # 重建缓存

2. DPKG/APT (Debian系)

DPKG命令:

dpkg -i package.deb   # 安装
dpkg -r package       # 移除
dpkg -p package       # 完全移除(含配置)
dpkg -l               # 列出已安装包
dpkg -l | grep nginx  # 查找特定包

APT操作:

# 源配置:/etc/apt/sources.list
apt update              # 更新缓存
apt install package     # 安装
apt purge package       # 完全移除
apt autoremove          # 自动移除不需要的包
apt-cache madison nginx # 查看可用版本

# 彻底清理
apt purge ufw lxd lxd-client lxcfs liblxc-common
apt purge $(dpkg -l | grep '^rc' | awk '{print $2}')

九、网络诊断工具

tcpdump高级用法

基本选项:

  • -i 指定接口
  • -D 列出可用接口
  • -c 捕获包数量
  • -w 写入文件
  • -r 读取文件
  • -s 设置包长度

过滤选项:

  • host 指定主机
  • port 指定端口
  • net 指定网络
  • src/dst 源/目标地址
  • and/or/not 逻辑组合

输出选项:

  • -n 不解析地址
  • -v 详细输出
  • -X 十六进制+ASCII输出
  • -t 不显示时间戳

示例:

tcpdump -i eth0 host 192.168.1.100
tcpdump tcp port 22
tcpdump -c 5 -w capture.pcap
tcpdump -r capture.pcap

十、系统管理技巧

1. Ubuntu桌面安装

apt install ubuntu-desktop -y

2. 搭建YUM仓库

yum -y install httpd
systemctl enable --now httpd
# 将仓库文件放入/var/www/html

3. 更改Ubuntu源

1. vim /etc/apt/sources.list
2. 替换为阿里云镜像
3. apt update
4. apt-cache policy package

4. 包管理器对比

操作 RPM YUM DPKG APT
安装 rpm -ivh yum install dpkg -i apt install
移除 rpm -e yum remove dpkg -r apt remove
查询 rpm -qa yum list dpkg -l apt list
清缓存 yum clean all apt clean

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇