磁盘格式化和挂载

磁盘格式化和挂载

磁盘Inode相关理解

  • Inode size:128或者512 #这个是Inode表拥有的大小,这个表大小有关的是:

 

  1、一个Inode支持管理多大的文件,毕竟文件的属性是归Inode管理的,而若Block size =1k,文件有1M那么

   这个Inode就需要记录1000个Block的信息,如果文件再大一点需要的开销就越大。所以1个inode可以对应多个block,但是

   只对应一个文件


    1个inode可以有12个表指向block,inode记录1个block需要消耗4byte,12个也才48byte,那还有80byte呢,这里面

   还记录了一些数据的属性,而且inode记录block号码的区域定义为:12直接(就是前面指的48byte),1个间接,1个双间接,1个三间接

      这些东西都是记录在inode里(128byte),而用间接举例:指向的间接,这个间接其实是一个block,这个block里记录的全是block号码

      (1个号码4byte,1k有256个),那1个inode支持多大的文件呢,1k*(12+256*1+256*256*1+256*256*256*1)=16843020k=16G(EXT2的理解)

  2、那inode和block还有什么关系,首先设备格式化后应该所有的都是block,比如1M格式化block size=1k那么格式化后就有1024个block,inode呢,inode就

         放在这些block里面,一下做个实验:

首先创建个1M的分区sdb2 1M:fdisk /dev/sdb


命令(输入 m 获取帮助):N
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):2
起始 扇区 (2099200-4194303,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-4194303,默认为 4194303):+1M
分区 2 已设置为 Linux 类型,大小设为 1 MiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xa8417aea

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     2101247        1024   83  Linux

然后格式化/dev/sdb2:kfs. ext4 -i 102400 /dev/sdb2# -i选项是和这个文件系统里创建多少个inode有关,不能和inode size混淆,这里是设置了100K,

设置这么大是为了后面实验的结果


[root@xujb01 mnt]# mkfs.ext4 -i 102400 /dev/sdb2
mke2fs 1.42.9 (28-Dec-2013)

文件系统小得无法记录日志
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
16 inodes, 1024 blocks
51 blocks (4.98%) reserved for the super user         #5%的block留给了超级用户用
第一个数据块=1
Maximum filesystem blocks=1048576
1 block group
8192 blocks per group, 8192 fragments per group
16 inodes per group

Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成

然后查看block和inode的一些细节:


[root@xujb01 mnt]# dumpe2fs /dev/sdb2
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          5b9108bb-78b7-4099-b927-97980a6023f0
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              16
Block count:              1024
Reserved block count:     51
Free blocks:              996
Free inodes:              5
First block:              1
Block size:               1024
Fragment size:            1024
Group descriptor size:    64
Reserved GDT blocks:      7
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         16
Inode blocks per group:   2
Flex block group size:    16
Filesystem created:       Sat Nov  4 14:59:33 2017
Last mount time:          n/a
Last write time:          Sat Nov  4 14:59:33 2017
Mount count:              0
Maximum mount count:      -1
Last checked:             Sat Nov  4 14:59:33 2017
Check interval:           0 (<none>)
Lifetime writes:          90 kB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:              128
Default directory hash:   half_md4
Directory Hash Seed:      c1ae307c-9896-4f68-859f-75fa73a69090

Group 0: (Blocks 1-1023)
  Checksum 0x2c0c, unused inodes 5
  主 superblock at 1, Group descriptors at 2-2
  保留的GDT块位于 3-9
  Block bitmap at 10 (+9), Inode bitmap at 26 (+25)
  Inode表位于 42-43 (+41)
  996 free blocks, 5 free inodes, 2 directories, 5个未使用的inodes
  可用块数: 25, 27-41, 44-1023
  可用inode数: 12-16

提取上面一些有用的信息”空闲inodes有5个,空闲blocks=996


inode size=128

block size=1024

inode count=16

block count=102

free inodes:5

free blocks:996

