CubieTruck上把NAND重新分区取得7G大小

  • 内容
  • 评论
  • 相关

CubieTruck的規格有提及,它搭配的NAND Flash有8GB的大小,但是如果一開始灌好系統,用 df 指令觀看,你的NAND Flash卻只有 2GB的,點解?

#fdisk -l
Disk /dev/nand: 7700 MB, 7700742144 bytes
255 heads, 63 sectors/track, 936 cylinders, total 15040512 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
Disk identifier: 0x00000000
Disk /dev/nand doesn't contain a valid partition table
Disk /dev/nanda: 67 MB, 67108864 bytes
255 heads, 63 sectors/track, 8 cylinders, total 131072 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
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System

Disk /dev/nandb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders, total 4194304 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
Disk identifier: 0x00000000
Disk /dev/nandb doesn't contain a valid partition table
Disk /dev/nandc: 5469 MB, 5469372416 bytes
255 heads, 63 sectors/track, 664 cylinders, total 10682368 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
Disk identifier: 0xffffffff
Disk /dev/nandc doesn't contain a valid partition table

所以CubieTruck整個 NAND Flash 一開始被分割成三個分區,分別如下

分區 名稱 起始位置 大小
/dev/nanda bootloader 32768 131072
/dev/nandb rootfs 163840 4194304
/dev/nandc UDISK 4358144 10584064

所以少掉的NAND Flash其實在 /dev/nandc 這個分割底下共有 5469 MB,但是我們一般用不到,而且假以時日,當rootfs 檔案系統 2GB不夠用時,我們當然希望能夠把 /dev/nandb  和 /dev/nandc 合併起來一起使用,這樣也才能充分使用到8GB的大小。所以我們必須下這道指令

nand-part -f a20 /dev/nand 32768 'boot 131072' 'rootfs 14778368'

語法解釋:

nand-part nand設備 起始位置 '分區名稱 長度' '分區名稱2 長度2'

這行的意思就是說把CubieTruck(A20)的 /dev/nand 設備重新分區,從磁區32768(這個數字是從nand-part得知)開始,開機(boot)分割為131072磁區(131072*512/(1024*1024)=64MB,開機磁區大小無須變動),另一方面把 rootfs 這個分割改為 14778368個磁區(14778368*512/(1024*1024)=7216MB,把rootfs延展到約莫7GB)。

下完指令一定要記得重新開機,否則不會生效。

# reboot

重新開機完後,再下重新分區的指令

# resize2fs /dev/nandb

此時用 df 指令看看,是否 rootfs 已經從 2GB 變成 7GB 了呢?