高级Linux运维工程师必备技能(扫盲篇)

本文是高级Linux运维工程师的扫盲篇,涵盖了创建交换分区、获取IDE磁盘信息、磁盘挂载、查看磁盘及内存使用状态等关键技能。通过对比dd和cp命令,解释了dd处理速度快的原因,并列举了dd的常用参数及其应用场景。
摘要由CSDN通过智能技术生成

                      高级Linux运维工程师必备技能(扫盲篇)

                                            作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

  在了解文件系统之前,我们要学习一下磁盘存储数据的方式,大家都知道文件从内存若要持久化存储的话就得把它存到硬盘上,想毕都知道文件存入磁盘都是二进制存取的。那么硬盘是如何存储的呢?我们现在标配基本上都是1T呢,现在都是2017了,500G的硬盘都已经遭嫌弃了。
                      
1.生活小知识。
  上面是一幅图可以看到,有磁头,而且这个磁头是悬浮在盘面上的,如果这个盘面有震动,很可能直接滑到盘面,导致上面写的数据被划掉,造成数据丢失,因此,我们在购买硬盘的时候都写着不能强剧烈震动。 硬盘在工作的时候,这个盘面一直在转,如果访问里面的数据,需要一定时间,我们称之为“平均寻道时间”。 把不同盘面上的相同磁道(可以理解就是盘面上的一个圈,整个盘面有好多个这个样的打圈小圈形成的)划分成同一个分区内部。那么这些维护不同盘面的相同编号的磁道我们成为柱面(cylinder). 磁盘划分实际上是按照柱面划分的,那么很显然在最外层的柱面划分出来的分区的性能是最好的,你可能会问为什么?原因很简单,就是在相同的角速度中,最外层的周长是最大(也就意味着它存储的数据将越多)。因此我们在划分分区的时候依次划分C,D,E硬盘,最先划分的是C盘(分区软件默认把C盘划分到最外层),因此大家都用C盘做系统盘是有原因的哟!
 
2.MBR分区
在整块硬盘的最外侧磁道上,在第零("0")个扇区上,这个扇区是不能用来划分区的,因为这个扇区上存放着整块磁盘的分区信息。这个分区通常被称作为MBR(Master Boot Record,主引导记录 )分区(现在都流行GPT分区了),这个扇区仅仅占用了512个字节(bytes),你可别小看这512bytes,
a>.它保函了引导加载器(bootloader,其占用了446bytes);
b>.fat,即分区表,其占用了64bytes,每16bytes一个分区,总共只能分区4个[据说比尔盖茨层发表过言论:“硬盘这么小,有谁能用到多余4个分区呢?)【当时的硬盘都很小而且特别贵,只有几百兆(M)大小】”;
c>.5A,其为十六进制的“5A”,占用最后2个字节,用来标记这个MBR分区是否是有效数据的(2个字节被填充了2个5A,MBR有效性标记)。
硬盘内部都是真空的,为什么呢?因为它要旋转,有的硬盘的转速高达1.5w/m,如果不坐车真空的这么高的转速很容易和真空中的微粒发生碰撞,导致温度过高!所以不要轻易拆开硬盘,基本上你拆开就不是真空了,即使拆开后能用,也用不了多长时间就会坏掉的。
 
3.扩展分区与逻辑分区
随着硬盘的存储数据进一步的增长,我们分区4个是远远够用的,因此需要从4个主分区中拿出一个分区单独,用来存放其他的分区信息我们叫它为“扩展分区”,如果这个扩展分区足够大,就可以对其进行划分多个分区让不同用户使用。因此这个扩展分区(引用额外的分区表)是不能被格式化的,这样它就不能被使用,需要额外划分出一个或多个逻辑分区才能被使用。
 
4.MBR分区方法
a>.4个主分区
b>.3个主分区和一个扩展分区。
注意:MBR最大支持2T的硬盘。大于2TB就得使用GPT分区格式!
 
5.硬盘接口
DMA:Direct Memory Access (直接内存访问机制)
磁盘设备存放于/dev/文件夹下,
IDE接口的磁盘:/dev/hda、/dev/hdb、/dev/hdc、/dev/hdd
SCSI接口的磁盘:/dev/sda、/dev/sdb、/dev/sdc、/dev/sdd
/dev/XdYZ
/dev/ 表示的是一个设备目录
X h IDE硬盘
s SATA、SISC、U盘
Y a 第一块硬盘
b 第二块硬盘
c 第三块硬盘
。。。。。。。。。。
 
Z 1-3表示主分区,4一般为扩展分区
5是逻辑分区第一个分区
6是逻辑分区第二个分区
。。。。。。。。。。
a>.IDE(ATA):并口,每个控制器可接两个硬盘,master/slave,133MB/S(这个速率就是被淘汰的根部原因)
/dev/hd[a-z](注意:在Centos6.x版本以后,所有的硬盘即便是IDE接口的都被识别为sd,早起的设备被设置为hd)
/dev//hda[1-4](标识4个主分区)
/dev/hda[5+](逻辑分区5开始)
b>.SCSI:Small Computer System Interface (小型计算机接口,在读取数据上效率很高,因为它有单独的SCSI控制器,容错能力强且抗衰老【但是价格贵啊,相同存储空间是机械硬盘的8倍价格呢!】) 速率:320mb/s 也是并口的 (有的人为了省钱用IDE做raid阵列)
c>.SATA(Serial):300Mbps,600Mbps,6Gbps
d>.SAS:6Gbps
e>.USB:2.0接口: 3.0接口:

 

6.查看系统是如何识别磁盘分区的
 1 [root@yinzhengjie ~]# cat /proc/partitions  #查看系统识别的分区
 2 major minor  #blocks  name
 3 
 4    8        0  292968750 sda
 5    8       16  292968750 sdb
 6    9      127  278290432 md127
 7  259        0     512000 md127p1
 8  259        1  277777408 md127p2
 9  253        0   52428800 dm-0
10  253        1   33038336 dm-1
11  253        2  192307200 dm-2
12 [root@yinzhengjie ~]# 
  注意:如果你对你的硬盘剩余的空间进行分区后,新加的分区信息内核是不能识别的,需要内核去重读硬件的分区表,重启是不顶事的!我在生产环境中就遇到过这么一个坑。
 
7.根在内核
  根做为访问文件的入口,那么这个根到底在硬盘上呢?还是在操作系统上呢?根实际上是在内核中,我们访问数据都是操作系统将这个硬盘挂在到了根下,然后我们去访问它而已。那你又会问了,那内核在哪啊?答案是在磁盘上。
实际上,在装载内核之前,先启动的是bootloader(内核未启动就还没有文件系统存在),bootloader区磁盘上找到内核并启动,内核启动后会自动生成一个“/”(根),并将磁盘的文件都挂在到“/”下,这就形成了文件系统。
 
8.linux目录
 1 /bin,/sbin                         #存放系统自身完成自己的启动和基本运行机制索要提供的程序;。
 2 /usr/bin,/usr/sbin                  #存放完成操作系统基本功能的所提供的二进制程序;
 3 /usr/local/bin,/usr/local/sbin      #存放第三方程序;
 4 /lib,/lib64,/usr/lib,/usr/lib64     #存放库文件的;
 5 /etc/                             #存放配置文件的;
 6 /media,/mnt                      #用于挂在的目录,当然你也可以自定义的;
 7 /dev                             #存放各种设备文件;
 8 /proc,/sys                         #存放运行中的内存映射数据;
 9 /home,/root                      #存放各普通用户的家目录,比如 /home/yinzhengjie;
10 /var                               #存放日志的目录;
11 /opt,/misc                         #触发挂在目录;
12 /srv                             #存放服务相关数据的;
13 /tmp                             #存放各种临时文件,每次关机时自动清理;
14 /boot                           #存放内核、引导菜单等启动文件;
 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
 5 #EMAIL:y1053419035@qq.com
 6 
 7 '''
 8 /:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
 9 
10 /bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
11 
12 /boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小200M即可
13 
14 /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。
15 
16 /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。
17 
18 注:/etc/X11存放与x windows有关的设置。
19 
20 /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
21 
22 /lib:/usr/lib:/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。
23 
24 /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found
25 
26 /mnt:/media:光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。
27 
28 /opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
29 
30 /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
31 
32 /root:系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
33 
34 /sbin:/usr/sbin:/usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。
35 
36 /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
37 
38 /srv:服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
39 
40 /usr:应用程序存放目录,/usr/bin存放应用程序,/usr/share存放共享数据,/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc:系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间
41 
42 /var:放置系统执行过程中经常变化的文件,如随时更改的日志文件/var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间
43 '''
Linux目录详细版本,猛戳这里!!
 
9.用来对设备进行分区的命令
用于分区的管理工具:fdisk,sfdisk,parted
a>.查看分区信息
 1 [root@yinzhengjie ~]# fdisk -l /dev/[sh]d[a-z]  #使用文件名通配过滤掉没有用的信息(不是正则表达式哟),可以看出下面只有2个硬盘
 2 
 3 Disk /dev/sda: 21.5 GB, 21474836480 bytes
 4 255 heads, 63 sectors/track, 2610 cylinders
 5 Units = cylinders of 16065 * 512 = 8225280 bytes
 6 Sector size (logical/physical): 512 bytes / 512 bytes
 7 I/O size (minimum/optimal): 512 bytes / 512 bytes
 8 Disk identifier: 0x00059922
 9 
10    Device Boot(是否可引导)      Start         End      Blocks   Id(对应文件系统的ID)  System
11 /dev/sda1   *(*表示可以引导)           1          39      307200   83  Linux
12 Partition 1 does not end on cylinder boundary.
13 /dev/sda2              39        2358    18631680   83  Linux
14 /dev/sda3            2358        2611     2031616   82  Linux swap / Solaris
15 
16 Disk /dev/sdb: 10.7 GB, 10737418240 bytes
17 255 heads, 63 sectors/track, 1305 cylinders
18 Units = cylinders of 16065 * 512 = 8225280 bytes
19 Sector size (logical/physical): 512 bytes / 512 bytes
20 I/O size (minimum/optimal): 512 bytes / 512 bytes
21 Disk identifier: 0x00000000
22 
23 [root@yinzhengjie ~]# 
b>虚拟文件系统
              
 
VFS:(Virtual File System)#虚拟文件系统
基本文件系统:Ext3,Ext3,Ext4,Reiserfs(早起的suse用的就是该文件系统哟),xfs(支持单个巨大的文件),JFS(日志文件系统,IBM开发的),vfat,NTFS
交换分区:swap
集群文件系统:GFS2(红帽系统研发,谷歌都再用呢),OCFS2(甲骨文公司研发,用的人不多)
网络文件系统:NFS,smbfs(window是CIFS)
光盘:iso9660
c>.对磁盘进行分区
 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
 5 #EMAIL:y1053419035@qq.com
 6 
 7 '''
 8 fdisk:
 9     d 删除分区
10     n:新建一个分区
11     p:列出已有分区
12     t:调至分区ID
13     l:列出内核支持的分区id
14     w:保存退出
15     q:不保存退出 
16     m:帮助
17 '''
  1 #!/usr/bin/env python
  2 #_*_coding:utf-8_*_
  3 #@author :yinzhengjie
  4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
  5 #EMAIL:y1053419035@qq.com
  6 
  7 '''
  8 [root@yinzhengjie ~]# fdisk /dev/sdb  #对第二块硬盘进行分区
  9 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
 10 Building a new DOS disklabel with disk identifier 0x8614a108.
 11 Changes will remain in memory only, until you decide to write them.
 12 After that, of course, the previous content won't be recoverable.
 13 
 14 Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
 15 
 16 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
 17          switch off the mode (command 'c') and change display units to
 18          sectors (command 'u').
 19 
 20 Command (m for help): m  #查看帮助
 21 Command action
 22    a   toggle a bootable flag
 23    b   edit bsd disklabel
 24    c   toggle the dos compatibility flag
 25    d   delete a partition
 26    l   list known partition types
 27    m   print this menu
 28    n   add a new partition
 29    o   create a new empty DOS partition table
 30    p   print the partition table
 31    q   quit without saving changes
 32    s   create a new empty Sun disklabel
 33    t   change a partition's system id
 34    u   change display/entry units
 35    v   verify the partition table
 36    w   write table to disk and exit
 37    x   extra functionality (experts only)
 38 
 39 Command (m for help): p  #列出已有分区
 40 
 41 Disk /dev/sdb: 10.7 GB, 10737418240 bytes
 42 255 heads, 63 sectors/track, 1305 cylinders
 43 Units = cylinders of 16065 * 512 = 8225280 bytes
 44 Sector size (logical/physical): 512 bytes / 512 bytes
 45 I/O size (minimum/optimal): 512 bytes / 512 bytes
 46 Disk identifier: 0x8614a108
 47 
 48    Device Boot      Start         End      Blocks   Id  System
 49 
 50 Command (m for help): n   #新建一个分区
 51 Command action
 52    e   extended   #扩展分区
 53    p   primary partition (1-4)  #主分区
 54 p  #选择主分区
 55 Partition number (1-4): 1  #选择编号
 56 First cylinder (1-1305, default 1):  #选择分区的起始点,默认为1
 57 Using default value 1
 58 Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +1G  #创建一个1G的主分区
 59 
 60 Command (m for help): n  #再新建一个分区
 61 Command action
 62    e   extended
 63    p   primary partition (1-4)
 64 p   #选择类型为主分区
 65 Partition number (1-4): 2  #设置编号为2
 66 First cylinder (133-1305, default 133):
 67 Using default value 133
 68 Last cylinder, +cylinders or +size{K,M,G} (133-1305, default 1305): +1G  #创建一个1G的分区
 69 
 70 Command (m for help): n   #再新建一个分区
 71 Command action
 72    e   extended
 73    p   primary partition (1-4)
 74 p #选择类型为主分区
 75 Partition number (1-4): 3  #这只编号为3
 76 First cylinder (265-1305, default 265):
 77 Using default value 265
 78 Last cylinder, +cylinders or +size{K,M,G} (265-1305, default 1305): +2G  #创建一个2G的分区
 79 
 80 Command (m for help): n  #再新建一个分区
 81 Command action
 82    e   extended
 83    p   primary partition (1-4)
 84 e  #由于已经设置了3个主分区了,所以我将第四个分区设置为扩展分区,便于我创建更多的逻辑分区
 85 Selected partition 4
 86 First cylinder (527-1305, default 527):
 87 Using default value 527
 88 Last cylinder, +cylinders or +size{K,M,G} (527-1305, default 1305):
 89 Using default value 1305
 90 
 91 Command (m for help): p  #列出已有分区
 92 
 93 Disk /dev/sdb: 10.7 GB, 10737418240 bytes
 94 255 heads, 63 sectors/track, 1305 cylinders
 95 Units = cylinders of 16065 * 512 = 8225280 bytes
 96 Sector size (logical/physical): 512 bytes / 512 bytes
 97 I/O size (minimum/optimal): 512 bytes / 512 bytes
 98 Disk identifier: 0x8614a108
 99 
100    Device Boot      Start         End      Blocks   Id  System
101 /dev/sdb1               1         132     1060258+  83  Linux   #这就是主分区,ID为83
102 /dev/sdb2             133         264     1060290   83  Linux
103 /dev/sdb3             265         526     2104515   83  Linux
104 /dev/sdb4             527        1305     6257317+   5  Extended  #折就是扩展分区,ID为5
105 
106 Command (m for help): n  #新建一个分区
107 First cylinder (527-1305, default 527):
108 Using default value 527
109 Last cylinder, +cylinders or +size{K,M,G} (527-1305, default 1305): +5G  #创建一个5G的逻辑分区。
110 
111 Command (m for help): P   #列出已有分区
112 
113 Disk /dev/sdb: 10.7 GB, 10737418240 bytes
114 255 heads, 63 sectors/track, 1305 cylinders
115 Units = cylinders of 16065 * 512 = 8225280 bytes
116 Sector size (logical/physical): 512 bytes / 512 bytes
117 I/O size (minimum/optimal): 512 bytes / 512 bytes
118 Disk identifier: 0x8614a108
119 
120    Device Boot      Start         End      Blocks   Id  System
121 /dev/sdb1               1         132     1060258+  83  Linux   #主分区
122 /dev/sdb2             133         264     1060290   83  Linux
123 /dev/sdb3             265         526     2104515   83  Linux
124 /dev/sdb4             527        1305     6257317+   5  Extended  #扩展分区
125 /dev/sdb5             527        1180     5253223+  83  Linux   #这就是新建的逻辑分区
126 
127 Command (m for help): W  #保存退出
128 
129 验证是否分区成功:
130 [root@yinzhengjie ~]# fdisk /dev/sdb
131 
132 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
133          switch off the mode (command 'c') and change display units to
134          sectors (command 'u').
135 
136 Command (m for help): p
137 
138 Disk /dev/sdb: 10.7 GB, 10737418240 bytes
139 255 heads, 63 sectors/track, 1305 cylinders
140 Units = cylinders of 16065 * 512 = 8225280 bytes
141 Sector size (logical/physical): 512 bytes / 512 bytes
142 I/O size (minimum/optimal): 512 bytes / 512 bytes
143 Disk identifier: 0x8614a108
144 
145    Device Boot      Start         End      Blocks   Id  System
146 /dev/sdb1               1         132     1060258+  83  Linux
147 /dev/sdb2             133         264     1060290   83  Linux
148 /dev/sdb3             265         526     2104515   83  Linux
149 /dev/sdb4             527        1305     6257317+   5  Extended
150 /dev/sdb5             527        1180     5253223+  83  Linux
151 
152 Command (m for help): q
153 
154 [root@yinzhengjie ~]#
155 '''
用fdisk 工具对磁盘进行分区过程
 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
 5 #EMAIL:y1053419035@qq.com
 6 
 7 #让操作系统重读分区表,获取最新的分区信息。
 8 '''
 9 [root@yinzhengjie ~]# cat /proc/partitions  #查看系统识别的分区,发现没有我们的分区
10 major minor  #blocks  name
11 
12    8        0  292968750 sda
13    8       16  292968750 sdb
14    9      127  278290432 md127
15  259        0     512000 md127p1
16  259        1  277777408 md127p2
17  253        0   52428800 dm-0
18  253        1   33038336 dm-1
19  253        2  192307200 dm-2
20 [root@yinzhengjie ~]#
21 [root@yinzhengjie ~]# kpartx -l /dev/sdb  #列出已添加的所有分区信息
22 sdb1 : 0 2120517 /dev/sdb 63
23 sdb2 : 0 2120580 /dev/sdb 2120580
24 sdb3 : 0 4209030 /dev/sdb 4241160
25 sdb4 : 0 2 /dev/sdb 8450190
26 sdb5 : 0 10506447 /dev/sdb 8450253
27 [root@yinzhengjie ~]# kpartx -af /dev/sdb   #强行添加分区信息
28 [root@yinzhengjie ~]# kpartx -a /dev/sdb    #重读分区表信息
29 [root@yinzhengjie ~]#
30 [root@yinzhengjie ~]# ls /dev/sdb*          #发现系统以及识别了这几个分区
31 /dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdb3  /dev/sdb4  /dev/sdb5
32 [root@yinzhengjie ~]#
33 [root@yinzhengjie ~]# cat /proc/partitions  #查看分区表
34 major minor  #blocks  name
35 
36    8        0   20971520 sda
37    8        1     307200 sda1
38    8        2   18631680 sda2
39    8        3    2031616 sda3
40    8       16   10485760 sdb
41    8       17    1060258 sdb1
42    8       18    1060290 sdb2
43    8       19    2104515 sdb3
44    8       20          1 sdb4
45    8       21    5253223 sdb5
46  253        0    1060258 dm-0
47  253        1    1060290 dm-1
48  253        2    2104515 dm-2
49  253        3          1 dm-3
50  253        4    5253223 dm-4
51 [root@yinzhengjie ~]#
52 
53 '''
54 
55 
56 #提示,如果你的操作系统是Centos5的话执行以下命令就好使了
57 [root@yinzhengjie ~]# partprobe   #但是这个条命令不适合CentOs6!
用kpartx 让系统重读分区表
 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
 5 #EMAIL:y1053419035@qq.com
 6 
 7 '''
 8 [root@yinzhengjie ~]# fdisk /dev/sdb
 9 
10 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
11          switch off the mode (command 'c') and change display units to
12          sectors (command 'u').
13 
14 Command (m for help): p  #查看当前分区
15 
16 Disk /dev/sdb: 10.7 GB, 10737418240 bytes
17 255 heads, 63 sectors/track, 1305 cylinders
18 Units = cylinders of 16065 * 512 = 8225280 bytes
19 Sector size (logical/physical): 512 bytes / 512 bytes
20 I/O size (minimum/optimal): 512 bytes / 512 bytes
21 Disk identifier: 0x8614a108
22 
23    Device Boot      Start         End      Blocks   Id  System
24 /dev/sdb1               1         132     1060258+  83  Linux
25 /dev/sdb2             133         264     1060290   83  Linux
26 /dev/sdb3             265         526     2104515   83  Linux
27 /dev/sdb4             527        1305     6257317+   5  Extended
28 /dev/sdb5             527        1180     5253223+  83  Linux
29 
30 Command (m for help): d  #删除分区
31 Partition number (1-5): 5  #选择相应的编号,在她给定的数值内选取哟
32 
33 Command (m for help): p #发现已经删除成功了
34 
35 Disk /dev/sdb: 10.7 GB, 10737418240 bytes
36 255 heads, 63 sectors/track, 1305 cylinders
37 Units = cylinders of 16065 * 512 = 8225280 bytes
38 Sector size (logical/physical): 512 bytes / 512 bytes
39 I/O size (minimum/optimal): 512 bytes / 512 bytes
40 Disk identifier: 0x8614a108
41 
42    Device Boot      Start         End      Blocks   Id  System
43 /dev/sdb1               1         132     1060258+  83  Linux
44 /dev/sdb2             133         264     1060290   83  Linux
45 /dev/sdb3             265         526     2104515   83  Linux
46 /dev/sdb4             527        1305     6257317+   5  Extended
47 
48 Command (m for help): w   #保存配置并退出
49 The partition table has been altered!
50 
51 Calling ioctl() to re-read partition table.
52 Syncing disks.
53 [root@yinzhengjie ~]#
54 
55 
56 '''
用fdisk删除分区信息
  1 #!/usr/bin/env python
  2 #_*_coding:utf-8_*_
  3 #@author :yinzhengjie
  4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
  5 #EMAIL:y1053419035@qq.com
  6 
  7 '''
  8 [root@yinzhengjie ~]# fdisk /dev/sdb
  9 
 10 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
 11          switch off the mode (command 'c') and change display units to
 12          sectors (command 'u').
 13 
 14 Command (m for help): p #查看当前分区信息
 15 
 16 Disk /dev/sdb: 10.7 GB, 10737418240 bytes
 17 255 heads, 63 sectors/track, 1305 cylinders
 18 Units = cylinders of 16065 * 512 = 8225280 bytes
 19 Sector size (logical/physical): 512 bytes / 512 bytes
 20 I/O size (minimum/optimal): 512 bytes / 512 bytes
 21 Disk identifier: 0x8614a108
 22 
 23    Device Boot      Start         End      Blocks   Id  System
 24 /dev/sdb1               1         132     1060258+  83  Linux
 25 /dev/sdb2             133         264     1060290   83  Linux
 26 /dev/sdb3             265         526     2104515   83  Linux   #主分区
 27 /dev/sdb4             527        1305     6257317+   5  Extended
 28 
 29 Command (m for help): t  #调整分区ID
 30 Partition number (1-5): 3  #选择分区标号
 31 Hex code (type L to list codes): L  #查看ID对应的文件系统类型。
 32 
 33  0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
 34  1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 35  2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 36  3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 37  4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx
 38  5  Extended        42  SFS             86  NTFS volume set da  Non-FS data
 39  6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 40  7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility
 41  8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt
 42  9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access
 43  a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O
 44  b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor
 45  c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs
 46  e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT
 47  f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
 48 10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
 49 11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor
 50 12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor
 51 14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary
 52 16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS
 53 17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
 54 18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
 55 1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep
 56 1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT
 57 1e  Hidden W95 FAT1
 58 Hex code (type L to list codes): 82  #选择 Linux swap / So分区类型
 59 Changed system type of partition 3 to 82 (Linux swap / Solaris)
 60 
 61 Command (m for help): P #查看当前类型
 62 
 63 Disk /dev/sdb: 10.7 GB, 10737418240 bytes
 64 255 heads, 63 sectors/track, 1305 cylinders
 65 Units = cylinders of 16065 * 512 = 8225280 bytes
 66 Sector size (logical/physical): 512 bytes / 512 bytes
 67 I/O size (minimum/optimal): 512 bytes / 512 bytes
 68 Disk identifier: 0x8614a108
 69 
 70    Device Boot      Start         End      Blocks   Id  System
 71 /dev/sdb1               1         132     1060258+  83  Linux
 72 /dev/sdb2             133         264     1060290   83  Linux
 73 /dev/sdb3             265         526     2104515   82  Linux swap / Solaris  #果真已经变成了交换分区
 74 /dev/sdb4             527        1305     6257317+   5  Extended
 75 
 76 Command (m for help): t  #修改分区类型
 77 Partition number (1-5): 3  #还是选择之前修改的分区
 78 Hex code (type L to list codes): 83  #修改会之前的分区类型
 79 Changed system type of partition 3 to 83 (Linux)
 80 
 81 Command (m for help): p  #查看分区情况
 82 
 83 Disk /dev/sdb: 10.7 GB, 10737418240 bytes
 84 255 heads, 63 sectors/track, 1305 cylinders
 85 Units = cylinders of 16065 * 512 = 8225280 bytes
 86 Sector size (logical/physical): 512 bytes / 512 bytes
 87 I/O size (minimum/optimal): 512 bytes / 512 bytes
 88 Disk identifier: 0x8614a108
 89 
 90    Device Boot      Start         End      Blocks   Id  System
 91 /dev/sdb1               1         132     1060258+  83  Linux
 92 /dev/sdb2             133         264     1060290   83  Linux
 93 /dev/sdb3             265         526     2104515   83  Linux
 94 /dev/sdb4             527        1305     6257317+   5  Extended
 95 
 96 Command (m for help): w  #保存当前配置
 97 The partition table has been altered!
 98 
 99 Calling ioctl() to re-read partition table.
100 Syncing disks.
101 [root@yinzhengjie ~]#
102 '''
用fdisk修改分区类型
 
10.创建文件系统
                        

 

  你可以使用2个扇区(512字节)为一个块(block),那么这个一个快的大小就是1kb,4个扇区就是2kb,8个扇区就是4kb.那么问题来了,这个每个单位的块导师是1kb好呢?还是2kb或是4kb好呢?这就要看你存储的数据的大小了,如果你存储的数据是大文件的话,当然block越大越好,这样block存储相同的数据block越大,用的块数就越少,如果你存储的是小文件的话,当然block越小越好,因为block过大,存进去的数据却很小就造成了浪费!(因为一个block只能存储一个数据源)。
  注意,在存储数据的时候,一个block只能属于一个文件,不能同时属于2个文件。硬连接除外,其实硬链接指的还是一同一个文件。也就是说,不同的文件不能使用相同的磁盘块。这些磁盘块都有其编号的,是为了方便数据源(主要是inode)只想存储数据的块(block)
  磁盘碎片,就是不是连续的块(block)存储着属于同一个文件的数据,这样就导致了在存取的时候特别麻烦,大大的降低了磁盘的工作效率。如下图:
                            

 

  日志文件系统是可以将源数据(indoe)和块数据都写入日志区,等都写入成功了在把数据分别写入到源数据区和块数据区,假如你才写文档的时候,如果突然断电,恰巧你刚刚好写完数据,那么他回将数据分别写入indoe和block区域中,如果你没有写完,他就会对比在日志区的inode和block对应的是否完整,如果不完整,日志区会自动将Inode删除,清除掉不完整的block,就完成了一次自检模式。
                              
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com

'''

mke2fs:
   配置文件:/etc/mke2fs.conf
   -t:指定文件类型{ext2|ext3|ext4}
   -j:用于创建Ext3文件系统,相当于-t ext3
   -L label: 指定卷标,
   -b{
       1024|2028|4096}:指定块大小
   
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值