设为首页 收藏本站
查看: 539|回复: 0

[经验分享] Linux磁盘管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-21 08:44:51 | 显示全部楼层 |阅读模式
I/O Ports: I/O设备地址;

    一切皆文件:
        open(), read(), write(), close()

        块设备:block,存取单位“块”,磁盘
        字符设备:char,存取单位“字符”,键盘

        设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信;

            设备号码:
                主设备号:major number, 标识设备类型
                次设备号:minor number, 标识同一类型下的不同设备
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[iyunv@MyServer ~]# ll /dev/
total 0
drwxr-xr-x 2 root root         680 Jul 18 13:22 block
drwxr-xr-x 2 root root        2420 Jul 18 13:22 char
crw------- 1 root root      5,   1 Jul 18 13:22 console
lrwxrwxrwx 1 root root          11 Jul 18 13:22 core -> /proc/kcore
drwxr-xr-x 4 root root          80 Jul 18 13:22 cpu
crw-rw---- 1 root root     10,  61 Jul 18 13:22 cpu_dma_latency
crw-rw---- 1 root root     10,  62 Jul 18 13:22 crash
drwxr-xr-x 5 root root         100 Jul 18 13:22 disk
brw-rw---- 1 root disk    253,   0 Jul 18 13:22 dm-0
brw-rw---- 1 root disk    253,   1 Jul 18 13:22 dm-1
brw-rw---- 1 root disk    253,   2 Jul 18 13:22 dm-2
lrwxrwxrwx 1 root root           3 Jul 18 13:22 fb -> fb0
crw-rw---- 1 root root     29,   0 Jul 18 13:22 fb0
lrwxrwxrwx 1 root root          13 Jul 18 13:22 fd -> /proc/self/fd
crw-rw-rw- 1 root root      1,   7 Jul 18 13:22 full
crw-rw-rw- 1 root root     10, 229 Jul 18 13:22 fuse
drwxr-xr-x 2 root root          40 Jul 18 13:22 hugepages
crw------- 1 root root    229,   0 Jul 18 13:22 hvc0
crw-rw---- 1 root dialout 229,   1 Jul 18 13:22 hvc1
crw-rw---- 1 root dialout 229,   2 Jul 18 13:22 hvc2
crw-rw---- 1 root dialout 229,   3 Jul 18 13:22 hvc3
crw-rw---- 1 root dialout 229,   4 Jul 18 13:22 hvc4
crw-rw---- 1 root dialout 229,   5 Jul 18 13:22 hvc5
crw-rw---- 1 root dialout 229,   6 Jul 18 13:22 hvc6
crw-rw---- 1 root dialout 229,   7 Jul 18 13:22 hvc7
drwxr-xr-x 2 root root         100 Jul 18 13:22 input
crw-rw---- 1 root root      1,  11 Jul 18 13:22 kmsg
srw-rw-rw- 1 root root           0 Jul 18 13:22 log
brw-rw---- 1 root disk      7,   0 Jul 18 13:22 loop0
brw-rw---- 1 root disk      7,   1 Jul 18 13:22 loop1
brw-rw---- 1 root disk      7,   2 Jul 18 13:22 loop2
brw-rw---- 1 root disk      7,   3 Jul 18 13:22 loop3
brw-rw---- 1 root disk      7,   4 Jul 18 13:22 loop4
brw-rw---- 1 root disk      7,   5 Jul 18 13:22 loop5
brw-rw---- 1 root disk      7,   6 Jul 18 13:22 loop6



主设备号7 次设备号5或者6
brw-rw---- 1 root disk      7,   5 Jul 18 13:22 loop5
brw-rw---- 1 root disk      7,   6 Jul 18 13:22 loop6

            硬盘接口类型:
                并行:
                    IDE:133MB/s
                    SCSI:640MB/s
                串口:
                    SATA:6Gbps
                    SAS:6Gbps
                    USB:480MB/s

                    rpm: rotations per minute


            /dev/DEV_FILE
                磁盘设备的设备文件命名:

                IDE: /dev/hd
                SCSI, SATA, SAS, USB: /dev/sd
                    不同设备:a-z
                        /dev/sda, /dev/sdb, ...
                    同一设备上的不同分区:1,2, ...
                        /dev/sda1, /dev/sda5

            机械式硬盘:
                track:磁道
                cylinder: 柱面
                secotr: 扇区
                    512bytes

                如何分区:
                    按柱面

                0磁道0扇区:512bytes
                    MBR: Master Boot Record
                        446bytes: boot loader
                        64bytes:分区表
                            16bytes: 标识一个分区
                        2bytes: 55AA

                        4个主分区;
                            3主分区+1扩展(N个逻辑分区)
                                逻辑分区

                问题:UEFI, GPT?

    分区管理工具:fdisk, parted, sfdisk
        fdisk:对于一块硬盘来讲,最多只能管理15分区;

        # fdisk -l [-u] [device...]

        # fdisk device
            子命令:管理功能
                p: print, 显示已有分区;
                n: new, 创建
                d: delete, 删除
                w: write, 写入磁盘并退出
                q: quit, 放弃更新并退出
                m: 获取帮助
                l: 列表所分区id
                t: 调整分区id

