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

Linux磁盘管理 3月23日课程笔记

2015-03-24 23:48 190 查看
linux磁盘管理

一、查看磁盘或者目录的容量
1、df:查看磁盘各分区使用情况,不加任何参数是以k为单位来显示的
df -i:查看inodes使用状况
df -h:使用合适单位来显示,根据容量的大小来使用G或者T或者M显示
df -m: 以M为单位显示
tmpfs需特别说明下:
[cheng@ftp ~]$ df -m
Filesystem           1M-blocks  Used Available Use% Mounted on
/dev/mapper/vg_ftp-lv_root
27662  3937     22314  15% /
tmpfs                      935     1       935   1% /dev/shm #935这的数字指的是内存大小的
/dev/sda1                  477    52       400  12% /boot     二分之一,这个数字可以自行
调整大小但是对内存没有影响
可以在/dev/shm中写东西,实际上是我们虚拟出来的一个内存,如果想把文件快速的写入到磁盘中,况且文件的重要性又不是很高,那么就可以写入到这个目录下。

2、du:查看整个目录,包含目录下的子目录和文件,不加参数以k为单位显示
du -s:列出总和
du -a:列出所有文件和目录
du -k:以k为单位 ,跟默认输出的值一样
du -m:以MB为单位
du -h:最合适的单位 最常用组合
du -c:显示目录的大小,也显示所有目录或文件的总合
du -c cheng:显示cheng这目录的大小
[root@ftp ~]# du -c cheng

du -sh /date1/
查看/date1/这个目录下所有文件的总和,并以合适的单位显示出来
[root@ftp /]# du -sh date1
24K	date1
ls -ldh /date1/这个只是查看/date1/这个目录本身的大小,并不能查看到目下的子目录和文件
[root@ftp /]# ls -ldh date1
drwxr-xr-x. 3 root root 4.0K 3月  26 15:39 date1


二、磁盘的分区和格式化
1、fdisk -l:查看磁盘和分区,只能查看2T一下的,大于2T用GPT

查看centos支持哪几种格式的分区类型
[root@web ~]# cat /etc/filesystems

iso9600
光盘的系统格式

fdisk如果不加命令,会进入一下模式:
root@ftp ~]# fdisk /dev/sda
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): #在这里根据自己的需要输入上面的选项


2、mkesfs:格式化磁盘分区
-t:指定文件的系统(ext2,ext3,ext4)
-L: 分区标签
root@ftp ~]# mke2fs -t ext4 /dev/sdb1 -L cheng
给sdb1分区指定分区表为cheng

mkfs也是格式化磁盘的命令,后面直接跟文.文件系统就可以了
root@ftp ~]# mkfs.ext4 /dev/sdb1

格式化/dev/sdb1分区,并且指定文件系统为ext3
root@ftp ~]# mke2fs -t ext4 /dev/sdb1

格式化磁盘之后出现的信息解释:
文件系统类型:类似于微软系统中的盘符

13253 blocks (5.00%) reserved for the super user
#这里的5%是留个系统管理员使用的,这里的大小也可以手动指定
#root@ftp ~]# mke2fs -t ext4 -m 1 /dev/sdb1
-m 1:表示的就是手动指定的预留分区为1%

块大小=4096 (log=2)
#块大小的单位是字节
#硬盘格式化的时候指定快的大小为1024字节
#root@ftp ~]# mke2fs -t ext4 -b 1024 /dev/sdb1

3、free:查看swap信息

三、 挂载、卸载磁盘分区
1、mount:不加任何选项和参数,查看已经挂载情况
[root@ftp /]# mount

把dev/sdb2分区挂载到/date2目录下
[root@ftp /]# mount /etc/sdb2 /date2

df -T:查看磁盘的分区类型
如果把两个分区挂载到同一个目录下,那么第二次挂载的分区会覆盖掉第一次挂载的

mount -o 后面跟各种选项,具体选项如下:
-o:主要用来描述设备或档案的挂接方式的
“async/sync” : async表示和磁盘和内存不同步,系统每隔一段时间把内存数据写入磁盘中,而sync则会时时同步内存和磁盘中数据;
“auto/noauto” : 开机自动挂载/不自动挂载
“default” : 按照大多数永久文件系统的缺省值设置挂载定义,它包含了rw, suid, dev, exec, auto, nouser, async
“ro” : 按只读权限挂载
“rw” : 按可读可写权限挂载

"loop":挂载iso镜像文件
monut -o loop linux.iso /mnt

--bind:挂载目录
monut --bind /home /cheng

“exec/noexec” : 允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,那就无法使用系统了,连mount命令都无法使用了,
这时只有重新做系统了;
“user/nouser” : 允许/不允许root外的其他用户挂载分区,为了安全考虑,请用nouser ;
“suid/nosuid” : 允许/不允许分区有suid属性,一般设置nosuid ;
“usrquota” : 启动使用者磁盘配额模式,磁盘配额相关内容在后续章节会做介绍;
“grquota” : 启动群组磁盘配额模式;

mount -a:加载文件"/etc/fstab"中描述的所有文件系统,其实也就是从新挂载。
需要注意的是如果挂载的分区没有写在配置文件中,那么就不会被挂载

2、 blkid:查询设备上锁采用的文件系统类型
[root@ftp ~]# blkid
查看硬盘分区的UUID

使用UUID来挂载分区
[root@ftp ~]# mount UUID="9001648b-45d0-4db9-b485-5da1f68a9b96" /date5

使用UUID的好处是,多块磁盘,如果在服务器上换了插槽位置,设备名会变,但UUID是唯一的

partprobe:重读分区表,当出现删除文件之后,任然在占用空间的时候,可以是这个目录在不重启的
情况下重读分区表

