码迷,mamicode.com
首页 > 系统相关 > 详细

Linux磁盘管理

时间:2016-07-21 06:30:24      阅读:504      评论:0      收藏:0      [点我收藏+]

标签:linux磁盘管理


                                      Linux磁盘管理

  I/O Ports: I/O设备地址;

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

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

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

            设备号码:
                主设备号:major number, 标识设备类型
                次设备号:minor number, 标识同一类型下的不同设备

[root@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

[root@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


[root@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   


[root@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指令增加一个分区;
[root@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.

[root@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指令指定分区类型
[root@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指令来删除一个分区
[root@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

[root@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]

本文出自 “梁小明的博客” 博客,请务必保留此出处http://7038006.blog.51cto.com/7028006/1828237

Linux磁盘管理

标签:linux磁盘管理

原文地址:http://7038006.blog.51cto.com/7028006/1828237

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!