Linux磁盘及文件系统管理详解

2016年10月18日18:58:06 发表评论 3,131 ℃

ln命令

ln -s a(源文件) b(连接文件名) 创建软连接(快捷方式)

硬件连接:

1、只能对文件创建,不能应用于目录:

2、不能跨文件系统

3、创建硬连接会增加文件的被连接次数

软连接:

1、可应用于目录;

2、可以跨文件系统;

3、不会增加被连接文件的连接次数

4、其大小为指定的路径所包含的字符个数

du命令

-s

-h

df命令

-h 字节换算

-i Inodes 

-T 磁盘分区

设备文件:

b:按块为单位,随机访问的设备

硬盘

c:按字节为单位,线性设备

键盘

/dev

主设备号(major number)

标识设备类型

次设备号(minor number)

标识同一种类型中不同设备

mknod命令:创建设备文件

mknod [OPTION]... NAME TYPE [MAJOR MINOR]

-m MODE(权限)

mknod -m 644 mydev(设备类型)(主设备号) (次设备号)

硬盘设备的设备文件名:

IDE, ATA : hd

SATA : sd

SCSI: sd

USB : sd

a,b,c....来区别同一类型下的不同设备

IDE:

第一个IDE口:主(/dev/hda)、从(/dev/hdb)

第二个IDE口:主(/dev/hdc)、从(/dev/hdd)

sda ,sdb,sdc ,...

hda:

hda1:第一个主分区

hda2:

hda3:

hda4:

hda5:第一个逻辑分区

fdisk命令

fdisk -l 查看当前系统识别了几块硬盘

fdisk -l [/dev/to/some_device_file]

管理磁盘分区:

fdisk /dev/sda

p: 显示当前硬件分区,包括没保存的改动

n: 创建新分区

e:扩展分区

p:主分区

d: 删除一个分区

w: 保存退出

q: 不保存退出

t: 修改分区类型

L

l:显示所支持的所有类型

partprobe [/dev/sda]:重读分区表

partx

inode:index node

block size :1024 2048 4096

inode bitmap

block bitmap

super block 超级块

Linux磁盘及文件系统管理详解

Linux磁盘及文件系统管理详解

Linux磁盘及文件系统管理详解

文件系统管理

重新创建文件系统会损坏原有文件

mkfs命令:

make file system

cat /proc/filesystems :查看当前内核所支持文件系统

-t FSTYPE

mkfs -t ext2 =mkfs.ext2

mkfs -t ext3 =mkfs.ext3

专门管理ext系统文件:

mke2fs命令

-j:创建ext3类型文件系统

-b BLOCK_SIZE:指定块大小,默认为4096:可用取值为1024、2048、4096

-L LABEL:指定分区卷标

-m #: 指定预留给着急用户的块数百分比

-i #:用于指定为多少字节的空间创建一个inode,默认为8192;这里给出的数值应该为块大小的2^n倍

-N #:指定inode个数

-F: 强制创建文件系统

-E:用于指定额外文件系统属性

blkid命令:

查看磁盘设备的相关属性

UUID

FYPE

LABEL

e2label命令:

用户查看定义卷标

e2label 设备文件 卷标:设定卷标

tune2fs命令:

调整文件系统的相关属性

-j:不损害原有数据,将ext2升级为ext3

-L  LABEL:设定或修改卷标

-m #: 调整预留百分比

-r #:指定预留块数

-o : 设定默认挂载选项

acl

-c #:指定挂载次数达到#次之后进行自检,0或-1表示关闭此功能

-i #:每挂载使用多少天后进行自检:0或-1表示关闭此功能

-l: 显示超级块中的信息

dumpe2fs命令:

显示文件属性信息

-h:只显示超级块中的信息

fsck命令:

检查并修复Linux文件系统

-t FSTYPE:指定文件系统类型

-a:自动修复

e2fsck命令:

专用于修复ext2/ext3文件系统

-f:强制检查

-p:自动修复

mount命令:

显示当前系统已经挂载的设备及挂载点

挂载:将新的文件系统关联至当前根文件系统

mount [option] [-o options] DEVICE MOUNT_POINT

mount 设备 挂载点

-a:表示挂载/etc/fstab 文件中定义的所有文件系统

-n:默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;使用-n选项意味着挂载设备时,不把信息写入此文件

-t FSTYPE:指定正在挂载设备上的文件系统的类型;不使用此选项时,mount会调用blkid命令获取对应文件系统的类型

-r:只读挂载,挂载光盘时常用此选择

-w:读写挂载

-o:指定额外的挂载选择,也即指定文件系统启用的属性

remount :重新挂载当前文件系统

ro:挂载为只读

rw:读写挂载

