天天看点

磁盘管理之挂载扩容交换分区及其dd命令

一、磁盘挂载回忆小结    

1、挂载磁盘可用的方法

1)设备名进行挂载    2)卷标挂载    3)UUID挂载(此方法常用,UUID为随机生成,唯一性确保挂载成功)   

2、文件挂载配置文件详解 

/etc/fstab每行代表的意义,如下:

1)挂载的设备或伪文件系统    2)挂载点    3)文件系统类型    4)挂载选项    5)转储频率    6)自检次序 

演示:

1

2

3

4

5

<code>tmpfs                   </code><code>/dev/shm</code>                <code>tmpfs   defaults        0 0</code>

<code>devpts                  </code><code>/dev/pts</code>                <code>devpts  gid=5,mode=620  0 0</code>

<code>sysfs                   </code><code>/sys</code>                    <code>sysfs   defaults        0 0</code>

<code>UUID=</code><code>"39208cf4-4d84-430b-ab53-7a26ad9d786d"</code> <code>/mnt/lv0</code>  <code>ext4  defaults  0 0</code>

<code>UUID=240533cf-b37f-4460-974f-702bab867da5 /                       ext4    defaults        1 1</code>

二、挂载交换分区

swapon命令:

    swapon, swapoff - enable/disable devices and files for paging and swapping

    启用:swapon  swapon [OPTOIONS] [DEVICE]

    禁用:swapoff [OPTOINS] [DEVICE]

    选项:

        -a:激活所有的交换分区 

        -p:priority,设置优先级  

        -s:查看swapon分区 

        使用mkswap写入特殊签名 

swap优先级:

用户可以给某个swap指定一个0到32767的优先级,如果用户没有指定,那么核心会自动给swap指定一个优 先级,这个优先级从-1开始,每加入一个新的没有用户 指定优先级的swap,会给这个优先级减一。 

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

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

<code>[root@centos6 ~]</code><code># fdisk /dev/sdb</code>

<code>WARNING: DOS-compatible mode is deprecated. It's strongly recommended to</code>

<code>         </code><code>switch off the mode (</code><code>command</code> <code>'c'</code><code>) and change display </code><code>units</code> <code>to</code>

<code>         </code><code>sectors (</code><code>command</code> <code>'u'</code><code>).</code>

<code>Command (m </code><code>for</code> <code>help): p</code>

<code>Disk </code><code>/dev/sdb</code><code>: 128.8 GB, 128849018880 bytes</code>

<code>255 heads, 63 sectors</code><code>/track</code><code>, 15665 cylinders</code>

<code>Units = cylinders of 16065 * 512 = 8225280 bytes</code>

<code>Sector size (logical</code><code>/physical</code><code>): 512 bytes / 512 bytes</code>

<code>I</code><code>/O</code> <code>size (minimum</code><code>/optimal</code><code>): 512 bytes / 512 bytes</code>

<code>Disk identifier: 0x9d14d54e</code>

<code>   </code><code>Device Boot      Start         End      Blocks   Id  System</code>

<code>Command (m </code><code>for</code> <code>help): n</code>

<code>Command action</code>

<code>   </code><code>e   extended</code>

<code>   </code><code>p   primary partition (1-4)</code>

<code>p</code>

<code>Partition number (1-4): 1</code>

<code>First cylinder (1-15665, default 1):</code>

<code>Using default value 1</code>

<code>Last cylinder, +cylinders or +size{K,M,G} (1-15665, default 15665): +2G</code>

<code>/dev/sdb1</code>               <code>1         262     2104483+  83  Linux</code>

<code>Command (m </code><code>for</code> <code>help): t</code>

<code>Selected partition 1</code>

<code>Hex code (</code><code>type</code> <code>L to list codes): 82</code>

<code>Changed system </code><code>type</code> <code>of partition 1 to 82 (Linux swap / Solaris)</code>

<code>/dev/sdb1</code>               <code>1         262     2104483+  82  Linux swap / Solaris</code>

<code>Command (m </code><code>for</code> <code>help): w</code>

<code>The partition table has been altered!</code>

<code>Calling ioctl() to re-</code><code>read</code> <code>partition table.</code>

<code>Syncing disks.</code>

<code>[root@centos6 ~]</code><code># mkswap /dev/sdb1</code>

<code>Setting up swapspace version 1, size = 2104476 KiB</code>

<code>no label, UUID=443bb126-8dc0-45a3-acfe-9a37629bb511</code>

<code>[root@centos6 ~]</code><code># vi /etc/fstab</code>

<code>[root@centos6 ~]</code><code># blkid /dev/sdb1</code>

<code>/dev/sdb1</code><code>: UUID=</code><code>"443bb126-8dc0-45a3-acfe-9a37629bb511"</code> <code>TYPE=</code><code>"swap"</code>

<code>[root@centos6 ~]</code><code># tail -1 /etc/fstab</code>

<code>UUID=443bb126-8dc0-45a3-acfe-9a37629bb511 swap                    swap    defaults        0 0</code>

<code>[root@centos6 ~]</code><code># mount -a</code>

<code>[root@centos6 ~]</code><code># swapon -s</code>

<code>FilenameTypeSizeUsedPriority</code>

<code>/dev/sda5</code>                               <code>partition41943000-1</code>

<code>[root@centos6 ~]</code><code># swpapon -a</code>

<code>-</code><code>bash</code><code>: swpapon: </code><code>command</code> <code>not found</code>

<code>[root@centos6 ~]</code><code># swapon -a</code>

<code>/dev/sdb1</code>                               <code>partition21044760-2</code>

<code>[root@centos6 ~]</code><code># cat /etc/fstab |grep "/dev/sdb1"</code>

<code>/dev/sdb1</code>               <code>swap                     swap   defaults,pri=100  0 0</code>

<code>[root@centos6 ~]</code><code># swapoff /dev/sdb1</code>

<code>[root@centos6 ~]</code><code># swapon -p 100 /dev/sdb1</code>

<code>/dev/sdb1</code>                               <code>partition21044760100</code>

<code>[root@centos6 ~]</code><code># free -m</code>

<code>             </code><code>total       used       </code><code>free</code>     <code>shared    buffers     cached</code>

<code>Mem:           980        455        525          0         30        273</code>

<code>-/+ buffers</code><code>/cache</code><code>:        151        829</code>

<code>Swap:         6151          0       6151</code>

<code>[root@centos6 ~]</code><code># touch /swapfile</code>

<code>[root@centos6 ~]</code><code># mkswap /swapfile</code>

<code>mkswap: error: swap area needs to be at least 40 KiB</code>

<code>Usage: mkswap [-c] [-pPAGESZ] [-L label] [-U UUID] </code><code>/dev/name</code> <code>[blocks]</code>

<code>[root@centos6 ~]</code><code># dd if=/dev/sda1 of=/swapfile  bs=1M count=2</code>

<code>记录了2+0 的读入</code>

<code>记录了2+0 的写出</code>

<code>2097152字节(2.1 MB)已复制,0.0225383 秒,93.0 MB/秒</code>

<code>[root@centos6 ~]</code><code>#</code>

<code>mkswap: </code><code>/swapfile</code><code>: warning: don't erase bootbits sectors</code>

<code>        </code><code>on whole disk. Use -f to force.</code>

<code>Setting up swapspace version 1, size = 2044 KiB</code>

<code>no label, UUID=c865d3b4-0edb-4d31-9a1a-985e74f1c2a5</code>

<code>Filename                Type        Size    Used    Priority</code>

<code>/dev/sda5</code>                               <code>partition    4194300 0   -1</code>

<code>/dev/sdb1</code>                               <code>partition    2104476 0   100</code>

<code>/swapfile</code>                               <code>file</code>     <code>2044    0   100</code>

三、dd工具

dd命令:

    dd - convert and copy a file

用法:dd=if=/path/from/src of=/path/to/desti        

      bs=block size    count=#  

示例:

磁盘拷贝:

dd if=/dev/sdb of=/dev/sdc  

备份MBR:  

dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1  

破坏MBR中的扇区:

dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446    

实战练习:

有一个大于2K的二进制文件fileA。现在想从第64个字节位置 开始读取,需要读取的大小是128Byts。又有fileB, 想把上 面读取到的128Bytes写到第32个字节开始的位置,替换 128Bytes,请问如何实现? 

答案:dd if=fielA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc 

备份:

dd if=/dev/sdz of=/dev/sdy  #将本地的/dev/sdz备份到/dev/sdy  

dd if=/dev/sdx of=/path/to/image #将本地的sdx备份到相应的文件

dd if=/dev/sda|gzip &gt;/path/to/images.gz #备份并压缩  

恢复:

dd if=/path/to/images.gz of=/dev/sdz #将备份文件恢复到指定盘 

gzip -dc /path/to/image.gz | dd of=/dev/sdx #将压缩的备份文件恢复到指定盘

四、磁盘修复小技巧   

注意:/etc/fstab 设备名出错,自检非0,开机会导致无法启动,修复方法如下:小编就不一一演示,想要成功的掌握知识点,就得多动手。。

方法一:

1)关机重启输入密码

2)输入如下命令,并修改/etc/fstab文件,重启即可。

mount -o remount,rw /

方法二:

进入救援模式,重新修改/etc/fstab配置文件

本文转自chengong1013 51CTO博客,原文链接:http://blog.51cto.com/purify/1844054,如需转载请自行联系原作者

继续阅读