您的位置:首页 > 运维架构 > Linux

linux磁盘管理

2016-12-21 15:50 489 查看
磁盘分区格式化:

一、根下文件目录介绍:
二进制文件:/bin,/sbin:二进制程序;操作系统自身运行所需要用到的程序;/usr/bin,/usr/sbin:二进制程序;系统管理所需要用到程序;/usr/local/bin,/usr/local/sbin:二进制程序;第三方提供的程序,给系统运行、管理没有关系;
库文件/lib:库文件;主要为/bin,/sbin提供所需要的库;通常也为/usr/bin,/usr/sbin提供库,
/usr/lib:库文件此案;用到的很少,为/usr/bin,/usr/sbin提供库;/usr/local/lib:库文件;主要为/usr/local/bin,/usr/local/sbin提供库;
配置文件:/etc/:配置文件目录;/bin,/sbin,/usr/bin,/usr/sbin的配置文件一般存放在这里;
/usr/local/etc:配置文件;/usr/lcoal/bin,/usr/lcoal/sbin配置文件一般放在这里;
临时文件:/tmp:程序运行时产生的临时文件存放目录;
经常发生变化的文件:如日志
/var /var/log;/var/mail/;/var/cache;
内核特性的输出目录:也叫内核映像 (伪文件)/proc:
输出硬件信息:如硬盘(伪文件)/sys
挂载目录:(不是一定的,只是一般做法)
/media :关联便携性设备;/mnt :关联硬盘
引导目录:/boot:主要用来放置内核;
用户家目录:/home/root:
设备文件:(b块设备(支持随机访问)、c字符设备(线性设备)/dev:linux所能识别的设备都在此目录下;
二、硬盘相关指标(i/o、接口、转速、文件表示)
硬盘设备:随机存取设备;

I/O,
I/O controller:主要控制设备间通信的信号转换,如cpu和硬盘,cpu和内存;集成的,也叫控制器
I/O adapter:非集成的,也叫适配器

硬盘设备接口:
IDE,ATA:并行的; 133MB/s;
SCSI:small computer system interface;并行的;ultrascsi:320MB/s;10000转/M,15000转/M、
SATA:serail ata;串行的;STAT1:300MB/s、STAT2:600MB/s、STAT3:6Gbps
SAS:串行的;
USB:
SSD:solid-state disk;

硬盘在linux下表示:
IDE,ATA : /dev/hd[a-z];第一块硬盘用hda表示,一次向下排;
并行线上一般有两个接口,一个是主:master,hda;一个是辅:slave,hdb

第一个IDE控制接硬盘,第二个IDE控制接光驱:hdc

SCSI,SAS,STAT,USB:/dev/sd[a-z],第一块硬盘用sda表示;一次向下排;

sda、sdb,也可以改变udev文件来自定义格式;

磁盘分区:每个独立的磁盘分区可以当做单独的文件系统来使用;

文件系统:通常由内核提供;文件系统用来管理磁盘分区;

windows:NTFS、FAT32

linux:ext2,ext3,ext4,xfs,reiserfs,nfs,iso9600,jfs,brtfs

格式化的过程就是创建文件系统的过程;
低格:低级格式化;用来创建磁道的,

高格:高级格式化:用来创建文件系统的;

分区是按照柱面来化分的;0磁道0扇区不属于任何分区,它被化为MBR(master booot record:主引导记录,512字节)
MBR:512字节,前446字节存放bootloader;接下来64字节存放分区表(每16字节来标示一个分区,所以只能有4个主分区);接下来2个字节:标示当前硬盘是不是可引导,用5A来标示;

扩展分区:不是指向一个分区,而是指向一个分区表,然后分区表里在划分分区(逻辑分区);

linux磁盘分区表示:(主分区只能有四个)
sda1:第一个主分区
sda2.。。。。。依次类推
sda5:第一个逻辑分区;

三、实现分区 (查看分区、创建分区、格式化分区、挂载分区、卸载挂载、查看挂载)
1、创建分区命令有:fdisk、sfdisk、part;
fdisk:一般最多能划分15各分区;
查看分区信息:fdisk -l[root@promote ~]# fdisk -l //查看所有分区信息;[root@promote ~]# fdisk -l /dev/sda //查看第一块磁盘分区信息;
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors //磁盘1大小21.5G,21474836480个字节,41943040个扇区(磁道上一段弧);Units = sectors of 1 * 512 = 512 bytes //单位一个扇区,大小512字节;Sector size (logical/physical): 512 bytes / 512 bytes //扇区大小512字节;I/O size (minimum/optimal): 512 bytes / 512 bytes //i/0大小512字节;每次执行i/o,大小为512字节;Disk label type: dosDisk identifier: 0x00078891 Device Boot Start End Blocks Id System //ID表示:分区类型;/dev/sda1 * 2048 1026047 512000 83 Linux //从2048扇区到1026047是第一个分区/dev/sda2 1026048 41943039 20458496 8e Linux LVM[root@promote ~]#[root@promote ~]#
[root@promote ~]# fdisk -l /dev/sd[a-z] //显示sd开头的所有磁盘[root@promote ~]# fdisk -l /dev/sd[a-z] //显示hd或sd开头的磁盘
创建分区:fdisk; fdisk [DEVICE]:创建磁盘分区,是一个交互式命令;
步骤:1、 [root@promote proc]# fdisk /dev/sdb //借助交互式命令创建磁盘分区;需要注意的是:如果创建分区小于等于4,创建主分区即可,如果所需的分区大于4,则要创建扩展分区,扩展分区创建后不能直接使用,必须在扩展分区基础上再次创建逻辑分区;2、[root@promote proc]# cat /proc/partitions //查看创建分区信息是否被内核所识别,没识别执行3;3、[root@promote proc]# partprobe /dev/sdb //RHEL5让内核重新读取硬盘分区表或: [root@promote proc]# partx -a [分区] /dev/sdb //RHEL6让内核重新读取硬盘分区表;
[root@promote ~]# partx /dev/sdb //查看分区是否被内核识别;
格式化分区(创建文件系统):mkfs、 mke2fs、tune2fs、e2label;mke2fs主要用来是创建ext系列文件系统;mkfs是通用的,可以创建其他类型文件系统;分区要注意两点:a、文件系统必须被内核支持才能使用,即内核有相应的内核模块,或者已经整合进内核:b、要有相应文件系统创建工具,通常是mkfs.fstype
4、以上为创建分区,分区没有文件系统是不能被使用的因此要创建文件系统,即格式化分区:
方法一: mkfs [options] [-t type] [fs-options] device [size] [root@promote proc]# mkfs -t ext4 /dev/sdb1 //将sdb1以ext4文件系统方式格式化; 方法二:mke2fs -t {ext2 | ext3 | ext4} /dev/sdb1 //将sdb1以ext4文件系统方式格式化;
[root@promote proc]# blkid /dev/sdb1 //显示sdb1格式化的信息(uuid、type);/dev/sdb1: UUID="43812552-22c6-4d6d-b975-f5afbb41c4af" TYPE="ext4"[root@promote proc]#注意: mkfs -t ext4=mkfs.ext4=mke2fs -t ext4
mkfs -t ext3=mkfs.ext3=mke2fs -j=mke2fs -t ext3
mkfs -t ext2=mkfs.ext2=mke2fs=mke2fs -t ext2

mke2fs:设定相关文件系统参数;tune2fs:修改相关文件系统参数;e2label:显示或设定卷标:可以修改mke2fs配置文件/etc/mke2fs.conf来改变其文件系统默认参数; mke2fs常用选项: -t:文件类型; -b {1024 | 2048 | 4096}:块大小; -L label:设置卷标; -m #:预留给管理员使用的块所占用总空间的比例;磁盘一般都会预留一些空间给root用(一般默认为5%),防止全部填满数据不能使用; -r # :调整预留给管理使用的块个数; -E:设定文件系统的扩展属性;
tune2fs:常用选项: 不能调整块大小, -l:显示文件系统超级块相关信息;
-L:重新设定分区卷标;
-m #:重新设定预留空间比例;
-r # :调整预留给管理使用的块个数;
-o:设定挂载默认选项;
-O:设定文件系统默认特性;
-E:修改文件系统的扩展属性;e2label:显示或设定卷标: 用法:#e2label 分区 卷标 //设定卷标
#e2label 分区 //查看卷标;
格式化分区事例:
如:[root@promote proc]# e2label /dev/sdb2test[root@promote proc]# e2label /dev/sdb2 mylove[root@promote proc]# e2label /dev/sdb2mylove[root@promote proc]#
块大小:取决于cpu对内存页框大小的支持,x86系统默认的页框大小为4k;块大小可以为1024、2048、4096;[root@promote proc]# tune2fs -l /dev/sdb2 | grep Block\ size //过滤显示块大小Block size: 4096[root@promote proc]# mke2fs -t ext4 -b 2048 /dev/sdb2 //-b改变块大小;[root@promote proc]# tune2fs -l /dev/sdb2 | grep Block\ sizeBlock size: 2048[root@promote proc]# mke2fs -t ext4 -b 2048 -L mydata /dev/sdb2 //-L设定卷标;[root@promote proc]# blkid /dev/sdb2 /dev/sdb2: LABEL="mydata" UUID="f4fd44ce-001c-48d4-b74b-8ab4e7d8ac44" TYPE="ext4"[root@promote proc]#
磁盘一般都会预留一些空间给root用(一般默认为5%),防止全部填满数据不能使用;[root@promote proc]# tune2fs -l /dev/sdb2 | grep Reserved //查看预留空间信息 Reserved block count: 26214Reserved GDT blocks: 512Reserved blocks uid: 0 (user root)Reserved blocks gid: 0 (group root)[root@promote proc]#[root@promote proc]# mke2fs -t ext4 -b 2048 -L mydata -m 1 /dev/sdb2 //-m调整预留比例1%[root@promote proc]# tune2fs -l /dev/sdb2 | grep ReservedReserved block count: 5242Reserved GDT blocks: 512Reserved blocks uid: 0 (user root)Reserved blocks gid: 0 (group root)
[root@promote ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Command (m for help): mCommand action a toggle a bootable flag //设定可启动标记; b edit bsd disklabel c toggle the dos compatibility flag d delete a partition //删除一个分区; g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types //列出各分区类型所对应的sysytem id; m print this menu n add a new partition //新建一个分区; o create a new empty DOS partition table p print the partition table //显示当前的分区信息; q quit without saving changes //不保存退出; s create a new empty Sun disklabel t change a partition's system id //修改分区类型;(83:linux分区;82:linux swap;8e:Linux LVM ;fd;) u change display/entry units v verify the partition table w write table to disk and exit //保存退出; x extra functionality (experts only)Command (m for help):

挂载分区:建立关联关系;将某文件系统关联到根文件系统上;注意:如果以个目录在挂载其他文件系统(分区)以前,已经有了文件,那么挂载之后,这些文件将被隐藏,但是不会被删除;当卸载(反挂载)后,这些文件就可以访问了,不要挂载在常用目录下,建议挂载在/media或/mnt或自己常见的目录下。
挂载命令介绍:mountmount [option] device mount_point
option: -o:用于指定挂载选项; 常用指定挂载选项有 ro:只读挂载; rw:读写,默认读写; noatime:关闭更新访问时间; auto:是否能有有“mount -a”挂载; sync:同步写入 async:异步写入,异步性能好 noexec:不允许设备上的二进制文件执行; remount:重新挂载 defaults:相当于 rw, suid, dev, exec, auto, nouser, and async. ,默认default loop:本地回环设备;挂载本地镜像用 -n:挂载文件系统时,不更新/etc/mtab文件; -r:相当于“-o ro”,只读挂载; -a:挂载所有fstab中的支持auto挂载选择的文件系统;//mount -a ;后不跟任何参数

如:[root@promote ~]# mount -o rw /dev/sdb1 /test/
[root@promote ~]# mount | grep sdb1
/dev/sdb1 on /test type ext4 (rw,relatime,seclabel,data=ordered)
[root@promote ~]# mount -o remount,ro /dev/sdb1 //重新挂载不需要指定挂载点
[root@promote ~]# mount | grep sdb1
/dev/sdb1 on /test type ext4 (ro,relatime,seclabel,data=ordered)
[root@promote ~]#

fuser:查看正在访问某挂载点的进程:
fuser [-fuv] [-a|-s] [-4|-6] [-c|-m|-n space] [ -k [-i] [-M] [-w] [-SIGNAL] ] name ...
fuser -km [mount_point]:强行杀死正在访问此挂载点的进程;

5、挂载分区: 方法一:直接挂载设备分区格式:#mount [-t fstype] DEVICE MOUNT_POINT //mount 设备 挂载点 方法二:以卷标方式挂载格式: #mount [-t fstype] LABEL="卷标" MOUNT_POINT //mount 卷标 挂载点 方法三:以UUID方式挂载:格式:#mount [-t fstype] UUID="uuid " MOUNT_POINT //mount UUID 挂载点
如:[root@promote proc]# mount -t ext4 /dev/sdb1 /test/ //将sdb1分区以ext4文件系统挂载到/test下,-t ext4 可以省略,如果省略mount会调用blkid来判断以什么格式挂载;
[root@promote /]# blkid /dev/sdb1/dev/sdb1: UUID="43812552-22c6-4d6d-b975-f5afbb41c4af" TYPE="ext4"[root@promote /]# tune2fs -L mydata /dev/sdb1tune2fs 1.42.9 (28-Dec-2013)[root@promote /]# blkid /dev/sdb1/dev/sdb1: LABEL="mydata" UUID="43812552-22c6-4d6d-b975-f5afbb41c4af" TYPE="ext4"[root@promote /]# mount LABEL="mydata" /test //以卷标挂载;[root@promote /]# mount //验证挂载
[root@promote /]# mount UUID="43812552-22c6-4d6d-b975-f5afbb41c4af" /test //以UUID挂载

6、卸载:umount(卸载只需指一个:设备或挂载点)
方法一:#umount DEVICE //指定设备卸载 方法二:#umount MOUNT_POINT //指定挂载点卸载;7、查看挂载:格式:#mount //不带任何参数,查看所有挂载设备;
注意:以上挂载在系统重新启动后不会自动挂载的,/ets/fstab文件中定义的挂载会在重启后自动挂载;[root@promote ~]# cat /etc/fstab
# /etc/fstab
# Created by anaconda on Tue Nov 29 20:13:44 2016
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
/dev/mapper/centos-root / xfs defaults 0 0
UUID=47c2d0d2-2c32-4a36-89e7-420739594a95 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
[root@promote ~]#
解释:/dev/mapper/centos-root :挂载的设备(可以是设备文件、卷标、UUID,建议使用uuid) /:挂载点
xfs:文件系统类型;default:挂载选项,default表示默认选项,多个选项之间逗号分隔;0:转储频率:dump,多长时间多一次备份,0表示不备份,1表示每天备份,2表示隔天备份;0:自检次序:检测文件系统,先检测根,0表示不检测,1表示第一个检测,

四、文件系统:
文件系统通过函数调用(open(),read(),write(),close())来对文件进行管理;但是由于文件系统有很多种,如:ext1\ext2\ext3\ext4\xfs\jfs等,为了对调用不同层次文件系统统一管理,加一个中间层(VFS:virtual file system)

linux内核支持的文件系统:

光盘文件系统:iso9660;

网络文件系统:nfs、cifs

单机文件系统:ext{1,2,3},xfs,jfs,reiserfs,vfat

集群文件系统:GFS,GFS2,OCFS2

分布式文件系统:

交换分区:swap
作为内存不够用时的替代方案,将磁盘的一段容量拿来格式化成和内存一样格式的文件系统,供系统使用。linux上的交换分区必须是独立分区(独立文件系统)。
交换分区大小合适?(以下是建议做法,没有什么准则) 科学计算器类的服务器:交换分区可以尽可能大,比如为物理内存的两倍;
应用程序类的服务器:交换分区尽可能小,让他使用物理内存,如:只给1个G,如oracel数据、web等;
物理内存小于2G,swap=memory*2
物理内存大于2G小于4G,swap=memory*1.5
物理内存大于4G,swap=4G
查看内存大小: free
free [options]Options: -b, --bytes show output in bytes -k, --kilo show output in kilobytes -m, --mega show output in megabytes //以MB为单位显示大小 -g, --giga show output in gigabytes --tera show output in terabytes -h, --human show human-readable output //显示人可读的输出 --si use powers of 1000 not 1024 -l, --lohi show detailed low and high memory statistics -t, --total show total for RAM + swap -s N, --seconds N repeat printing every N seconds -c N, --count N repeat printing N times, then exit -w, --wide wide output --help display this help and exit -V, --version output version information and exit For more details see free(1). [root@promote ~]# 如:[root@promote ~]# free total used free shared buff/cache availableMem: 1001332 199348 534872 7196 267112 624508Swap: 2097148 0 2097148 // 总大小 已用 可用 共享内存 缓冲缓存 可用的
[root@promote ~]#
创建分区,并作为交换分区:

步骤1、创建swap分区,[root@promote ~]# fdisk /dev/sdbWelcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Command (m for help): pDisk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x88cbdb2a Device Boot Start End Blocks Id System/dev/sdb1 2048 2099199 1048576 83 Linux/dev/sdb2 2099200 4196351 1048576 83 Linux/dev/sdb3 4196352 6293503 1048576 83 LinuxCommand (m for help): l //列出分区的文件格式的对应编码
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT1e Hidden W95 FAT1 80 Old MinixCommand (m for help): t //修改分区文件格式Partition number (1-3, default 3): 3 //指定要修改的分区Hex code (type L to list all codes): 82 //指定分区对应的编码Changed type of partition 'Linux' to 'Linux swap / Solaris'Command (m for help): pDisk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x88cbdb2a Device Boot Start End Blocks Id System/dev/sdb1 2048 2099199 1048576 83 Linux/dev/sdb2 2099200 4196351 1048576 83 Linux/dev/sdb3 4196352 10485759 3144704 82 Linux swap / SolarisCommand (m for help):w保存退出;
步骤2、参看swap分区是否被内核所识别;[root@promote ~]# cat /proc/partitions //查看分区是否被内核所识别,如果没有被识别需要重启,或重新读取内核,用命令:# partprobe /dev/sdb或# partx -a /dev/sdb3 /dev/sdb;major minor #blocks name 8 0 20971520 sda 8 1 512000 sda1 8 2 20458496 sda2 8 16 5242880 sdb 8 17 1048576 sdb1 8 18 1048576 sdb2 8 19 3144704 sdb3 11 0 1048575 sr0 253 0 18317312 dm-0 253 1 2097152 dm-1[root@promote ~]#
步骤3、格式化swap分区
[root@promote ~]# mkswap /dev/sdb3 //用mkswap格式化sdb3Setting up swapspace version 1, size = 3144700 KiBno label, UUID=d23f4399-8512-4e97-a8ae-291b7ee5f1c6[root@promote ~]#或:[root@promote ~]# mkswap -L newswap /dev/sdb3 //指定卷标为newswapmkswap: /dev/sdb3: warning: wiping old swap signature.Setting up swapspace version 1, size = 3144700 KiBLABEL=newswap, UUID=6b7b2807-ec13-45e3-bb2d-139b18a052c3[root@promote ~]#
步骤4、启用交换分区:[root@promote ~]# swapon /dev/sdb3 //启用指定交换分区[root@promote ~]# swapon -a //启用所有交换分区[root@promote ~]# free //验证swap挂载成功
total used free shared buff/cache available
Mem: 1001332 177860 485788 7220 337684 644088
Swap: 3144700 0 3144700

步骤5、禁用交换分区:[root@promote ~]# swapoff /dev/sdb3 //禁用指定交换分区[root@promote ~]# swapoff -a //禁用所有交换分区
步骤6、开机自动启用交换分区,可定义于/etc/fstab:[root@promote ~]# vim /etc/fstab //在里面输入:/dev/sdb3 swap swap defaults 0 0/dev/sdb3:分区类型,也可以用卷标swap:挂载点swap:分区类型
五、文件系统:
0磁道0扇区不属于任何分区,它被化为MBR(master booot record:主引导记录,512字节)MBR:512字节,前446字节存放bootloader;接下来64字节存放分区表(每16字节来标示一个分区,所以只能有4个主分区);接下来2个字节:标示当前硬盘是不是可引导,用5A来标示可引导;
MBR:引导整个磁盘上的操作系统;一个磁盘上可以有多个操作系统,MBR决定引导哪个分区上的系统; 每个分区有boot block(1024字节,用来引导当前分区上的系统的;),后面跟文件索引,然后分区后面的空间用来存储数据(空间划分成块来存储数据)。 分区中的文件索引中的每一个条目称为index node(简称inode),每个inode都有自己的编号,简称为inode号码;文件索引也叫源数据(Metadata),它包含:大小、权限、属主、属组、时间戳、数据对应的磁盘块(通过块指针来实现的)等信息,但是不包含文件名;
block bitmapinode bitmapblock group:块组#tune2fs -l /dev/sda3 //显示sda3的超级块信息[root@promote ~]# dumpe2fs /dev/sdb1 //显示ext文件系统信息;[root@promote ~]# dumpe2fs -h /dev/sdb1 //显示超级块信息;
du:disk usage;查看文件大小; du [OPTION]... [FILE]... du [OPTION]... --files0-from=FOPTION: -s:summary:显示某指定路径下所有文件的大小之和;
-h:human-readable;以人类易读的方式显示;
[root@promote ~]# du -sh /var //显示var目录下文件大小之和;1.6G /var[root@promote ~]#[root@promote ~]# du -sh /var/* //显示var目录下所有子文件、及目录大小之和0 /var/account0 /var/adm1.3G /var/cache0 /var/crash8.0K /var/db
df:disk free;显示磁盘空余量 df [OPTION]... [FILE]...OPTION: -l:local;显示本地文件系统空闲
-h:human-readable;人类易读的方式
-P:posix兼容的风格显示;
-i:显示inode使用信息;默认是块使用信息;

[root@promote ~]# df -l //显示本地文件系统空闲Filesystem 1K-blocks Used Available Use% Mounted on/dev/mapper/centos-root 18307072 7090144 11216928 39% /devtmpfs 485248 0 485248 0% /devtmpfs 500664 0 500664 0% /dev/shmtmpfs 500664 7184 493480 2% /runtmpfs 500664 0 500664 0% /sys/fs/cgroup/dev/sdb1 999320 2564 927944 1% /test/dev/sda1 508588 162676 345912 32% /boottmpfs 100136 0 100136 0% /run/user/0[root@promote ~]#[root@promote ~]# df /dev/sdaFilesystem 1K-blocks Used Available Use% Mounted ondevtmpfs 485248 0 485248 0% /dev[root@promote ~]# df -h /dev/sdaFilesystem Size Used Avail Use% Mounted ondevtmpfs 474M 0 474M 0% /dev[root@promote ~]#
六、文件删除、移动、复制与文件系统的关系
文件删除只是删除了文件目录的inode信息,inode所指向的数据块上的数据并没有真正删除;此时只是将inode置为未使用inode,块数据置为未使用数据块;

文件复制相当于新建一个文件的inode信息,并将数据复制到inode所指向的数据块;
文件的移动,如果在同一分区,只是将数据块中的inode及文件名替换掉,,没有真正移动文件索引中的数据;

链接文件:
硬链接:指向同一个inode的两个文件路径;如果删除一条文件路径中的系统,只要不是最后一条路径中的文件,那么所指向的inode信息和块信息不会改变;
硬链接特性:硬链接不能跨分区;硬链接不能指向目录;删除原文件路径,不影响链接文件的使用;链接文件与原文件指向同一个inode,因此,他们是同一个文件;

如:
[root@promote ~]# ls -l
total 13380
-rw-r--r--. 1 root root 16627 Dec 14 16:49 abc.txt //此处的1即是硬链接的次数;
[root@promote ~]# ls -i //显示文件的inode
67832961 abc.txt 105633742 httpd-2.4.25
[root@promote ~]#
创建硬链接文件:
#ln 原文件 链接文件

软链接(符号链接):
用命令ls -l查看文件类型为l的文件就是软链接文件;bash中测试文件是否为符号链接文件,使用-L或-h;

软链接特性:不受分区限制;能够对目录创建链接;删除原文件路径,链接文件将无法使用;链接文件与原文件指向不同的inode,因此,他们不是同一个文件,因此可以跨分区;软链接文件的大小是他指向原文件的字符的个数;本身不占用磁盘块;文件类型取决于原文件

创建软链接文件: #ln -s 原文件 链接文件
-v:显示创建过程

七、文件系统其他的相关操作:
查看文件系统隐藏的属性:[root@promote ~]# lsattr---------------- ./anaconda-ks.cfg---------------- ./first.sh[root@promote ~]#
修改文件系统隐藏的属性:
SYNOPSIS chattr [ -RVf ] [ -v version ] [ mode ] files...DESCRIPTION chattr changes the file attributes on a Linux file system. The format of a symbolic mode is +-=[aAcCdDeijsStTu].
The letters 'aAcCdDeijsStTu' select the new attributes for the files: append only (a), no atime updates (A), compressed (c), no copy on write (C), no dump (d), synchronous directory updates(D), extent format (e), immutable (i), data journalling (j), secure deletion (s), synchronous updates (S), no tail-merging (t), top of directory hierarchy (T), and undeletable (u).

[root@promote ~]# lsattr---------------- ./anaconda-ks.cfg---------------- ./first.sh
[root@promote ~]# chattr +i ./first.sh //给文件加上只读属性[root@promote ~]# !ls //执行最近一次以ls开头的命令lsattr---------------- ./anaconda-ks.cfg----i----------- ./first.sh
文件的压缩:[b]gzip、bzip2、xz只能压缩文件不能压缩目录;[/b]linux上常用的压缩程序有:gzip、bzip2、xz,三中程序的压缩能力gzip<bzip2<xz;#gzip 文件名:压缩后的文件后缀为:.gz;解压缩使用#gunzip 文件名;压缩和解压缩会删除元文件 ;#gzip -c 文件名 > message.gz:压缩时不删除原文件;#bzip2 文件名:压缩后的文件后缀为:.bz2;解压缩使用#bunzip2 文件名;压缩和解压缩会删除元文件;# bzip2 -k 文件名 :压缩不删除原文件;#xz 文件名:压缩后的文件后缀为:.xz;解压缩使用#unxz 文件名;压缩和解压缩会删除元文件 以上压缩命令后跟 -d选项可以直接解压缩,如#gzip -d 文件名 就等同于#gunzip 文件名,其他类似;以上压缩命令后跟 -#选项可以设置压缩比,如#gzip -9 文件名 按此比例压缩,其他类似;
不解压查看压缩文件中文件列表:
gzip对应:zcat;
bzip2对应:bzcat;
xz对应:xzcat;
文件的归档一:tar:将多个文件归档到一个文件中,并能还原回来;归档不进行压缩; tar [OPTION...] [FILE]...OPTION: -c:创建归档;
-x:展开归档;
-f:filename ;指定归档后的文件名称,一般以.tar作为文件的后缀名;
-t:不用展开归档,查看文件列表;
-z:调用gzip进行压缩或解压缩,看和哪个选项搭配(-c | -x)
-j:调用bzip2进行压缩或解压缩,看和哪个选项搭配(-c | -x) -J:调用xz进行压缩或解压缩,看和哪个选项搭配(-c | -x)当然也可以不指定-z、-j、或-J,tar会自己判断相应的格式并调用相应的命令进行解压缩并展开归档;
如:[root@promote ~]# cd init.d/[root@promote init.d]# lsfunctions netconsole network README[root@promote init.d]# tar -cf test.tar ./* //将当前目录下所有文件归档为文件名为test.tar的文件;[root@promote init.d]# lsfunctions netconsole network README test.tar[root@promote init.d]# tar -tf test.tar //不展开归档文件查看所含有的文件;./functions./netconsole./network./README[root@promote init.d]#[root@promote init.d]# tar -xf test.tar -C /tmp //展开到指定目录tmp中,如不加-C,则在原来压缩的原目录中;
文件的归档二:zip
zip:压缩后的文件后缀为.zip

unzip:解压缩;
如:
[root@promote init.d]# ls
12.tar functions netconsole network README test.tar
[root@promote init.d]# cd ..
[root@promote ~]# ls init.d/
12.tar functions netconsole network README test.tar
[root@promote ~]# zip init.zip init.d/
adding: init.d/ (stored 0%)
[root@promote ~]# ls
init.d

init.zip

[root@promote ~]#

八:hdparm:IDE或 STAT磁盘属性管理工具:

dd:绕过文件系统直接进行复制底层数据(0,1代码);
用法:dd if= of=
dd if=/etc/inittab of=/tmp //if=/etc/inittab是输入的数据;of=/tmp表示输出文件保存在什么位置;
dd可以复制文件的部分数据,而不用复制完;指定复制的块大小和复制的次数;
bs=1024:表示复制的块大小;block size
count=2:表示复制几个块大小;

[root@promote ~]# dd if=/dev/sda of=/root/sda_mbr.backup bs=512 count=1 //mbr备份
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000756293 s, 677 kB/s
[root@promote ~]#
[root@promote ~]# dd if=/root/sda_mbr.backup of=/dev/sda bs=512 count=1 //mbr备份恢复;慎用
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000245834 s, 2.1 MB/s
[root@promote ~]#

/dev/zero:0生成器;
dd if=/dev/zero of=/root/tefile bs=4k count=10 //创建一个40k以0填充的文件;

九、sysV:服务脚本;

如:[root@promote ~]# service network restart //此命令等同于([root@promote ~]# /etc/rc.d/init.d/network restart 或 [root@promote ~]# /etc/init.d/network restart);service是一个命令,调用network脚本,network脚本位于/etc/rc.d/init.d/network;

script.sh {start | stop | restart | status}
如果参数为start,创建空文件/var/lock/subsys/script,并显示“starting script sucessfully"
如果参数为stop,则删除文件/var/lock/subsys/script,并显示"stop script finished"
如果参数为restart,则删除文件/var/lock/subsys/script后重现创建,并显示“restarting script sucessfully”
如果参数为status,那么:

如果/var/lock/subsys/script文件存在,则显示为"script is running"

否则,则显示为“script is stopped”

其他任何参数:则显示“script.sh {start | stop | restart | status}"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux磁盘管理