Wednesday, August 13, 2008

虛擬硬碟擴增容量的方法

參考
http://www.howtoforge.com/linux_resizing_ext3_partitions_p2

查半天的心得 趕快寫下來以免忘記
linux 環境下

1) 先搞一個檔案來玩
dd if=/dev/zero of=disk bs=1M count=10

2) 格式化成ext3
/sbin/mkfs -t ext3 disk

3) 作一個mount point
mkdir aa

4) 用root mount 它 現在就有一個 10M 的虛擬硬碟
# mount -o loop disk aa

5) 寫點東西進去
# mkdir aa/thisIsSomething

6) 卸載
# umount aa

7) 加容量 10M 這個不能直接用
dd if=/dev/zero of=disk bs=1M count=10 conv=notrunc oflag=append

8) 把 journal 砍了
/sbin/tune2fs -O ^has_journal disk

9) resize
/sbin/e2fsck -f disk
/sbin/resize2fs disk

10) 加回 journal
/sbin/tune2fs -j disk

11) 用root mount 它 現在就有一個 20M 的虛擬硬碟
# mount -o loop disk aa

12) 資料沒有遺失
# la -al aa

建立虛擬硬碟以備份

因為實驗室的備份系統是架在windows上面的,所以用起來不方便,大小寫,還有一些連結的問題都很麻煩,最簡單的方式大概是建立一個虛擬硬碟來存檔案。詳情參考的是這裡的資料。

1)先把備份系統mount上來
smbmount //xxx.xxx.xxx.xxx/ag-simons /mnt/agsimons/ -o username="mpg-em\xxx"
cd /mnt/agsimons

2)建立一個虛擬硬碟檔案,不如就先來個40g吧,這也是我現在工作用的硬碟的大小,不過時間還滿長的,好像最快速度被網路卡限制住了:
dd if=/dev/zero of=virtualDiskImage count=40960 bs=1M

3)格式化成ext3好了
/sbin/mkfs -t ext3 -q disk-image

4)用root來mount它,這樣就有一個40g的ext3檔案系統了
# mount -o loop virtualDiskImage /mnt/vDisk

4)改個權限
# chown chieh.chieh /mnt/vDisk

5)新增一個資料夾
mkdir /mnt/vDisk/work-rdiff-backup

6)備份指令,使用 rdiff-backup
rdiff-backup ~/work/ /mnt/vDisk/work-rdiff-backup/