一、硬盘分区格式化
inux系统的硬件设备一般存放在/dev
目录下,光盘格式为/dev/cdrom
硬盘如果是老式针式接口一般为/dev/hda
如果是SATA接口根据数量命名为/dev/sda、/dev/sdb
sd、hd
是硬盘的类型,a、b
代表第几块硬盘
如果把sda
进行分区,分成4个分区/dev/sda1、dev/sda2、dev/sda3、dev/sda4
添加硬盘后
通过命令fdisk -l
查看设备硬盘的挂载情况示例如下
Disk /dev/sda: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c6099
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 2637 20971520 83 Linux
/dev/sda3 2637 2898 2097152 82 Linux swap / Solaris
/dev/sda4 2898 10444 60611584 5 Extended
/dev/sda5 2898 10444 60610560 83 Linux
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
上述代码就是新增硬盘后的情况可以看到新硬盘sdb并未分区,需要进行分区操作,对硬盘大小进行切割变成适合使用的大小,命令fdisk /dev/sdb
[root@yumserver ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x524b1b29.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help):
查看帮助信息
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition #删除分区
l list known partition types
m print this menu #打印该菜单(帮助菜单)
n add a new partition #增加一个新的分区
o create a new empty DOS partition table #创建新的空的DOS磁盘
p print the partition table #打印硬盘的分区表
q quit without saving changes #退出不保存
s create a new empty Sun disklabel #创建新的空的磁盘表
t change a partition's system id
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): n
Command action
e extended #扩展分区
p primary partition (1-4) #主分区,只能分4块,从1到4
p
Partition number (1-4): 1 #选择分区号
First cylinder (1-2610, default 1): #选择开始的磁道,直接回车表示从默认1开始
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G #分配大小10G
Command (m for help): w #结束并保存分区信息
下一步需要经硬盘进行格式化指定里面的文件操作系统mkfs.ext4 /dev/sdb1
,让系统可以读取硬盘里面的信息
最后需要把格式化完成的分区挂载到相应的目录下,将分区和使用的目录进行关联,一般用命令df -h
查看分区硬盘的挂载使用情况
[root@yumserver ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 57G 1.4G 53G 3% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 194M 28M 157M 15% /boot
/dev/sda2 20G 11G 7.8G 59% /data
新建目录并把分区挂载到目录下,将分区和使用的目录进行关联
[root@yumserver ~]# mkdir /data1
[root@yumserver ~]# mount /dev/sdb1 /data1
[root@yumserver ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 57G 1.4G 53G 3% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 194M 28M 157M 15% /boot
/dev/sda2 20G 11G 7.8G 59% /data
/dev/sdb1 9.9G 151M 9.3G 2% /data1
补充查看目录大小
[root@yumserver data1]# du -sh /etc
25M /etc
磁盘配额
限制每个用户使用磁盘存储空间的大小
- 第一步开启uquota权限,编辑/etc/fatab文件,将挂载信息语句的权限设置defualt修改为defualt,uquota,表示针对该分区开启磁盘配额限制,保存后重启系统在RHEL5/6版本该权限是usrquo.
- 第二步使用磁盘配额限制命令xfs_quota,分为软硬两种限制
软限制:在日志文件中写入告警信息
硬限制:真正限制用户使用存储资源
具体命令示例如下:
xfs_quota -x -c bsoft=3m bhart=6m isoft=3 ihard=6 linuxprobe /boot
参数x表示专家模式
参数c表示非交互模式输入命令
bsoft block soft 针对block块的软限制,限制文件大小
bhard block hard 针对block块的硬限制
isoft inode soft 针对inode的软限制,限制文件个数
ihard inode hard 针对inode的硬限制
最后面跟针对的用户以及目录 - 修改磁盘配额增加配额上限命令edquota
[root@yumserver data]# edquota -u linuxprobe
Disk quotas for user linuxprobe (uid 1000):
Fliesystem blocks soft hard inodes soft hard
/dev/sda1 6144 3072 6144 1 3 6
#Fliesystem表示对应的设备
#blocks 表示当前已使用的大小
# inodes 表示当前已使用的文件个数
#soft/hard 表示针对不同对象的软硬限制,允许的个数及最大的个数
#直接在该文件中修改soft/hard 的参数后保存重启系统即可
二、文件系统相关的说明
Linux文件系统一般有:ext2,ext3,ext4,xfs
一般5.X以前版本支持ext2/ext3,6.X版本支持ext5,7.X版本支持xfs
xfs文件系统和ext4性能相当,但可以支持更大的存储空间达到18EB,并且xfs不支持LVM的硬盘缩小功能.
文件系统创建完成后一般由两部分组成,存储文件具体信息的块block
以及存放文件关键信息(如文件名,属性,存储位置)的索引inode
查看文件系统block/inode信息的命令
[root@yumserver data]# dumpe2fs /dev/sda1 |grep -E -i "block size|inode size"
dumpe2fs 1.41.12 (17-May-2010)
Block size: 1024
Inode size: 128
查看文件的inode值,列举文件的第一个参数,
[root@yumserver data]# ls -il
total 40
1179650 drwxr-xr-x 7 root root 4096 Aug 15 23:53 CentOS6.5
1179649 drwxr-xr-x 2 root root 4096 Aug 15 15:03 dvd1
1048588 drwxr-xr-x 2 root root 4096 Aug 15 15:03 dvd
查看分区inode使用情况
[root@yumserver data]# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda5 3.7M 46K 3.6M 2% /
tmpfs 123K 1 123K 1% /dev/shm
/dev/sda1 50K 38 50K 1% /boot
/dev/sda2 1.3M 6.3K 1.3M 1% /data
生产案例
/var/spool/clientmqueue文件过多导致inode被消耗尽。no spaceleft on device.
思路:文件哪里来的?定时任务没追加>/dev/null 2>&1
当一个定时任务执行时候会给root发送邮件,一般sendmail邮件服务是不开启的,所以定时任务发送的邮件会临时对方在 /var/spool/ckientmqueue/,时间长了会吧inode消耗完。
解决办法:1)先手动删除目录下所有文件,然后设置定时任务定时自动删除目录下文件
当目录中文件过多时候无法用rm -f *删除会直接退出目录,此时先切换到目录下然后ls|xargs rm -f 删除, find ./ -type -f|xarges rm -f也可以用来删除大量文件
2)查看定时任务命令添加>/dev/null 2>&1
linux系统中设备文件命名udev服务
- SCSI/SATA/U盘 /dev/sd sda sdb sdc
- IDE /dev/hd hda hdb
- 打印机 /dev/lp
- 光盘 /dev/cdrom
- 鼠标 /dev/mouse
#######MBR补充
MBR(Main Boot Record 主引导记录区)位于整个硬盘的0磁道0柱面1扇区。不过,在总共512字节的主引导扇区中,MBR只占用了其中的446个字节,另外的64个字节交给了 DPT(Disk Partition Table硬盘分区表),最后两个字节“55,AA”是分区的结束标志。这个整体构成了硬盘的主引导扇区
DPT(Disk Partition Table硬盘分区表)为64字节,每个分区信息占用16个字节因此最多只能保存4个分区信息. - 主分区:也叫引导分区,最多可能创建4个,当创建四个主分区时候,就无法再创建扩展分区了,当然也就没有逻辑分区了。主分区是独立的,对应磁盘上的第一个分区
- 扩展分区:除了主分区外,剩余的磁盘空间就是扩展分区了,扩展分区是一个概念,实际上是看不到的。当整个硬盘分为一个主分区的时候,就没有了扩展分区。
- 逻辑分区:在扩展分区上面,可以创建多个逻辑分区。逻辑分区相当于一块存储截止,和操作系统还有别的逻辑分区、主分区没有什么关系,是“独立的”
分区号1-4是给主分区和扩展分区使用的,逻辑分区号只能从5向后排
主分区P,扩展分区E,因此一块硬盘分区情况一般是:
1P
1P+1E
2P+1E
3P+1E
4P
几种情况.
让挂载信息永久生效的文件/etc/fstab
一般格式如下:设备名+挂载目录名+具体文件系统的格式+文件属性信息+0+0
第一个0表示是否进行备份
第二个0表示是否进行校验
光盘默认的格式iso9660
设备名必须是带/dev的全路径名称
/dev/sda1 /media/cdrom iso9660 defaults 0 0
为了防止出错可以使用设备的唯一表示符UUID来挂载设备
- 第一步查看设备的UUID,命令blkid
[root@localhost sh]# blkid
/dev/sda1: UUID="36a53f15-5f73-4e86-bafc-f50476e7f610" TYPE="xfs"
/dev/sda2: UUID="8dvEN2-DedW-aGmd-Am2I-Y1KL-iEV4-1e3IV1" TYPE="LVM2_member"
/dev/sr0: UUID="2014-05-07-03-58-46-00" LABEL="RHEL-7.0 Server.x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/rhel-root: UUID="c6a60186-977a-4669-91ed-aedc8a8529b8" TYPE="xfs"
/dev/mapper/rhel-swap: UUID="7baf38fd-bf2b-4974-a81d-c3e819b500ee" TYPE="swap"
- 第二步将配置文件中文件位置如/dev/sda1修改为UUID
UUID="7baf38fd-bf2b-4974-a81d-c3e819b500ee" /media/cdrom iso9660 defaults 0 0