linux系統遷移

在raspberry pi開發中,常常修改系統配置。有時候也不知道該了什麼東西,因此就製做了幾個鏡像來保存進度。linux

問題:ide

  1. 因爲sd卡的實際大小是不固定的,因此16G的系統鏡像有時候不能直接寫入。
  2. 若是用更大的sd卡去燒寫,那麼會有空間浪費。
  3. 完整的磁盤鏡像有不少冗餘空間。

所以,須要完成如下內容oop

  1. 將磁盤鏡像轉換成系統鏡像。
  2. 把系統鏡像拷貝到新的sd卡。
  3. 從新引導。

讀取磁盤鏡像

首先查看分區fdisk -ul xxx.img,再按p.net

Disk ros.ima: 14.9 GiB, 15924142080 bytes, 31101840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x87ec3003

Device     Boot Start      End  Sectors  Size Id Type
ros.ima1         8192    93814    85623 41.8M  c W95 FAT32 (LBA)
ros.ima2        94208 31116287 31022080 14.8G 83 Linux

     Device: ros.ima2
      Start: 94208
        End: 31116287
    Sectors: 31022080
  Cylinders: 1932
       Size: 14.8G
         Id: 83
       Type: Linux
Start-C/H/S: 5/24/220
  End-C/H/S: 1023/63/254

能夠看到ros.ima2的偏移量爲94208*512,鍵入sudo mount -o loop,offset=48234496 ros.ima /mnt/ras/
遺憾的是,出現以下錯誤:code

EXT4-fs (loop0): bad geometry: block count 3877760 exceeds size of device (3875954 blocks)orm

因爲磁盤鏡像的容量與內容大小不匹配,因此致使了這個問題。鏡像的實際容量應爲:3877760*4096 + 94208*512blog

truncate -s 15931539456  ros.ima 
sudo mount -o loop,offset=48234496 ros.ima /mnt/ras/

到此,成功加載磁盤鏡像。開發

備份系統

使用tar備份能夠減小系統的體積。 tar -cvpzf ros.tgz -C /mnt/ras/ .
備份時沒有剔除任何目錄,由於另外一個linux沒有運行,裏面沒有臨時文件。get

解壓的時候使用 tar -xvpzf ros.tgz -C /mntcmd

bootloader

樹莓派不是傳統的磁盤引導,而是會自動去尋找啓動分區。啓動分區和root分區的製做

所以只須要在cmdline.txt中填入正確的值就好了。
首先使用fdisk建立分區。
格式化分區 sudo mkfs.ext4 /dev/sdb2
解壓文件tar -xvpzf ros.tgz -C /media/ras

修改開機畫面

http://blog.csdn.net/zyf2539/...

相關文章
相關標籤/搜索