Internen MTD-Speicher formatieren: Blockgröße auswählen?

Ich habe das China N101-II Tablet mit CyanogenMod gerootet, nachdem ich das benutzerdefinierte ROM geflasht habe .

Der interne MTD-Speicher ist 32 GiB groß und das benutzerdefinierte ROM-Flashen unterscheidet sich vom Layout der internen Partitionierung. Also /datafast 12 GiB statt ursprünglich 1 GiB (damit Pakete nicht mehr auf externes Flash verschoben werden müssen!!):

130|root@android:/system # df
Filesystem               Size     Used     Free   Blksize
/system                595.4M   549.8M    45.6M   1024
/data                   11.8G   449.8M    11.4G   4096
/cache                 126M     4.1M   121.9M   4096

Restplatz übrig bis /mnt/sdcard:

root@android:/ # cat /system/etc/vold.fstab
dev_mount flash /mnt/sdcard auto /devices/virtual/mtd/mtd9/mtdblock9 nonremovable

aber der benutzerdefinierte ROM-Flash-Prozess blieb mtdblock9unformatiert.

Unter PATHverfügbare Befehle: mkfs.ext2und tune2fsso kann ich mich formatieren.

mkfs.ext2Unterstützung:

130|root@android:/system # mkfs.ext2 --help
mkfs.ext2 --help
BusyBox v1.21.1-jb bionic (2013-07-01 01:04 +0200) multi-call binary.

Usage: mkfs.ext2 [-Fn] [-b BLK_SIZE] [-i INODE_RATIO] [-I INODE_SIZE] [-m RESERVED_PERCENT] [-L LABEL] BLOCKDEV [KBYTES]

        -b BLK_SIZE Block size, bytes

Entsprechend:

root@android:/ # cat /proc/mtd 
cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00400000 00004000 "misc"
mtd1: 00800000 00004000 "kernel"
mtd2: 01000000 00004000 "boot"
mtd3: 01000000 00004000 "recovery"
mtd4: 18000000 00004000 "backup"
mtd5: 08000000 00004000 "cache"
mtd6: 300000000 00004000 "userdata"
mtd7: 00400000 00004000 "kpanic"
mtd8: 28000000 00004000 "system"
mtd9: 46fa00000 00004000 "user"

scheint, dass ich die Blockgröße als 16384 (16KiB) auswählen muss. Habe ich recht?

UPDATE Scheint das mkfs.ext2von busybox zu sein und funktioniert nicht richtig:

android# mkfs.ext2 /dev/block/mtdblock9
mkfs.ext2: lseek: Value too large for defined data type

Aber ich fand mke2fs:

android# mke2fs -I 16384 /dev/block/mtdblock9
mke2fs 1.41.14 (22-Dec-2010)
mke2fs: invalid inode size 16384 (min 128/max 4096)

Um die Fragmentierung zu reduzieren, versuche ich, eine größere Blockgröße zu wählen (was hoffentlich zu weniger Löschvorgängen auf Flash führt):

android# mke2fs -I 4096 /dev/block/mtdblock9
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1162128 inodes, 4651520 blocks
232576 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
142 block groups
32768 blocks per group, 32768 fragments per group
8184 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000

Antworten (1)

Ich wähle die größtmögliche Blockgröße, um mke2fseine Blockfraktionierung als Löschvorgang auf diesem MTD-Speicher zu vermeiden, der von 16 KiB-Chanks ausgeführt wird:

android# /sbin/mke2fs -t ext4 -I 4096 -O ^huge_file -m 0 /dev/block/mtdblock9
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1162128 inodes, 4651520 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
142 block groups
32768 blocks per group, 32768 fragments per group
8184 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Dann:

android# tune2fs -c 0 -i 0 /dev/block/mtdblock9
tune2fs -c 0 -i 0 /dev/block/mtdblock9
tune2fs 1.41.14 (22-Dec-2010)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds

HINWEIS Formatieren /dataund /cachePartitionieren ist nicht erforderlich. wipe dataDies kann automatisch im Wiederherstellungsmenü erfolgen .