`

挂载:mount /dev/sdb2 /mnt/testdisk;cd testdisk/;ll -aihl


[root@xujb01 testdisk]# ll -aihl
总用量 17K
     2 drwxr-xr-x. 3 root root 1.0K 114 14:59 .
261123 drwxr-xr-x. 4 root root 4.0K 114 07:51 ..
    11 drwx------. 2 root root  12K 114 14:59 lost+found

[root@xujb01 testdisk]# dumpe2fs /dev/sdb2 |tail -n3
dumpe2fs 1.42.9 (28-Dec-2013)
  996 free blocks, 5 free inodes, 2 directories, 5个未使用的inodes
  可用块数: 25, 27-41, 44-1023
  可用inode数: 12-16

然后创建文件01,文件01 0字节大小,但是可以看到消耗了1K的容量(1个inode暂用的block),free少了1个inode和1个block


[root@xujb01 testdisk]# touch 01
[root@xujb01 testdisk]# ll -ahil
总用量 18K
     2 drwxr-xr-x. 3 root root 1.0K 11月  4 15:11 .
261123 drwxr-xr-x. 4 root root 4.0K 11月  4 07:51 ..
    12 -rw-r--r--. 1 root root    0 11月  4 15:11 01
    11 drwx------. 2 root root  12K 11月  4 14:59 lost+found

[root@xujb01 testdisk]# dumpe2fs /dev/sdb2 |tail -n3
dumpe2fs 1.42.9 (28-Dec-2013)
  995 free blocks, 4 free inodes, 2 directories, 4个未使用的inodes
  可用块数: 27-41, 44-1023
  可用inode数: 13-16

然后touch 02:free消耗了1个inode和,0个block,还增加了1K的容量


[root@xujb01 testdisk]# touch 02
[root@xujb01 testdisk]# ll -ilha
总用量 19K
     2 drwxr-xr-x. 3 root root 1.0K 11月  4 15:13 .
261123 drwxr-xr-x. 4 root root 4.0K 11月  4 07:51 ..
    12 -rw-r--r--. 1 root root    0 11月  4 15:11 01
    13 -rw-r--r--. 1 root root    0 11月  4 15:13 02
    11 drwx------. 2 root root  12K 11月  4 14:59 lost+found



[root@xujb01 testdisk]# dumpe2fs /dev/sdb2 |tail -n3
dumpe2fs 1.42.9 (28-Dec-2013)
  995 free blocks, 3 free inodes, 2 directories, 3个未使用的inodes
  可用块数: 27-41, 44-1023
  可用inode数: 14-16

inode表也是在block中,创建文件会消耗inode但是不会消耗block,(只是消耗inode表暂用的block)

dumpe2fs /dev/sdb查看文件系统信息

格式化磁盘

mkfs或者mkfs.ext4(看类型是什么有mkfs.xfs mkfs.ext3等)

mkfs -t ext4 -i 4096 -b 1024 -m 5 -I 128 /dev/sdb2

  • -t #格式化类型

  • -i #inode count

  • -b #block size

  • -m #预留super-user的容量

  • -I #inode size

挂载磁盘

mount

挂载文件 /etc/fstab

man fstab 中有各个字段的记录:

UUID=b1888f05-465e-4968-846b-af5ef83c9fd0 swap swap defaults 0 0

设备或者/dev/sdb2 挂载点 类型 ro、rw等属性   是否备份   开启启动磁盘检测优级

挂载wondows samba: mount -t cifs //192.168.180.114/11 /mnt/share -o username=share,password=123456,iocharset=utf8

blkid查看设备uid

                     

mount -t type -o (rw/r)/dev/sdb2 /mnt/testdisk #type一般自动会识别,默认是读写

默认选项:mount /dev/sdb2 /mnt/testdist #rw, suid, dev, exec, auto, nouser(默认不允许普通用户挂载), and async(默认先写入内存在到磁盘)

mount --bind test01 test02 #把test01 文件暂时挂载在test02位置上.

手动增加swap空间

  • dd if=/dev/zero of=/tmp/newdisk bs=1M count=1024 #创建1G文件

  • 格式化文件 mkswap -f /tmp/newdisk

  • free -h #查看增加swap前swap大小

  • swapon /tmp/newdisk #挂载虚拟内存

  • free -h #查看比较增加前后swap信息

posted on 2017-11-04 23:00  游荡的鱼  阅读(209)  评论(0)    收藏  举报

导航