Centos 將 Grub 寫入 虛擬磁盤的方法

   因爲Centos 下的Grub無法直接對虛擬磁盤進行寫Mbr操作,所以只能使用DD 工具進行復制。
   先將Mbr備份至文件,然後恢復到新的虛擬磁盤
 

  
  1.使用fdisk -l 確定MBR位置 
  
  2.備份MBR 
  
  dd if=/dev/sda1 of=/root/mbr bs=512 count=1 
  
  3.恢復MBR 
  
  dd if=/root/mbr of=/dev/sda1 bs=512 count=1 
  
  4.恢復分區表 
  
  dd if=/root/mbr of=/dev/sda1 bs=512 skip=446 count=66 
  
  注:mbr大小512 所以bs=512 count=1 
  
  bs=512 skip=446 count=66 用來確定分區表在備份文件中的位置 

Linux/UNIX命令dd簡介 

dd 是 Linux/UNIX 下的一個非常有用的命令,作用是用指定大小的塊拷貝一個文件,並在拷 
貝的同時進行指定的轉換。 
dd 的主要選項: 
指定數字的地方若以下列字符結尾乘以相應的數字: 
b=512, c=1, k=1024, w=2, xm=number m 
語法:dd [選項]   
if =輸入文件(或設備名稱)。   
of =輸出文件(或設備名稱)。   
ibs = bytes 一次讀取bytes字節,即讀入緩衝區的字節數。   
skip = blocks 跳過讀入緩衝區開頭的ibs*blocks塊。   
obs = bytes 一次寫入bytes字節,即寫入緩衝區的字節數。   
bs = bytes 同時設置讀/寫緩衝區的字節數(等於設置ibs和obs)。   
cbs = byte 一次轉換bytes字節。   
count=blocks 只拷貝輸入的blocks塊。   
conv = ASCII 把EBCDIC碼轉換爲ASCIl碼。   
conv = ebcdic 把ASCIl碼轉換爲EBCDIC碼。   
conv = ibm 把ASCIl碼轉換爲alternate EBCDIC碼。   
conv = block 把變動位轉換成固定字符。   
conv = ublock 把固定位轉換成變動位。   
conv = ucase 把字母由小寫轉換爲大寫。   
conv = lcase 把字母由大寫轉換爲小寫。   
conv = notrunc 不截短輸出文件。   
conv = swab 交換每一對輸入字節。   
conv = noerror 出錯時不停止處理。   
conv = sync 把每個輸入記錄的大小都調到ibs的大小(用NUL填充)。 
轉換參數: 
ascii 轉換 EBCDIC 爲 ASCII。 
ebcdic 轉換 ASCII 爲 EBCDIC。 
ibm 轉換 ASCII 爲 alternate EBCDIC. 
block 把每一行轉換爲長度爲 cbs 的記錄,不足部分用空格填充。 
unblock 
使每一行的長度都爲 cbs ,不足部分用空格填充。 
lcase 把大寫字符轉換爲小寫字符。 
ucase 把小寫字符轉換爲大寫字符。 
swab 交換輸入的每對字節。 Unlike the 
Unix dd, this works when an odd number of 
bytes are read. If the input file contains 
an odd number of bytes, the last byte is 
simply copied (since there is nothing to 
swap it with). 
noerror 
出錯時不停止。 
notrunc 
不截短輸出文件。 
sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊。 
由於 dd 命令允許二進制方式讀寫,所以特別適合在原始物理設備上進行輸入/輸出。例如可 
以用下面的命令爲軟盤建立鏡像文件: 
dd if=/dev/fd0 of=disk.img bs=1440k 
有趣的是,這個鏡像文件能被 HD-Copy ,Winimage 等工具軟件讀出。再如把第一個硬盤的前 
512 個字節存爲一個文件: 
dd if=/dev/hda of=disk.mbr bs=512 count=1 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章