mount Windows smbfs
我的 image 是放在 Windows 中,先在 Ubuntu 透過 smbfs 的方式將 image 所在的路徑 mount 進來。
連線的相關資訊假設如下:
- Windows Share 資源路徑 : //192.168.2.100/Downloads
- Windows Username : abc
- Windows Password : 123456
- Mount point : /media/smb
執行底下的指令
sudo mount -t smbfs -o username=abc,password=123456 //192.168.2.100/Downloads /media/smb成功的話,應該就可以看到 Windows 分享出來的檔案了。
確認 image 的內容
切換到放 image 檔案的目錄中後,我們可以執行底下的指令來查看 Raspberry PI 的 image (假設檔名為: 2013-02-09-wheezy-raspbian.img) 是什麼內容:
file 2013-02-09-wheezy-raspbian.img查到的結果應該和下面的類似:
2013-02-09-wheezy-raspbian.img: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 114688 sectors; partition 2: ID=0x83, starthead 165, startsector 122880, 3665920 sectors, code offset 0xb8它是一個 block device ,我們可以看到它帶有兩個分割區,ID=0xc 表示為 FAT32 的分割區,ID=0x83 表示為 Linux 的分割區。
另外,我們也可以執行底下的指令來查看:
sfdisk -uS -l 2013-02-09-wheezy-raspbian.img結果應該和下面的類似:
Disk 2013-02-09-wheezy-raspbian.img: cannot get geometry
Disk 2013-02-09-wheezy-raspbian.img: 235 cylinders, 255 heads, 63 sectors/track
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
2013-02-09-wheezy-raspbian.img1 8192 122879 114688 c W95 FAT32 (LBA)
2013-02-09-wheezy-raspbian.img2 122880 3788799 3665920 83 Linux
2013-02-09-wheezy-raspbian.img3 0 - 0 0 空
2013-02-09-wheezy-raspbian.img4 0 - 0 0 空
特別注意 Units = sectors of 512 bytes 那行,及 Linux 那個 partition 的設定,因為後面在 mount 時,需要用到這裡的數字來算分割區在 image 檔案中的起點。以這裡的例子來說,底下兩個數字要記下來:
- Units : 512
- Start : 1228800
mount
有了前面分割區的相關資料,接下來,我們就可以執行下面的指令來將 image 中的 Linux 分割區 mount 在目錄樹中了。
sudo mount -o loop,offset=$(( 512 * 122880 )) 2013-02-09-wheezy-raspbian.img /media/image上面的指令將 Raspberry PI 的 image 檔案 (2013-02-09-wheezy-raspbian.img) 由 512*122880 bytes 開始的資料 mount 在 /media/image 目錄上。
成功的話,執行 mount 指令,應該會多一行類似下面的資訊:
/dev/loop0 on /media/image type ext4 (rw,offset=62914560)接著,就可以自由的切換到 /media/image 中去修改 Raspberry PI image 檔案中的內容了。
下面是我執行 ls -l 看到的內容:
總計 92
drwxr-xr-x 2 root root 4096 2013-02-09 10:00 bin
drwxr-xr-x 2 root root 4096 2013-02-09 09:31 boot
drwxr-xr-x 3 root root 4096 2013-02-09 10:00 dev
drwxr-xr-x 95 root root 4096 2013-02-09 11:42 etc
drwxr-xr-x 3 root root 4096 2013-02-09 09:24 home
drwxr-xr-x 12 root root 4096 2013-02-09 09:50 lib
drwx------ 2 root root 16384 2013-02-09 08:46 lost+found
drwxr-xr-x 2 root root 4096 2013-02-09 08:47 media
drwxr-xr-x 2 root root 4096 2012-12-26 13:12 mnt
drwxr-xr-x 3 root root 4096 2013-02-09 09:27 opt
drwxr-xr-x 2 root root 4096 2012-12-26 13:12 proc
drwx------ 2 root root 4096 2013-02-09 08:47 root
drwxr-xr-x 7 root root 4096 2013-02-09 10:13 run
drwxr-xr-x 2 root root 4096 2013-02-09 10:00 sbin
drwxr-xr-x 2 root root 4096 2012-06-20 17:23 selinux
drwxr-xr-x 2 root root 4096 2013-02-09 08:47 srv
drwxr-xr-x 2 root root 4096 2012-11-27 17:13 sys
drwxrwxrwt 2 root root 4096 2012-12-26 13:12 tmp
drwxr-xr-x 10 root root 4096 2013-02-09 08:47 usr
drwxr-xr-x 11 root root 4096 2013-02-09 08:47 var
umount
當我們修改完 image 檔案中的內容後,別忘了把它 umount ,執行底下的指令:
sudo umount /media/image上面的指令是將原本掛載在 /media/image 的資源卸除。
沒有留言:
張貼留言