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

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,磁盘管理)