1
2
3
4
5
6
7
8
9
10
11
12
[iyunv@slave Desktop]# fdisk -l
Disk /dev/sda: 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: 0x0006e340
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          39      307200   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              39        2358    18631680   83  Linux
/dev/sda3            2358        2611     2031616   82  Linux swap / Solaris




[iyunv@slave Desktop]# fdisk   /dev/sda2

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
Partition number (1-4): 4
Partition 4 is already defined.  Delete it before re-adding it.

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
5
Invalid partition number for type `5'
Command action
   e   extended
   p   primary partition (1-4)
3
Invalid partition number for type `3'
Command action
   e   extended
   p   primary partition (1-4)
2
Invalid partition number for type `2'
Command action
   e   extended
   p   primary partition (1-4)
1
Invalid partition number for type `1'
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 4
Partition 4 is already defined.  Delete it before re-adding it.

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 3
First cylinder (129-2319, default 129):
Using default value 129
Last cylinder, +cylinders or +size{K,M,G} (129-2319, default 2319): +10M   



1
2
3
4
5
6
7
8
9
10
11
[iyunv@slave Desktop]# fdisk  -ls  /dev/sda2
Disk /dev/sda2: 19.1 GB, 19078840320 bytes
255 heads, 63 sectors/track, 2319 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: 0x4f138230
     Device Boot      Start         End      Blocks   Id  System
/dev/sda2p3             129         130       16065    5  Extended
/dev/sda2p4               1         128     1028128+  83  Linux
Partition table entries are not in disk order




总结
1、通过fdisk的n指令增加一个分区;
[iyunv@slave Desktop]# fdisk   /dev/sda2

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
   l   logical (5 or over)
   p   primary partition (1-4)
2
Invalid partition number for type `2'
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
3
Invalid partition number for type `3'
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (129-130, default 129):
Using default value 129
Last cylinder, +cylinders or +size{K,M,G} (129-130, default 130): 12K
Value out of range.
Last cylinder, +cylinders or +size{K,M,G} (129-130, default 130): 122M
Value out of range.
Last cylinder, +cylinders or +size{K,M,G} (129-130, default 130): +12K

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

[iyunv@slave Desktop]# fdisk  -ls  /dev/sda2

Disk /dev/sda2: 19.1 GB, 19078840320 bytes
255 heads, 63 sectors/track, 2319 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: 0x4f138230

     Device Boot      Start         End      Blocks   Id  System
/dev/sda2p3             129         130       16065    5  Extended
/dev/sda2p4               1         128     1028128+  83  Linux
/dev/sda2p5             129         129        8001   83  Linux

这里模拟测试,对已经分区的硬盘再分区(在工作中没有什么意义)

2、通过fdisk的t指令指定分区类型
[iyunv@slave Desktop]# fdisk   /dev/sda2

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): t
Partition number (1-5): 2
Partition 2 does not exist yet!

Command (m for help): 2p3
2: unknown command
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): t   
Partition number (1-5): 5
Hex code (type L to list codes): l

0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
5  Extended        42  SFS             86  NTFS volume set da  Non-FS data   
6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS   
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1
Hex code (type L to list codes): b
Changed system type of partition 5 to b (W95 FAT32)

Command (m for help): p

Disk /dev/sda2: 19.1 GB, 19078840320 bytes
255 heads, 63 sectors/track, 2319 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: 0x4f138230

     Device Boot      Start         End      Blocks   Id  System
/dev/sda2p3             129         130       16065    5  Extended
/dev/sda2p4               1         128     1028128+  83  Linux
/dev/sda2p5             129         129        8001    b  W95 FAT32

Partition table entries are not in disk order

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.

3、
fdisk 的退出,用q或者 w;
  其中 q是 不保存退出,w是保存退出;
  Command (m for help): w
  或
  Command (m for help): q

4、通过fdisk的d指令来删除一个分区
[iyunv@slave Desktop]# fdisk    /dev/sda2

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

Disk /dev/sda2: 19.1 GB, 19078840320 bytes
255 heads, 63 sectors/track, 2319 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: 0x4f138230

     Device Boot      Start         End      Blocks   Id  System
/dev/sda2p3             129         130       16065    5  Extended
/dev/sda2p4               1         128     1028128+  83  Linux
/dev/sda2p5             129         129        8001    b  W95 FAT32

Partition table entries are not in disk order

Command (m for help): d
Partition number (1-5): 5

Command (m for help):

linux分区类型

Command (m for help): l

0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
5  Extended        42  SFS             86  NTFS volume set da  Non-FS data   
6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS   
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1


查看内核是否已经识别新的分区:
            # cat /proc/partations

1
2
3
4
5
6
[iyunv@slave Desktop]# cat /proc/partitions
major minor  #blocks  name
   8        0   20971520 sda
   8        1     307200 sda1
   8        2   18631680 sda2
   8        3    2031616 sda3



        

        通知内核重新读取硬盘分区表:
            partx -a /dev/DEVICE
                -n M:N

            kpartx -a /dev/DEVICE
                -f: force

            CentOS 5: 使用partprobe
                partprobe [/dev/DEVICE]

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-247121-1-1.html 上篇帖子: date 命令详解 下篇帖子: linux中的命名管道(FIFO) Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表