文件系统
文件系统包括:ext2 ext3 (比ext2多一个日志)ext4
iso9660(光盘文件系统)
vfat (相当于windows中的fat32)
swap(虚拟内存)
与网络文件系统有关的:nfs smaba
jfs (日志文件系统) gfs(群及文件系统)
1.分区 ,格式化 ,挂载
MBR 主引导记录 512B(BOOTLOADER 446B PARTION 64B MAGIC 2B )
fdisk -l 查看磁盘现有分区
磁盘 id 83 表示是ext2/ext3
82表示是swap
一个磁盘: 最多4个主分区 1个扩展分区
/proc/内存和内核存储目录
ps -aux |less 查看所有进程
cat /proc/partitions 查看磁盘信息
init 6 重启
partproble 磁盘文件 (partprobe /dev/sda) [对分区进行识别]
(cat /proc/partitions)
2:创建文件系统的流程
分区――》格式化――》挂载
分区(重点了解)
fdisk 指令
-l:列出指定硬盘的分区表
注意:对硬盘分区时,设备名称后不加数字
只有root有权执行,最好在单人模式下操作
正在使用的硬盘若无法顺利加载分区表,则需要先卸载正在使用的分区,然后重新进入fdisk界面重写分区表
用fdisk新建分区
fdisk /dev/sdb:进入fdisk分区工具的操作界面
按 n:新建分区,此时会询问用户创建何种类型的分区
p、e、l:指定建立主分区、扩展分区或逻辑分区
t:改变ID
1-4:选择了分区类型后要求指定分区号,选择未用的号码,接着分别输入新建分区的初始磁柱号和终止磁柱号
fdisk /dev/sdb:进入fdisk分区工具的操作界面,此时输入m可以查看指令列表
p:显示当前分区表
d:输入该指令后会要求指定要删除的分区号
q:不保存刚才的操作指令,退出
w:将输入的操作指令执行,修改分区表并退出
做完之后执行――》portproble 让内核重新识别分区表
也可以:init 6 重启一下
sfdisk(可以备份分区表)
sfdisk -d 分区 >(重定向导入到) 一个文件
sfdisk 分区 <(导出) 文件
格式化
ext2 mkfs -t mke2fs mkfs.ext2
ext3 mkfs -t mke2fs mkfs.ext3
swap mkswap swapon
挂载
临时挂载: mount -t 文件系统类型 -o 选项,选项 分区文件 挂载点
查看挂载:mount 或者 df -h(易读) -T(类型)
永久性挂载:需要编辑填写 /etc/fstab
磁盘配额
1.vim /etc/fstab 建立自动挂载 defaults后面加usrquota,grpqouta
2.重启 init 6 或者 mount -a
3.quotacheck -a (扫描所有分区) -u (磁盘用户占用空间) -g (组占用空间) -v ( 详细信息) -c (忽略旧文件)
quotacheck -augvc
4.edquota(直接编辑) -u 用户帐号
-g 组帐号
-p 帐号1 帐号2 将帐号1的限制复制给帐号2
5.quotaon(激活) 分区文件 激活edquota -u user1
quotaon /dev/sda6
6.vim /etc/rc.d/rc.local 编辑开机启动项
$ dd if=/dev/zero of=f2.user1 bs=1M count=10 (创建文件)
脚本实现磁盘配额
1.显示分区 (编号 分区文件 大小)
2.提示输入做配额的分区
3.判断 在/etc/fstab,该分区是否挂载 若存在 sed 正行替换
sed `s&/dev/sda6.*&/dev/sda6 /mnt/6 auto defaults,usrquota 0 0&` /etc/
fstab
不存在 echo 。。。。。>> /etc/fstab
4.mount -a
5.quotacheck -a -u -g -v -c
6.edquota -u 用户帐号
-g 组帐号
-p 帐号1 帐号2
7.quotaon 分区文件
8.vim /etc/rc.d/rc.local
ln -s 软连接不占空间,可跨分区,查询方便
ln 硬链接占空间,不可跨分区
调整参数
tune2fs
-j 创建日志
-J 调整日志选项
size=journal-size 设置日志大小
device=external-journal 指明系统日志在哪个分区
tune2fs -J siza=8 /dev/sda8 将磁盘日志更改为8M
-c 调整挂在的次数
tune2fs -c 0 /dev/sda8 设置最大挂载次数为0
-i 调整时间间隔
tune2fs �Ci 30 /dev/sda8 每隔30天扫瞄一次
-m 调整保留快百分比
tune2fs -m 10 /dev/sda8 调整保留块大小为10%
-l 查看
tune2fs �Cl /dev/sda8 查看信息
-L volume-label 查看卷标
dumpe2fs 查看详细信息
dumpe2fs /dev/sda8 查看磁盘是否格式化
mkfs -t ext2 /dev/sda5 将磁盘sda5格式化为ext2文件
fuser -km /mnt/7 结束/mnt/7上的所有用户
fuser -v /mnt/7 查看/mnt/7上的用户信息
挂载
1.临时挂载
mount -t 文件系统类型 -o 选项1,选项n 分区文件 挂在点
选项 ro(可读),rw(可读可写)
mount -o remount,ro /dev/sda5 重新挂载/dev/sda5并设置权限不可写入
mount -o remount,rw /dev/sda5
可写入(exec),noexec
mount -o remount,rw,noexec /dev/sda5
可执行(suid),nosuid
mount -o remount,rw,nosuid /dev/sda5
nosuid只能以自己的身份执行
(dev)可在该分区创建设备文件 nodev 可以创建设备文件但不能使用
ll /dev/sd* 查看设备
defaults=(包含 rw,exec,suid,dev)
mknode 做节点(创建设备文件)
mknod /mnt/5/qq b 22 0 在/mnt/5下创建一个qq块设备
uname �Cr 查看内核版本
内核版本2.4 每种设备一个文件
内核版本2.4 之后 udev (hotplug 拔插应用即插上就可以用) /sys――》/dev
mount -t ext2 /dev/sda5 /mnt/5 将/dev/sda5重新挂载为ext2格式
2.永久挂载(自动)
/etc/fstab 永久挂在位于的目录
分区标识/卷标 挂载点 文件系统类型 参数 dump的频率 fsck的顺序
对分区进行标识
1.标识 (文件 /dev/sda7)
2.卷标
e2label /dev/sda2 查看/dev/sda2的卷标
e2label /dev/sda5 data 将/dev/sda5/卷标设为data
mount LABEL=data /mnt/5 将/dev/sda5挂在到/mnt/5下
blkid 查看所有的信息
blkid /dev/sda5 查看/dev/sda5的uuid
blkid 分区 查看卷标或uuid
findfs LABEL=<label>|UUID=<uuid>
findfs LABEL=/ 根据卷标查看它代表哪个分区
3.uuid
dxdiag 查看计算机系统信息(在windows系统下使用)
free �Cm 以M查看内存
top 查看虚拟内存
交换分区(虚拟文件系统)
a.使用分区(创建分区)
id 82 虚拟文件系统id为82
例如:
fdisk /sev/sda 创建分区
按 t 为磁盘重新设置id
82 设置id为82
按 w 保存退出
partprobe /dev/sda 对/dev/sda重新识别
cat /proc/partitions 查看内核参数
格式化指令 mkswap ---》swpon (临时)
mkswap /dev/sda5 格式化分区
swapon /dev/sda5 增加到现有虚拟内存中
swapoff /dev/sda5 从虚拟内存中移除
swapon �Cs 查看虚拟内存分布在那个分区上
永久(/etc/fstab)
需要编写vim /etc/fstab
编写完需要重启或者执行:mount �Ca 表示重新识别fstab文件
b.使用文件
dd if=/dev/zero of=文件 bs=尺寸 count=数量
例如: dd if=/dev/zero of=/swapfile bs=1M count=500
新建一个文件大小为500M输入到/dev/zero输出到/swapfile
mkswap /swapfile 进行格式化
swapon /swapfile 临时增加内存
free -m
要想永久性的增加需要编写vim /etc/fstab
几个特殊文件
目录
bin 存放可执行文件,所有用户都可执行
sbin 放二进制程序指令,只有管理员能执行
boot 挂在点.存放内核文件
home 用户的家目录
media 可插拔的设备挂载点,自动挂在目录
misc 杂项目录,存放混乱文件
opt 额外文件存放目录
proc 内存和内核镜像
ll /lib/modules/2.6.18-164.el5/ 查看内核所支持的所有模块
du -sh /lib/modules/2.6.18-164.el5/ 查看内核所有文件大小
vim /etc/grub.conf 编辑内核文件
ll /lib/modules/2.6.18-164.el5/ 查看额外的驱动
rpm -ivh httpd-2.2.3-31.el5.i386.rpm 安装http服务
rpm -qc httpd 查看可配置文件
rpm -q --scripts httpd 查看安装过程执行的脚本
rpm -e httpd 卸载http服务
vim /etc/ld.so.conf 存放做系统调用应该查看那些文件
例如: 设置成其他人无法ping通自己
[root@localhost ~]# cd /proc/
[root@localhost proc]# cd net
[root@localhost proc]# cd ipv4
[root@localhost ipv4]# echo "1" > icmp_echo_ignore_all
数据存储的特性
1.效率 2.冗余
动态磁盘 (在windows中)
1.简单卷 特点: 能动态的延伸尺寸
2.跨区卷(2-32) 效率一般 无冗余
3.带区卷(也叫raid 0)2-32 成员使用空间相同 数据等分64k 同时写入多个成员
效率高 无冗余 容量只和
4.镜像卷(也叫raid 1) 2块磁盘 利用率50% 冗余 写的效率一般 读取 快
5.raid 5卷(3-32) 利用率 n-1/n 写入时慢 读取(正常时快)(不正常时慢)
在linux操作系统中 raid(0 1 5 6 10)
硬件raid raid 卡(一般是scsi接口) 在/dev/sd下
软件raid /dev/md0 1 2 驱动
在linux操作系统中实现的是软件raid:是通过MD多设备驱动来实现的
在用户中用mdadm命令来实现的:
语法格式:mdadm 【mode(模式)】 raiddevice(raid设备) 选项 成员
五种模式:Assembe(装配模式) Create(创建) Foolow or Monitor(监控)
Grow(增长) Manage(管理)
cat /proc/mdstat 查看多设备状态
mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb{1,2} 创建一个sdb1,sdb2
mdadm --detail /dev/md0 查看/dev/md0详细状态信息
mdadm --fail /dev/md0 /dev/sdb1 将损坏磁盘/dev/sdb1设置为失效
mdadm --add /dev/md0 /dev/sdb3 增加一个新的成员sdb3
mdadm --remove /dev/md0 /dev/sdb1 删除成员sdb1
mdadm -S /dev/md0 停止设备/dev/md0的运行
mdadm -A /dev/md0 /dev/sdb2 /dev/sdb3 重新激活sdb2,sdb3
mdadm --detail �C-scan 对设备信息扫描
mdadm --detail --scan >>/etc/mdadm.conf
将扫描信息输入到/etc/mdadm.conf
cat /etc/mdadm.conf 查看扫描信息
mdadm -A �Cs 跟据/etc/mdadm.conf 内的扫描信息进行激活
raid 实现的两种方法:
例如:实现raid 5
mdadm -Cv /dev/md1 -a yes -l 5 -n 3 -x 1 /dev/sdb{5,6,7,8}
自动创建sda5,sda6,sda7,sda8 3个有用一个空余设备文件
磁盘分区
fdisk /dev//sdb 磁盘分区
n 增加分区
(1-4) 数字
+size(数字) 增加多大的磁盘分区
p 查看
t 改变磁盘分区的ID
(1-4) 数字
fd 把ID数改为fd
p 查看
w 保存并退出
partprobe /dev/sdb 重新读取磁盘分区表
Mdadm -Cv /dev/md0 -l 1 -n 2 -x 1 /dev/sdb{1,2,3}
Cat /proc/mdstat 查看状态
Mdadm --detail /dev/md0 查看详细的磁盘分区状态
Mkfs -t ext3 dev/md0 格式化磁盘
Mkdir /mnt/1 创建挂载点
Mount dev/md0 /mnt/1 挂载
Df -h 查看大小
然后进入cd /mnt/1 复制一些东西尽量的多一些cp -a -r 目录 目录
也可以用 dd if=/dev/zero of=文件 bs=1M count=300
Mdadm --detail /dev/md0
Mdadm -f /dev/md0 /dev/sdb1 把sdb1失效
Cat /proc/mdstat 查看状态 (先前如果复制的多的话可以看到替换的进程)
删除(剔除)失效的磁盘设备
mdadm -S /dev/md0 停止/dev/md0设备
Fuser -km /mnt/md1 剔除正在挂载点运行的东西
Umount /dev/md0 先卸载设备
mdadm -S /dev/md0 再停止/dev/md0设备
Cat /proc/mdstat
Mdadm --detail /dev/md0
Mdadm -A /dev/md0 /dev/sdb2 /dev/sdb3 重新装备起来
如果你记不清或者成员较多时用
Mdadm --detail --scan 查看查看
Mdadm --detail --scan >>/etc/mdadm.conf
把查看的东西输入到/etc/mdadm.conf这个文件中
Cat /etc/mdadm.conf 打开扫描的结果
mdadm -S /dev/md0
Mdadm -A -s 把刚刚扫描的结果重新装备起来
其中Raid 5 需要三个激活成员和一个后备成员
partprobe /dev/sdb 重新读取识别磁盘分区表
Mdadm -Cv /dev/md0 -l 5 -n 3-x 1 /dev/sdb{5,6,7,8}
Mdadm -D /dev/md1 查看详细设备情况
lvm 逻辑卷管理器
作用: 1:动态改变分区大小 2:分区时非常的灵活
创建物理卷 pvcreate
卷组 vgcreare
逻辑卷 lvcreate
查看物理卷pvdisplay
卷组 vgdisplay
逻辑卷 lvdisplay
移除物理卷 pvremove
卷组 vgremove
逻辑卷 lvremove
改变卷的大小
先进行添加磁盘分区,再改ID(L可以查看id号,逻辑卷是8e),重新读取磁盘分区。
改变逻辑卷的大小
如下图:
先创建pvcreate(物理卷) /dev/sdb{数字}
Vgcreare testvg(卷组名新的) /dev/sdb/9 /dev/sdb/10
Vgdisplay 查看一下
Lvcreate -L 400M(大小) -n testlv testvg
Lvdisplay
Mkfs -t ext3 /dev/testvg/testlv 格式化
然后进入目录复制一些东西
增加逻辑卷的大小(例如:从400 M增加到450M)
Lvextend -L +50M /dev/testvg/testlv
Df -h 查看一下(只是物理卷增加了,逻辑卷没有增加,还要)
Resize2fs /dev/testvg/testlv
Df -h (就会有的)
减小逻辑卷的大小(例如:从450 M增加到350M)
1.卸载 umount /mnt/testlv
Df -h
2.强制文件系统扫描 e2fsck -f (fsck)
e2fsck -f /dev/testvg/testlv
3.resize2fs
Resize2fs /dev/testvg/testlv 350m
4.lvreduce
Lvreduce -L 350m /dev/testvg/testlv
移除
Lvremove /dev/testvg/testlv
Lvdisplay 查看
在卷组上再增加一个物理卷11
Vgextend(增加) testvg /dev/sdb11
Pvdisplay /dev/sdb11 查看
Lvcreate -L 850M -n testlv testvg
Lvdisplay 查看
Mkfs -t ext3 /dev/testvg/testlv
Mount /dev/testvg/testlv /mnt/testlv
Df -h
Cd /mnt/testlv/
Dd if=/dev/zero of=f1 bs=1M count=500
Ll -h
拆除刚刚进行的设备分区的所有
Cd
Umount /mnt/testlv/
Lvremove /dev/testvg/testlv
Lvdisplay
Vgremove testvg
Vgdisplay
Pvremove /dev/sdb{9,10,11}
Pvdisplay
备份
快照(在linux中是VM下的Snapshot)-->>相当于备份
当在逻辑卷中照快照(再备份)(不能超过10M)
例如:
Fdisk -l
Pvcreate /dev/sdb{9.10}
Vgcreate testvg /dev/sdb{9,10}
Lvcreate -L 300M -n testlv testvg
Lvdisplay
Vgdisplay
Mkfs -t ext3 /dev/testvg/testlv
Mount /dev/testvg/testlv /mnt/testlv
Df -h
Cd /mnt/testlv/
Cp /etc/passwd ./
Cp /etc/inittab ./
Ll
Cd
Lvcreate -L 10M -s -n snap-lv /dev/testvg/testlv
Mkdir /mnt/snap
Mount -o ro ,remount /dev/testvg/snap-lv /mnt/snap
Cd /mnt/snap
Ll /mnt/testlv/ /mnt/snap/
备份
Dump -0u /dev/testvg/snap-lv -f /tmp/dump.19
Ll /tmp/dump.19 查看备份文件
回复快照
Mkdir abc
Cd abc
Restore -r -f /tmp/dump.19
Ll