mount - o remount,rw / 重新挂载根 为读写

设备:

设备文件

卷标:LABEL=""

UUID: UUID=""

挂载点:目录

要求:

1、此目录没有被其它进程使用

2、目录得事先存在

3、目录中的原有的文件将会暂时隐藏

挂载完成以后,要通过挂载点访问对应文件系统上的文件

mount命令,可以挂载iso文件

mount DEVICE MOUNT_POINT

-o loop:挂载本地回环设备

umount命令:

卸载:将某文件系统与当前根文件系统关联以移除

umount 设备

umount 挂载点

卸载注意事项:

挂载的设备没有被进程使用

swap分区:

free命令:

查看内存使用情况

-m:

fdisk命令中,调整分区类型为82。

创建交换分区:

mkswap /dev/sda8

-L LABEL

swapon /dev/sda8 启用交换分区

-a: 启用所有定义在/etc/fstab文件中的交换设备

swapoff /dev/sda8 关闭交换分区

回环设备

loopback,使用软件来模拟实现硬件

创建一个镜像文件,120G

dd命令:

if=数据来源

of=数据存储目标

bs=1024 (1024字节/单位)
count=2 (复制几个单位)

dd if=/dev/sda of=/mnt/usb/mbr.backup bs =512 count=1
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1
dd if=/dev/zero of=/var/swapfile bs=1M count=1024

seek=#: 创建数据文件时,跳过的空间大小

文件系统的配置文件/etc/fstab

os在初始时,会自动挂载此文件中定义的每个文件系统

要挂载的设备  挂载点  文件系统类型    挂载选项  转储频率(每多少天做一次完全备份)  文件系统检测次数(只有跟可以为1)

fuser命令:

验证进程正在使用的文件或套接字文件

-v:查看某文件上正在运行的进程

-k:

-m:

fuser -km MOUNT_POINT: 终止正在访问此挂载点的所有进程

压缩、解压缩命令

压缩格式:gz,bz2,xz,zip,z

压缩算法:算法不同,压缩比也会不同。

compress:FILENAME.z

uncompress

gzip: .gz

gzip /PATH/TO/SOMEFILE:压缩完成后会删除原文件

-d:解压缩

-#:1-9 ,指定压缩比,默认是6

gunzip:

gunzip /PATH/TO/SOMEFILE.gz :解压完成后会删除源文件

zcat /PATH/TO/SOMEFILE.gz 不解压的情况,查看文本文件的内容

bzip2: .bz2

比gzip有着更大压缩比的压缩工具,使用格式近似

bzip2 /PATH/TO/SOMEFILE

-d:解压

-# : 1-9,默认是6

-k:压缩后保留原文件

bunzip2 /PATH/TO/SOMEFILE 解压缩

bzcat /PATH/TOSOMEFILE.bz2  不解压,查看文本文件内容

xz: .xz

xz /PATH/TO/SOMEFILE

-d

-# :1-9 默认是6

-k: 压缩时保留源文件

unxz:

xzdec:

xzcat:

zip:既归档又压缩的工具

zip FILENAME.zip  FILE1 FILE2 ... 压缩后不删除原文件

unzip FILENAME.zip

archive:归档,归档本身并不意味着压缩

tar:归档工具

-c:创建归档文件
-f FILE.tar:操作的归档文件
-x :展开归档
--xattes:归档时,保留文件的扩展性信息
-t:不展开归档,直接查看归档了哪些文件

-zcf:归档并调用gzip压缩

-zxf:调用gzip解压缩并展开归档

-jcf:归档并调用bzip2压缩

-jxf:调用bzip2解压缩并展开归档


-Jcf:归档并调用xz压缩

-Jxf:调用xz解压缩并展开归档

cpio:归档工具

练习:写一个脚本

从键盘让用户输入几个文件,脚本能够将此几个文件归档后压缩成一个文件。

#!/bin/bash
read -p "Please Enter Three filename:" file1 file2 file3
tar -zcf `date +%Y%m%d%H%M%S`.tar.gz $file1 $file2 $file3

RAID:

级别:仅代表磁盘组织方式不同,没有上下之分

0:条带

性能提升:读、写 

冗余能力(容错能力):无

空间利用率:ns

硬盘数:至少2块

1:镜像 

性能表现:写性能下降,读性能提升

冗余能力:有

空间利用率:1/2

硬盘数:至少2块

2

3

4

5:

性能表现:读,写提升

冗余能力:有

空间利用率:(n-1)/n

硬盘数:至少3块

10:

性能表现:读、写提升

冗余能力:有

空间利用率1/2

硬盘数:至少需要4块

01:

性能表现:读、写提升

冗余能力:有

空间利用率1/2

硬盘数:至少需要4块

