1、如何复制设备文件
设备号码:
主设备号:major number, 标识设备类型
次设备号:minor number, 标识同一类型下的不同设备
[root@centos6 app]#cp -a /dev/zero .
[root@centos6 app]#ll
total 0
crw-rw-rw-. 1 root root 1, 5 Jul 31 13:25 zero
[root@centos6 app]#ll /dev/zero
crw-rw-rw-. 1 root root 1, 5 Jul 31 13:25 /dev/zero
[root@centos6 app]#mknod /app/zero2 c 1 5 ---c表示字符设备 1和5分别表示主设备号和次设备号
[root@centos6 app]#ll
total 0
crw-rw-rw-. 1 root root 1, 5 Jul 31 13:25 zero
crw-r--r--. 1 root root 1, 5 Jul 31 17:06 zero2
[root@centos6 app]#ll /dev/sda1
brw-rw----. 1 root disk 8, 1 Jul 31 13:25 /dev/sda1
[root@centos6 app]#mknod /app/sda1 b 8 1
[root@centos6 app]#ll
total 0
brw-r--r--. 1 root root 8, 1 Jul 31 17:15 sda1
crw-rw-rw-. 1 root root 1, 5 Jul 31 13:25 zero
crw-r--r--. 1 root root 1, 5 Jul 31 17:06 zero2
[root@centos6 app]#mount /app/sda1 /mnt/sda
[root@centos6 app]#df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 50264772 4783956 42920816 11% /
tmpfs 502056 224 501832 1% /dev/shm
/dev/sda3 40185208 49016 38088192 1% /app
/dev/sda1 991512 34904 905408 4% /boot
/dev/sr0 3878870 3878870 0 100% /media/CentOS_6.9_Final
/app/sda1 991512 34904 905408 4% /mnt/sda
[root@centos6 app]#cd /mnt/sda/
[root@centos6 sda]#ls
config-2.6.32-696.el6.x86_64 grub lost+found System.map-2.6.32-696.el6.x86_64
efi initramfs-2.6.32-696.el6.x86_64.img symvers-2.6.32-696.el6.x86_64.gz vmlinuz-2.6.32-696.el6.x86_64
总结:复制设备文件可以用cp -a
,也可以用mknod
,复制分区后可以用于挂载,进入挂载的目录,看到的内容和复制的分区内容是一样的。
2、parted 管理分区
- 创建gpt分区
[root@centos6 ~]#parted /dev/sdb mklabel gpt ---声明是要创建gpt分区
[root@centos6 ~]#parted /dev/sdb mkpart primary 1 1024 ---创建分区
Information: You may need to update /etc/fstab.
[root@centos6 ~]#parted /dev/sdb print ---打印分区
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 1024MB 1023MB primary
[root@centos6 ~]#parted /dev/sdb mkpart primary 1025 2048 ---创建第二个分区
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? ignore
Information: You may need to update /etc/fstab.
[root@centos6 ~]#parted /dev/sdb print ---打印分区
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 1024MB 1023MB primary
2 1025MB 2048MB 1023MB primary
root@centos6 ~]#dd if=/dev/zero of=/dev/sdb bs=1 count=512 ---破坏gpt分区的前512个字节
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00419461 s, 122 kB/s
[root@centos6 ~]#parted /dev/sdb print ---打印分区后仍然有分区表
Warning: /dev/sdb contains GPT signatures, indicating that it has a GPT table.
However, it does not have a valid fake msdos partition table, as it should.
Perhaps it was corrupted -- possibly by a program that doesn't understand GPT
partition tables. Or perhaps you deleted the GPT table, and are now using an
msdos partition table. Is this a GPT partition table?
Yes/No? yes
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 1024MB 1023MB primary
2 1025MB 2048MB 1023MB primary
总结:gpt分区破坏前512个字节后仍然有分区表,因为gpt分区后面还要备份的分区表,并不是都在0扇区内,因此gpt分区比较安全。
- 创建MBR分区
[root@centos6 ~]#parted /dev/sdb mklabel msdos ---指定是要创建MBR分区
[root@centos6 ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos ---显示标签为mbr分区
Number Start End Size Type File system Flags
[root@centos6 ~]#parted /dev/sdb mkpart extend 1 1024 ---创建一个扩展分区
Information: You may need to update /etc/fstab.
[root@centos6 ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 1024MB 1023MB extended lba
[root@centos6 ~]#parted /dev/sdb mkpart primary 1025 2048 ---创建一个主分区
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore
Information: You may need to update /etc/fstab.
[root@centos6 ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 1024MB 1023MB extended lba
2 1025MB 2048MB 1023MB primary
[root@centos6 ~]#parted /dev/sdb mkpart logical 5 500 ---创建一个逻辑分区
Information: You may need to update /etc/fstab.
[root@centos6 ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 1024MB 1023MB extended lba
5 5243kB 500MB 495MB logical
2 1025MB 2048MB 1023MB primary
[root@centos6 ~]#dd if=/dev/zero of=/dev/sdb bs=1 count=64 skip=446 seek=446 ---破坏分区表的64个字节
64+0 records in
64+0 records out
64 bytes (64 B) copied, 0.0014034 s, 45.6 kB/s
[root@centos6 ~]#fdisk -l /dev/sdb ---此时已经没有分区表信息
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x000e89e3 ---仍然显示有分区。只是不显示分区表
Device Boot Start End Blocks Id System
[root@centos6 ~]#hexdump -C /dev/sdb -n 512 ---55A标记位还有
00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |................|
00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..|
00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u|
00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..|
00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........|
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001b0 00 00 00 00 00 00 00 00 e3 89 0e 00 00 00 00 00 |................|
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|
00000200
[root@centos6 ~]#dd if=/dev/zero of=/dev/sdb bs=1 count=66 skip=446 seek=446 ---破坏66个字节后55A标记位也被破坏
66+0 records in
66+0 records out
66 bytes (66 B) copied, 0.00180802 s, 36.5 kB/s
[root@centos6 ~]#hexdump -C /dev/sdb -n 512
00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |................|
00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..|
00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u|
00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..|
00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........|
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001b0 00 00 00 00 00 00 00 00 e3 89 0e 00 00 00 00 00 |................|
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
[root@centos6 ~]#fdisk -l /dev/sdb ---此时不显示分区信息
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x000e89e3
[root@centos6 ~]#parted /dev/sdb rm 5 ---删除分区
总结:MBR分区破坏分区表后就无法显示分区表,分区就被破坏,但仍然显示有分区。只有破坏55A标记位后才彻底显示没有分区了。
parted对gpt和mbr分区都可以进行管理和创建,但的操作都是实时生效的,小心使用。
3、复制一个磁盘的分区给另外一个磁盘
[root@centos6 ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 3.7G 0 rom /media/CentOS_6.9_Final
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1000M 0 part /boot
├─sda2 8:2 0 48.8G 0 part /
├─sda3 8:3 0 39.1G 0 part /app
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 100G 0 disk
├─sdb1 8:17 0 976M 0 part
├─sdb2 8:18 0 975.6M 0 part
├─sdb3 8:19 0 1.9G 0 part
└─sdb4 8:20 0 1.8G 0 part
sdc 8:32 0 150G 0 disk
sdd 8:48 0 80G 0 disk
[root@centos6 ~]#dd if=/dev/sda of=mbr bs=1 count=512 ---备份/dev/sda 的分区表信息
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00149843 s, 342 kB/s
[root@centos6 ~]#ls
acl.txt Documents f3 mbr Public
anaconda-ks.cfg Downloads install.log Music Templates
Desktop f1 install.log.syslog Pictures Videos
[root@centos6 ~]#dd if=mbr of=/dev/sdb ---将/dev/sda分区表信息拷贝到/dev/sdb
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.00501896 s, 102 kB/s
[root@centos6 ~]#fdisk -l /dev/sdb ---可以看出只复制了四个分区,第五个逻辑分区并没有覆盖
Warning: invalid flag 0x0000 of partition table 5 will be corrected by w(rite)
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x000838ae
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 128 1024000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2 128 6502 51200000 83 Linux
/dev/sdb3 6502 11601 40960000 83 Linux
/dev/sdb4 11601 26109 116530176 5 Extended
总结:MBR分区的0磁道0扇区只保存主分区和扩展分区的分区表,逻辑分区的分区表在扩展分区的0扇区,不在前512的字节内,每一个逻辑分区的前面都有一个分区表,用来指明逻辑分区从哪到哪。
4、fdisk管理MBR分区
[root@centos6 ~]#fdisk /dev/sdb
Command (m for help): m
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)
总结:fdisk管理MBR分区很方便,根据提示一步一步的完成就可以,如果记不住可以输入m看帮助信息。
5、gdisk管理gpt分区
[root@centos6 ~]#gdisk /dev/sdc
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present
Creating new GPT entries.
Command (? for help): ?
b back up GPT data to a file
c change a partition's name
d delete a partition
i show detailed information on a partition
l list known partition types
n add a new partition
o create a new empty GUID partition table (GPT)
p print the partition table
q quit without saving changes
r recovery and transformation options (experts only)
s sort partitions
t change a partition's type code
v verify disk
w write table to disk and exit
x extra functionality (experts only)
? print this menu
Command (? for help):