3、umout:卸载磁盘分区
umount /dev/sda1

umount后面直接跟挂载目录也可以卸载
umount /date2

umount -l:强制卸载
umount -l /dev/sda1

fsck:磁盘修复,一般很少用,修复之后可能会导致资料丢失

四、设置开机自动挂载
1、配置文件 /etc/fstab,启动的时候可以自动挂载
第一列就是分区的标识,可以LABEL,也可以UUID,当然也可以 (/dev/sda1);
第二列是挂载点;
第三列是分区的格式;
第四列则是mount的一些挂载参数,一般情况下,直接写defaults即可;
第五列的数字表示是否被dump备份,是的话这里就是1,否则就是0;第六列是开机时是否自检磁盘。1,2都表示检测,
0表示不检测,/ 分区必须设为1,而且整个fstab中只允许出现一个1,1比2优先级高,所以先检测1,然后再检测2,
如果有多个分区需要开机检测那么都设置成2吧,1检测完了后会同时去检测2。

2、把挂载命令写入/ect/rc.d/rc/local配置文件也可以

磁盘分区实验:
1、给系统添加一块硬盘,我增加的是一个10GB的硬盘
2、使用fdisk -l命令可来查看系统是否有我新添加的那一块硬盘
[root@ftp ~]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes  #这是我原有硬盘
255 heads, 63 sectors/track, 3916 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: 0x000742a0
Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        3917    30944256   8e  Linux LVM
Disk /dev/sdb: 10.7 GB, 10737418240 bytes   #这里就是我刚才添加的那一块硬盘,显示的大小是10.7GB,名称是sdb.
255 heads, 63 sectors/track, 1305 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
Disk /dev/mapper/vg_ftp-lv_root: 29.6 GB, 29603397632 bytes
255 heads, 63 sectors/track, 3599 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
Disk /dev/mapper/vg_ftp-lv_swap: 2080 MB, 2080374784 bytes
255 heads, 63 sectors/track, 252 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
[root@ftp ~]#
3、使用fdisk /dev/sdb对硬盘进行分区
[root@ftp ~]# 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 0xa7a62de8.
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): #在这里输入p查看当前磁盘的分区信息
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 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: 0xa7a62de8
Device Boot      Start         End      Blocks   Id  System
#显示的是空白,没有分区信息
Command (m for help):
4、使用n命令创建新的分区
Command (m for help): n
Command action
e extended #扩展分区
p primary partition (1-4) #主分区,主分区只能分为4个
5、输入p命令,回车
p
Partition number (1-4): 1  #这里的1表示的是第一个分区
First cylinder (1-1305, default 1): 1 #这里的是表示你要从那一个柱面开始,输入,直接回车默认的也是1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +1G #这是指你要给这个分区分配多的空间
6、使用4、5条继续给硬盘分区,给第一个主分区分为1G,第二个2G,第三个3G。
7、分扩展分区,然后给逻辑分区分为100M空间的大小
Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
e #输入e划分扩展分区
Selected partition 4
First cylinder (788-1305, default 788):
8、查询一下所创建的分区
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 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: 0x862208c6
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         132     1060258+  83  Linux
/dev/sdb2             133         394     2104515   83  Linux
/dev/sdb3             395         787     3156772+  83  Linux
/dev/sdb4             788        1305     4160835    5  Extended  #这个表示的是扩展分区
/dev/sdb5             788         801      112423+  83  Linux     #逻辑分区,逻辑分区的序号是以5开始的
9、输入wq保存退出
Command (m for help): wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
\Syncing disks
.

10、格式化刚才创建的分区
root@ftp ~]# mke2fs -t ext4 /dev/sdb1  #格式化第一块分区
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
66384 inodes, 265064 blocks
13253 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=272629760
9 block groups
32768 blocks per group, 32768 fragments per group
7376 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override
以刚才的方法格式化以下分区
root@ftp ~]# mke2fs -t ext4 /dev/sdb2
root@ftp ~]# mke2fs -t ext4 /dev/sdb3
root@ftp ~]# mke2fs -t ext4 /dev/sdb5

11、挂载磁盘,把刚才创建的4个分区分别挂载到date1,date2,date3,date4目录中去
[root@ftp /]# mount /dev/sdb1 /date1
12、使用df -h命令查看我们刚才挂载的硬盘信息
[root@ftp /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_ftp-lv_root
28G  3.7G   22G  15% /
tmpfs                 935M   72K  935M   1% /dev/shm
/dev/sda1             477M   52M  400M  12% /boot
/dev/sdb1             988M  1.3M  935M   1% /date1  #这里就是我们sdb1分区的挂载目录
/dev/sdb2             2.0G  3.1M  1.9G   1% /date2
/dev/sdb3             3.0G  4.6M  2.8G   1% /date3
/dev/sdb5             103M  1.6M   96M   2% /date5
13、用vim打开/etc/fstab文件,设置开机自动挂载,设置完成后wq推出并存。
dev/mapper/vg_ftp-lv_root /                       ext4    defaults        1 1
UUID=57b259bd-6076-4dfe-b232-24b97a3cd764 /boot                   ext4    defaults        1 2
/dev/mapper/vg_ftp-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/sdb1               /date1                    ext4  defaults        0 0 #要按照这个格式来写,1,2,3,5,这个几个分区进就
/dev/sdb2 #这里是分区   /date2 #这里是挂载点      ext4  defaults        0 0   是我们开机需要自动挂载的,要按照这个模式来写
/dev/sdb3               /date3                    ext4  defaults        0 0
/dev/sdb5               /date5                    ext4  defaults        0 0
小白实验笔记,不知之处还请打算指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 磁盘管理 cheng