标签: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磁盘管理
原文地址:http://7038006.blog.51cto.com/7028006/1828237