50:

性能表现:读、写提升

冗余能力:有

空间利用率:(n-2)/n

硬盘数:至少需要6块

jbod:将多个硬盘,连接为一个硬盘使用

性能表现:无提升

冗余能力:无

空间利用率:100%

逻辑RIAD:

/dev/md0

/dev/md1

cat /proc/mdstat查看阵列

内核模块md:

mdadm:将任何块设备做成RAID

模式化的命令:

创建模式

-C

专用选项:

-l:级别
-n:设备个数
-a{yes|no}:自动为其创建设备文件
-c:CHUNK大小,2^n,默认为64k

-x #:指定空闲盘个数

管理模式

--add,--remove,--del

-a,-r,-d

mdadm /dev/md# --fail|-f /dev/sda7

监控模式

-F

增长模式

-G

装配模式

-A

查看RAID阵列的详细信息

mdadm -D /dev/md#

--detail

停止阵列

mdadm -S /dev/md#

--stop

将当前RAID信息保存至配置文件,以便以后进行装配:

mdadm -D --scan > /etc/mdadm.conf

练习:创建一个2G的raid0

1、fdisk /dev/sdb 创建两个1G的类型为fd的分区

2、partprobe /dev/sdb 内核重读分区(cat /proc/partitions 查看是否已经识别)

3、mdadm -C /dev/md0 -l 0 -n 2 -a yes /dev/sdb{1,2}(cat /proc/mdstat 查看raid阵列

4、mke2fs -j /dev/md0 格式化阵列(mke2fs -j -E stride=16 -b 4096 /dev/md0)

5、mount  /dev/md0  /test 挂载使用

DM: Device Mapper

逻辑设备

RAID, LVM2

DM:

快照

多路径

Linux磁盘及文件系统管理详解

pv

pvcreate

 pvcreate /dev/sdb1 /dev/sdb2

pvremove 删除pv

pvremove /sdb1

pvscan 扫描当前系统一共多少个pv

pvdisplay 查看pv详细信息

pvmove 把数据移出到其他盘

vg

vgcreate 

vgcreate VG_NAME /PATH/TO/PV

-s # : PE大小,默认是4MB

vgremove 移出vg

vgextend 扩展pv到vg卷组

vgreduce 移出pv 

vgreduce VG_NAME /dev/sdb1

vgs

vgdisplay

vgscan

lv

lvcreate 

lvcreate -n LV_NAME -L #G VG_NAME

lvcreate -L 100M -n testlv myvg

lvremove

lvextend

lvreduce

lvs

lvdisplay

练习:创建一个由两个物理卷组成的大小为20G的卷组myvg ,要求PE大小为16M,而后在此卷组中创建一个大小为5G的逻辑卷1v1,此逻辑卷要能在开机后自动挂载至/users目录,且直接acl功能

一、扩展逻辑卷

lvextend 扩展物理边界

-L [+] # /PATH/TO/LV

lvextend -L 1G /dev/myvg/testlv 

resize2fs 扩展逻辑边界(扩展以后df -lh才能看见)

resize2fs /PATH/TO/LV 5G

resize2fs -p /PATH/TO/LV (扩展到和物理边界一样)

resize2fs -p /dev/myvg/testlv 

二、缩减逻辑卷

注意:1、不能在线缩减,得先卸载

2、确保缩减后的空间大小依然能存储原来的所有数据

3、在缩减之前应该先强行检查文件,以确保文件系统处于一至性状态

df -lh

umount 

e2fsck -f

resize2fs

resize2fs /PATH/TO/LV 3G 缩减逻辑卷到3G

resize2fs /dev/myvg/testlv 300M

lvreduce -L /PATH/TO/LV 3G 缩减物理边界到3G

lvreduce -L 300M /dev/myvg/testlv

三、快照卷

1、生命周期为整个数据时长;在这段时间内,数据的增长量不嫩超出快照卷大小。

2、快照卷应该是只读的

3、跟原卷在同一卷组内

lvcreate

-s 创建快照卷

-p r|w

lvcreate -L # -n SLV_NAME-s -p r /PATH/TO/LV

练习:创建一个快照,并恢复快照数据

lvcreate -L 50M -n kuaizhao -s -p r /dev/myvg/testlv  (创建50M快照卷)

mount  /dev/myvg/kuaizhao /kuaizhao (挂载快照卷)

tar -jcf /tmp/kuaizhao.tar.bz2 ./* (切换到快照目录,归档到tmp目录)

umount /kuaizhao (卸载快照卷)

lvremove /dev/mgvg/kuaizhao (移出快照卷)

tar -jxf /tmp/kuaizhao.tar.bz2  -C /test/ (展开快照数据到原目录)

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: