eMMC分区及在新分区上安装NITDroid全过程

 

http://www.wda.cn/thread-8133-1-1.html

 

 

 

因为之前我在SD卡上安装过NITDORID,系统运行极慢,经常弹出强制关闭的窗口。
后来转换到home根目录,运行速度提高了许多,基本不弹出强制窗口了,但缺点是NITDROID和MAEMO的系统文件混在一起了。
偶然的机会在论坛上看到可以把NITDROID安装在分区上,真是新鲜事儿,于是在昨天进行了一场实验,结果成功!
下面是我的全过程:

################ 分区 ################
特别注意:分区有风险,分区整个过程,一定要保证手机有足够电量,否则硬盘可能会损坏!!!
使用fdisk操作时,请务必清楚每敲一行代码代表的含义,如果搞不清楚,请baidu或者google或者给我留言!新手请谨慎操作!



本例在PC端使用secureCRT连接N900操作。
作准备工作:
一,在PC端连接N900
1,手机端需安装Mad developer,Open SSL client and server
2,使用USB连接电脑,选择PC Suit
3,打开Mad developer依次选择usb networking -> windows network
4,打开secureCRT或其它SSH连接工具,使用root用户连接N900
注:如果使用x-ter登录,则应输入root或sudo gainroot首先获取root权限

二,安装分区工具FDISK

  1. Nokia-N900:~# mkdir -p /home/user/util-linux /home/user/bin 依次建立两个目录,前者是临时目录,后者是FDISK存放目录
  2. Nokia-N900:~# cd /home/user/util-linux 进入临时目录
  3. Nokia-N900:~# wget http://ftp.de.debian.org/debian/pool/main/u/util-linux/util-linux_2.13.1.1-1_armel.deb在临时目录下载工具包,也可在电脑端下载,然后拷到此目录
  4. Nokia-N900:~# dpkg-deb -x util-linux_2.13.1.1-1_armel.deb root 解压到/home/user/util-linux/root目录
  5. Nokia-N900:~# cp root/sbin/fdisk /home/user/bin/ 把临时目录里的FDISK工具拷到目标目录
  6. Nokia-N900:~# cd ..
  7. Nokia-N900:~# rm -rf util-linux 删除临时目录
复制代码

三,分区


首先先卸载第一个分区MyDocs:

  1. Nokia-N900:~# umount /home/user/MyDocs
复制代码

然后在PC端使用secureCRT登录N900,然后查看当前分区情况:

命令如下:

  1. Nokia-N900:~# cd /home/user/bin/
  2. Nokia-N900:/home/user/bin# ./fdisk -l
复制代码

如果未进行过分区,则是应该出现以下分区表:
可以看到手机里共挂载了两个外置设备,分别是手机本身的硬盘/dev/mmcblk0和外置的SD卡/dev/mmcblk0。
其中内置硬盘分了三个区,分别是/dev/mmcblk0p1,/dev/mmcblk0p2和/dev/mmcblk0p3,分区格式依次是FAT32,Linux和Linux swap / Solaris
外置SD卡分了两个区,分别是/dev/mmcblk1p1和/dev/mmcblk1p2,分区格式依次是FAT32和Linux
可以发现maemo对外置设备挂载的规律:/dev/mmcblk*,全称应该是MultiMedia Card Block,其中*代表外置设备的序号,从0开始。对分区的命名规律则是/dev/mmcblk*p#,其中#是分区序号,从1开始。
原则上如果有第三个外置设备,应该是/dev/mmcblk2。

如下:

  1. Disk /dev/mmcblk0: 32.0 GB, 32015122432 bytes
  2. 4 heads, 16 sectors/track, 977024 cylinders
  3. Units = cylinders of 64 * 512 = 32768 bytes
  4. Disk identifier: 0x00000000
  5.         Device Boot      Start         End      Blocks   Id  System
  6. /dev/mmcblk0p1               2      884865    28315648    c  W95 FAT32 (LBA)
  7. /dev/mmcblk0p2          884866      950401     2097152   83  Linux
  8. /dev/mmcblk0p3          950402      974977      786432   82  Linux swap / Solaris
  9. Disk /dev/mmcblk1: 15.9 GB, 15997075456 bytes
  10. 4 heads, 16 sectors/track, 488192 cylinders
  11. Units = cylinders of 64 * 512 = 32768 bytes
  12. Disk identifier: 0x00000000
  13.         Device Boot      Start         End      Blocks   Id  System
  14. /dev/mmcblk1p1               1      451200    14438399+   c  W95 FAT32 (LBA)
  15. /dev/mmcblk1p2          451201      488192     1183744   83  Linux
复制代码

这时,我们来编译第一块硬盘,即手机内置硬盘/dev/mmcblk0

  1. Nokia-N900:/home/user/bin# ./fdisk /dev/mmcblk0
复制代码

输入上面命令后,则会出现以下界面:

  1. The number of cylinders for this disk is set to 977024.
  2. There is nothing wrong with that, but this is larger than 1024,
  3. and could in certain setups cause problems with:
  4. 1) software that runs at boot time (e.g., old versions of LILO)
  5. 2) booting and partitioning software from other OSs
  6.    (e.g., DOS FDISK, OS/2 FDISK)
  7. Command (m for help): m (这里按m显示帮助,按p查看当前分区表情况)
  8. Command action
  9.    a   toggle a bootable flag
  10.    b   edit bsd disklabel
  11.    c   toggle the dos compatibility flag
  12.    d   delete a partition
  13.    l   list known partition types
  14.    m   print this menu
  15.    n   add a new partition
  16.    o   create a new empty DOS partition table
  17.    p   print the partition table
  18.    q   quit without saving changes
  19.    s   create a new empty Sun disklabel
  20.    t   change a partition's system id
  21.    u   change display/entry units
  22.    v   verify the partition table
  23.    w   write table to disk and exit
  24.    x   extra functionality (experts only)
  25. Command (m for help): d (按d进行删除分区操作)
  26. Partition number (1-4): 1 (删除第一块主分区,即/dev/mmcblk0p1,也就是我们的/home/user/MyDocs)
  27. Command (m for help): p (按p查看操作后的分区表情况)
  28. Disk /dev/mmcblk0: 32.0 GB, 32015122432 bytes
  29. 4 heads, 16 sectors/track, 977024 cylinders
  30. Units = cylinders of 64 * 512 = 32768 bytes
  31. Disk identifier: 0x00000000
  32.         Device Boot      Start         End      Blocks   Id  System
  33. /dev/mmcblk0p2          884866      950401     2097152   83  Linux
  34. /dev/mmcblk0p3          950402      974977      786432   82  Linux swap / Solaris
复制代码

可以看到第一块分区已经被删除了。此时继续按n进行新的分区操作

  1. Command (m for help): n
  2. Command action
  3.    e   extended
  4.    p   primary partition (1-4)
  5. p (这里有两个选项,e和p分别是扩展分区和主分区,这里我们是建立主分区,所以选择p)
  6. Partition number (1-4): 1 (选择分区的序号,我们删除了第一个主分区,现在要重建,这里选择1)
  7. First cylinder (1-977024, default 1): (开始cylinder,使用默认1,这里只按回车即可)
  8. Using default value 1
  9. Last cylinder or +size or +sizeM or +sizeK (1-884865, default 884865): +25G (选择cylinder,这里可以输入数量,也可以直接输入大小,如+25K,这里我想给MyDocs分25G,所以直接输入了+25G)
  10. Command (m for help): p (两次按p查看操作后的分区表情况,可以看到第一块主分区大小是24414072K,约是25G)
  11. Disk /dev/mmcblk0: 32.0 GB, 32015122432 bytes
  12. 4 heads, 16 sectors/track, 977024 cylinders
  13. Units = cylinders of 64 * 512 = 32768 bytes
  14. Disk identifier: 0x00000000
  15.         Device Boot      Start         End      Blocks   Id  System
  16. /dev/mmcblk0p1               1      762940    24414072   83  Linux
  17. /dev/mmcblk0p2          884866      950401     2097152   83  Linux
  18. /dev/mmcblk0p3          950402      974977      786432   82  Linux swap / Solaris
复制代码

本来第一主分区是28G,我们删除再建后是25G,还有3G的空闲空间,这里我们来创建扩展分区:

  1. Command (m for help): n (按n继续分区)
  2. Command action
  3.    e   extended
  4.    p   primary partition (1-4)
  5. e (此时要创建扩展分区了,选择e)
  6. Selected partition 4(只能有4个主分区,自动选择4。因为扩展分区也是主分区的一种)
  7. First cylinder (762941-977024, default 762941): (选择开始cylinder,使用默认即可,直接回车)
  8. Using default value 762941
  9. Last cylinder or +size or +sizeM or +sizeK (762941-884865, default 884865): (选择结束cylinder,因为我们要把剩余的空间全部分配给扩展分区,然后再在扩展分区上创建逻辑分区,所以要把剩余空间全部分配给扩展分区,这里使用默认,直接回车)
  10. Using default value 884865
  11. Command (m for help): p(按p查看操作的后的情况)
  12. Disk /dev/mmcblk0: 32.0 GB, 32015122432 bytes
  13. 4 heads, 16 sectors/track, 977024 cylinders
  14. Units = cylinders of 64 * 512 = 32768 bytes
  15. Disk identifier: 0x00000000
  16.         Device Boot      Start         End      Blocks   Id  System
  17. /dev/mmcblk0p1               1      762940    24414072   83  Linux
  18. /dev/mmcblk0p2          884866      950401     2097152   83  Linux
  19. /dev/mmcblk0p3          950402      974977      786432   82  Linux swap / Solaris
  20. /dev/mmcblk0p4          762941      884865     3901600    5  Extended
复制代码

可以看到,扩展分区是/dev/mmcblk0p4 ,被分区了近4G空间。扩展分区是不能直接使用的 ,要在扩展分区上创建一至多个逻辑分区才能使用。

  1. Partition table entries are not in disk order
  2. Command (m for help): n (按n在扩展分区上创建逻辑分区)
  3. First cylinder (762941-884865, default 762941): (选择第一个逻辑分区的起始柱面数,为了不浪费空间,按回车使用默认)
  4. Using default value 762941
  5. Last cylinder or +size or +sizeM or +sizeK (762941-884865, default 884865): +2G (选择结束柱面数,我们直接给出2G空间)
  6. Command (m for help): p (按p查看一下操作后的分区表情况)
  7. Disk /dev/mmcblk0: 32.0 GB, 32015122432 bytes
  8. 4 heads, 16 sectors/track, 977024 cylinders
  9. Units = cylinders of 64 * 512 = 32768 bytes
  10. Disk identifier: 0x00000000
  11.         Device Boot      Start         End      Blocks   Id  System
  12. /dev/mmcblk0p1               1      762940    24414072   83  Linux
  13. /dev/mmcblk0p2          884866      950401     2097152   83  Linux
  14. /dev/mmcblk0p3          950402      974977      786432   82  Linux swap / Solaris
  15. /dev/mmcblk0p4          762941      884865     3901600    5  Extended
  16. /dev/mmcblk0p5          762941      823976     1953144   83  Linux
复制代码

可以看到/dev/mmcblk0p5是我们的第一个扩展分区,也是第5个分区,大小是近2G,分区格式是83(Linux)

  1. Partition table entries are not in disk order
  2. Command (m for help): n (近n继续创建扩展分区)
  3. First cylinder (823977-884865, default 823977): (选择第二个逻辑分区的起始柱面数,为了不浪费空间,按回车使用默认)
  4. Using default value 823977
  5. Last cylinder or +size or +sizeM or +sizeK (823977-884865, default 884865): (选择结束柱面数,因为后面没有逻辑分区了,这里直接回车默认)
  6. Using default value 884865
  7. Command (m for help): p(按p查看一下操作后的分区表情况)
  8. Disk /dev/mmcblk0: 32.0 GB, 32015122432 bytes
  9. 4 heads, 16 sectors/track, 977024 cylinders
  10. Units = cylinders of 64 * 512 = 32768 bytes
  11. Disk identifier: 0x00000000
  12.         Device Boot      Start         End      Blocks   Id  System
  13. /dev/mmcblk0p1               1      762940    24414072   83  Linux
  14. /dev/mmcblk0p2          884866      950401     2097152   83  Linux
  15. /dev/mmcblk0p3          950402      974977      786432   82  Linux swap / Solaris
  16. /dev/mmcblk0p4          762941      884865     3901600    5  Extended
  17. /dev/mmcblk0p5          762941      823976     1953144   83  Linux
  18. /dev/mmcblk0p6          823977      884865     1948440   83  Linux
复制代码

可以看到/dev/mmcblk0p6是我们的第二个扩展分区,也是第6个分区,大小是近2G,分区格式是83(Linux)

  1. Partition table entries are not in disk order
  2. Command (m for help): t (按t进行分区格式转换)
  3. Partition number (1-6): 1(选择分区数,这里选择第一个分区,即将来的MyDocs
  4. Hex code (type L to list codes): l(按L可以查看分区格式的数字编号)
  5. 0  Empty           1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot   
  6. 1  FAT12           24  NEC DOS         81  Minix / old Lin bf  Solaris        
  7. 2  XENIX root      39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
  8. 3  XENIX usr       3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
  9. 4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
  10. 5  Extended        41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
  11. 6  FAT16           42  SFS             86  NTFS volume set da  Non-FS data   
  12. 7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
  13. 8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
  14. 9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
  15. a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e1  DOS access     
  16. b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
  17. c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          e4  SpeedStor      
  18. e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
  19. f  W95 Ext'd (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  EFI GPT        
  20. 10  OPUS            55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
  21. 11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
  22. 12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
  23. 14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
  24. 16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
  25. 17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fd  Linux raid auto
  26. 18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep        
  27. 1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT            
  28. 1c  Hidden W95 FAT3 75  PC/IX         
  29. Hex code (type L to list codes): 76 (转换成76目的是让系统在启动时不加载它,因为76是一个未定义的分区编号)
  30. Changed system type of partition 1 to 76 (Unknown)
复制代码

下面依次把第5个分区,即第一个逻辑分区也转换成76

  1. Command (m for help): t
  2. Partition number (1-6): 5
  3. Hex code (type L to list codes): 76
  4. Changed system type of partition 5 to 76 (Unknown)
  5. Command (m for help): p
  6. Disk /dev/mmcblk0: 32.0 GB, 32015122432 bytes
  7. 4 heads, 16 sectors/track, 977024 cylinders
  8. Units = cylinders of 64 * 512 = 32768 bytes
  9. Disk identifier: 0x00000000
  10.         Device Boot      Start         End      Blocks   Id  System
  11. /dev/mmcblk0p1               1      762940    24414072    83  Linux
  12. /dev/mmcblk0p2          884866      950401     2097152   83  Linux
  13. /dev/mmcblk0p3          950402      974977      786432   82  Linux swap / Solaris
  14. /dev/mmcblk0p4          762941      884865     3901600    5  Extended
  15. /dev/mmcblk0p5          762941      823976     1953144   76  Unknown
  16. /dev/mmcblk0p6          823977      884865     1948440   83  Linux
  17. Partition table entries are not in disk order
复制代码

按照上面的步骤,把第一分区和第六分区分别设置为76。

  1. 上面操作完成后按p应该是以下状态(具体数字可能不同)
  2. [code]
  3.         Device Boot      Start         End      Blocks   Id  System
  4. /dev/mmcblk0p1               1      762940    24414072   76  Unknown
  5. /dev/mmcblk0p2          884866      950401     2097152   83  Linux
  6. /dev/mmcblk0p3          950402      974977      786432   82  Linux swap / Solaris
  7. /dev/mmcblk0p4          762941      884865     3901600    5  Extended
  8. /dev/mmcblk0p5          762941      823976     1953144   76  Unknown
  9. /dev/mmcblk0p6          823977      884865     1948440   76  Unknown
复制代码

确定没问题按w执行操作。
Command (m for help): w (按q退出,按w应用分区结果)[/code]输入reboot重启手机,然后格式化分区:

1,把第一个分区格式设置为FAT32:

  1. root
  2. /home/user/bin/fdisk /dev/mmcblk0
  3. 输入t,回车
  4. 输入1,回车
  5. 输入0c,回车
  6. 输入w,回车
复制代码

2,格式化第一个分区为FAT32:

  1. mkfs.vfat -F 32 /dev/mmcblk0p1
复制代码

3,重新加载MyDocs:

  1. mount /dev/mmcblk0p1 /home/user/MyDocs
复制代码

(这一步可以不做,因为系统在启动的时候,会自动把第一块FAT32的分区挂载到/home/user/MyDocs的)
4,指点第5个分区(第一个逻辑分区)设置为Linux格式:
root

  1. /home/user/bin/fdisk /dev/mmcblk0
  2. 输入t,回车
  3. 输入5,回车
  4. 输入83,回车
  5. 输入w,回车
复制代码

5,格式化第5个分区为Linux格式:

  1. mkfs.ext3 /dev/mmcblk0p5
复制代码

如果此步分区不成功,可以使用下面命令尝试:mke2fs -L NITDroid -j -m0 /dev/mmcblk0p5

然后重启手机

你可能感兴趣的:(linux,command,dos,table,扩展,disk)