运行中的Centos服务器,发现mysql服务运行不了了,重启也解决不了问题,后来通过df -h发现硬盘空间不足,mysql日志文件过大,发现问题了,解决问题就很容易了。
解决方法有两个:
1,找出过大的文件删除
首先通过 df -k 命令发现0号物理卷组(本系统只有一个物理卷组)中的Use%达到了100%,它的挂载点是根目录。那么我们就要去看根目录下的空间分配情况,已了解是哪个文件把空间占用了,然后删除就OK了;
2,增加硬盘扩大容量
挂载硬盘分为手动挂载和自动挂载
建立文件系统一般是在系统安装的时候就会建立,但是在我们实际应用中,往往会对现有的文件系统的分区进行调整或建立新的分区。比如说扩充文件系统的存储容量(即添加一块硬盘)。linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a—d)因为IDE硬盘最多四个,SCSI、SATA、USB硬盘为sdx(x为a—z)),硬盘主分区最多为4个 ,所以主分区从sdb1开始到sdb4,逻辑分区从sdb5开始,(逻辑分区永远从sdb5开始…)设备名可以使用fdisk –l查看
[root@CentOS-Test /]# fdisk –l //查看硬盘分区信息
Disk /dev/sda: 21.5 GB, 21474836480 bytes //第一块硬盘(sda)大小
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: 0x00036e82
//第一块硬盘分成三个区 sda1 sda2 sda3
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1275 10240000 83 Linux
/dev/sda2 1275 1406 1048576 82 Linux swap / Solaris
/dev/sda3 1406 1431 204800 83 Linux
Disk /dev/sdb: 21.5 GB, 21474836480 bytes //第二块硬盘(sdb)大小
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: 0x98fefa90
//第二块硬盘未分区
Device Boot Start End Blocks Id System
l 在硬盘中建立分区
文件系统都是建立在硬盘分区中的,所以我们先要对硬盘进行分区,进行分区前要先确定分区的类型(即文件系统类型)、分区的大小。分区类型一旦确定将不能改变。我们先将第二块硬盘分成2个区,大小都为10G,文件系统类型为ext4.分区的命令在linux里面是fdisk 设备名
先使用fdisk 查看硬盘信息,即硬盘的设备名称,然后使用fdisk 设备名称 进入分区交互状态
这里是使用fdisk /dev/sdb 对应sdb这块硬盘进行分区,然后进入分区交互对话状态,键入m命令可以查看此交换状态的命令帮助,其中n:创建分区 d:删除分区 p:打印分区信息 w:保存
[root@CentOS-Test /]# fdisk /dev/sdb
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): 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
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):
[root@CentOS-Test /]# fdisk /dev/sdb
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): n //创建一个分区
Command action
e extended //扩展分区
p primary partition (1-4) //主分区
p //输入的p键,即创建一个主分区
Partition number (1-4): 1 //分区的id号,此为第一个分区
First cylinder (1-2610, default 1): //分区的起始柱面大小,默认直接回车就行
Using default value 1 //默认卷标
//第一分区的终止柱面,格式输入为:+sizeMB
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):+1024MB
Command (m for help): n //创建一个分区
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (126-2610, default 126):
Using default value 126
Last cylinder, +cylinders or +size{K,M,G} (126-2610, default 2610): 1024MB
Command (m for help): p //打印分区信息
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: 0x98fefa90
//分区信息列表
Device Boot Start End Blocks Id System
/dev/sdb1 1 125 1004031 83 Linux //第一分区
/dev/sdb2 126 1024 7221217+ 83 Linux //第二分区
Command (m for help): w //执行保存操作
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
l 在分区上建立文件系统(格式化)
[root@CentOS-Test /]# mkfs.ext4 /dev/sdb1
l 把分区挂载到系统中
手动挂载:此种方式挂载在系统重启后不会自动挂载
[root@CentOS-Test /]# mount /dev/sdb1 /bak
[root@CentOS-Test /]#mount all stuff from /etc/fstab //挂载所有的设备从fstab文件中
自动挂载:将挂载信息写入/etc/fstab文件中
加入如下信息:
/dev/sdb1 /web ext4 defaults 0 2
/dev/sdb2 /bak ext4 defaults 0 2
这样重启后就会自动挂载
修改完/etc/fstab时,应该用 mount -a将所以设备挂载进行测试 ,这时mount读取/etc/fstab中内容进行挂载,如果/etc/fstab的条目无错误,则mount -a后无显示,表示挂载成功;如有错误,则根据提示排查。
卸载:[root@CentOS-Test /]# umount /dev/sdb1
3、/etc/fstab文件说明
[root@bys ~]# more /etc/fstab
dev/hdb3 /mnt/diskone ext3 defaults 1 2
第一列:设备名或者设备卷标名
指定你要挂载的文件系统的设备名称或块信息,也可以是远程的文件系统。
//把IP为192.168.1.56的远程主机上的/home/nfs/目录挂载到本机的/mnt/nfs /目录之下。
mount 192.168.1.56:/home/nfs /mnt/nfs/ -o nolock
如果要把它写进/etc/fstab文件中,file system这部分应填写为:/192.168.1.56:/home/nfs/。
如果想把本机上的某个设备(device)挂载上来,写法如:/dev /sda1、/dev/hda2或/dev/cdrom
第二列:设备挂载目录(例如上面的“/”或者“/mnt/D/”)
挂载点,也就是自己找一个或创建一个dir(目录),然后把文件系统<fie sysytem>挂到这个目录上,然后就可以从这个目录中访问要挂载文件系统。对于swap分区,这个域应该填写:none,表示没有挂载点。
第三列:设备文件系统 (例如上面的“ext3”或者“vfat”)
第四列:挂载参数 (看帮助man mount)
第五列:指明是否要备份。(0为不备份,1为要备份,一般根分区要备份)
第六列:指明自检顺序。(0为不自检,1或者2为要自检,如果是根分区要设为1,其他分区只能是2)
3、 对于/etc/fstab文件操作有误造成系统不能启动的解决方法
装入安装盘,选择 linux rescue模式,这时分区都挂到 /mnt/sysimage 下
根据系统提示 chroot /mnt/sysimage获取读写权限,然后就可以修改 fstab文件了。修改完后重启正常
4、 常用到的文件系统命令
1、 fdisk –l 查看磁盘信息
2、 df –h 查看分区挂载信息及使用情况
[root@CentOS-Test ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/sda1 9.7G 3.2G 6.0G 35% /
tmpfs 504M 260K 504M 1% /dev/shm
/dev/sda3 194M 60M 124M 33% /data
/dev/sr1 2.2G 2.2G 0 100% /media/RHEL_4-U7 i386 Disc 1
/dev/sdb1 966M 18M 899M 2% /web
/dev/sdb2 6.8G 144M 6.3G 3% /bak
备注:- device name,设备名,例如/dev/sda1。
- mount point,挂载点,是一个系统上存在的文件夹。
- fs-type,要挂载设备的类型,例如ext4。用man fstab可以查到支持的类型。
- options,挂载时采用的参数,一般是defaults。
- dump-freq和pass-num,一般都设置为0,启动时不检查要挂载的设备。
下面有个例子,分别挂载/dev/sdb1到/var/ftp,和/home/.isos到/var/ftp/pub/软件/isos。