建立及掛載虛擬記憶檔案

  1. 硬碟分割槽規劃為 swap:
    1. fdisk /dev/hd[a-d] 先建立一個 partition,並於其命令列輸入 t (change a partition's system id),將該 partition 的 ID 改為 82 (swap 硬碟檔案格式代號)。
    2. mkswap /dev/hd[a-d][1-16] 將剛剛建置的 partition 格式化為 swap 的檔案格式。
    3. swapon /dev/hd[a-d][1-16] 將 swap 啟動。
    4. 若不使用 swap ,則以 swapoff /dev/hd[a-d][1-16] 關掉 swap 。

  2. 建立一個虛擬記憶體的檔案:
    1. dd:把指定的輸入文件拷貝到指定的輸出文件中,並且在拷貝過程中可以進行格式轉換。
      語法:dd [選項]  
      if=輸入文件(或設備名稱)。 
      of=輸出文件(或設備名稱)。 
      ibs=bytes 一次讀取 bytes 數。
      obs=bytes 一次寫入 bytes 數。 
      bs=bytes 同時設置讀/寫緩衝區的位元數(設置 ibs 和 obs)。
      count = blocks 只拷貝輸入的 blocks 。
       
      ## 例1:將一軟碟的內容拷貝到另一張軟碟上,利用 /tmp 作為臨時儲存區。 
      $ dd if=/dev/fd0 of=/tmp/tmpfile  
      ## 拷貝完成,將軟碟取出,把另一軟碟插入,輸入命令: 
      $ dd if=/tmp/tmpfile of=/dev/fd0 
      ## 軟盤拷貝完成,應該將臨時文件刪除: 
      $ rm /tmp/tmpfile  
       
      ## 例2:把檔案 net.i 寫入軟碟中(軟碟中的內容會被完全覆蓋掉),並設定讀/寫緩衝區的數目。 
      $ dd if=net.i of=/dev/fd0 bs=16384    
       
      ## 例3:將檔案 sfile 拷貝到 dfile 中。  
      $ dd if=sfile of=dfile  
      
      ## 例4:備份 /dev/hda 的 MBR
      [root@dywOffice ~]# dd if=/dev/hda of=/tmp/mbr.back bs=512 count=1
      
    2. 以 dd 指令來建立 swapfile;
      [root@dywOffice ~]# dd if=/dev/zero of=/tmp/swap bs=4k count=16382
      
      #/dev/zero is a special file that provides as many null characters
      #(ASCII NULL, 0x00; not ASCII character "digit zero", "0", 0x30) 
      #as are read from it.
      
    3. 以 mkswap 將 swapfile 格式化為 swap 的檔案格式;
    4. 以 swapon 啟動該檔案,使成為 swap;
    5. 以 swapoff 來關閉該檔案。

練習題

  1. 如何將分割為 swap 的磁區 /dev/hda2,格式化為 swap 的檔案格式?
    Sol. mkswap /dev/hda2
  2. 如何將格式化為 swap 的磁區 /dev/hda2 啟動?
    Sol. swapon /dev/hda2
  3. 如何將格式化為 swap 的磁區 /dev/hda2 關閉?
    Sol. swapoff /dev/hda2
  4. 如何以指令 dd 將整個軟碟的內容拷貝成檔案 /tmp/tmpfile?
    Sol. dd if=/dev/fd0 of=/tmp/tmpfile
  5. 如何以指令 dd 將檔案 /tmp/tmpfile 拷貝到軟碟?
    Sol. dd if=/tmp/tmpfile of=/dev/fd0
  6. 如何以指令 dd 將檔案 /tmp/foo1 拷貝到 /tmp/foo2?
    Sol. dd if=/tmp/foo1 of=/tmp/foo2
  7. 如何以指令 dd 備份 /dev/hda 的 MBR 到 /tmp/mbr.back ?
    Sol. dd if=/dev/hda of=/tmp/mbr.back bs=512 count=1