天天看點

磁盤管理之挂載擴容交換分區及其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,如需轉載請自行聯系原作者

繼續閱讀