Editing Repartitioning the flash
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
- | + | There are several reasons why users might want to repartition their [[Nokia N900|N900]]'s eMMC flash: | |
- | + | * many Maemo power users have a Linux background. They tend to prefer POSIX filesystems like ext3 over the ancient VFAT filesystem. However, VFAT can be accessed on most non-Linux computers and would be useful to keep a small VFAT partition for data exchange with USB mass storage. With a large ext3 partition you could install much more applications, store symlinks and permissions (e.g., for backup of your desktop PC), or create Linux chroot enviroments (e.g., for installing non-optified software or Debian). | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | There are several reasons why | + | |
- | * | + | |
* booting alternative operating systems (e.g., Mer, Moebian, Fedora) requires independent partitions | * booting alternative operating systems (e.g., Mer, Moebian, Fedora) requires independent partitions | ||
- | * loopback files for chroots (see [[Easy Debian]]) can be stored in VFAT MyDocs, but access is much slower than on a native partition. | + | * loopback files for chroots (see [[Easy Debian]]) can be stored in VFAT MyDocs, but access is much slower than on a native partition. loopback files in MyDocs are not available during USB mass storage mode. |
- | + | ||
- | == | + | ==Default partition setup== |
- | + | ||
- | + | ||
- | + | ||
- | + | By default the eMMC on the N900 (<code>/dev/mmcblk0</code>) is partitioned as follows: | |
+ | # 27 GB VFAT [[MyDocs folder|MyDocs partition]] | ||
+ | # 2 GB <code>/home</code> partition | ||
+ | # 768 MB swap partition | ||
- | + | This page describes several possible solutions: | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
# [[#Solution .231: swap .2Fhome and MyDocs partition|Swap the 2 GB <code>/home</code> and 27GB MyDocs partition]] to get a 2 GB VFAT MyDocs and a 27 GB ext3 <code>/home</code>. No partition size need to be changed and only a single reboot is necessary. This is the least invasive solution and can be easily reverted. It leaves a smaller MyDocs partition for VFAT USB mass storage mode. | # [[#Solution .231: swap .2Fhome and MyDocs partition|Swap the 2 GB <code>/home</code> and 27GB MyDocs partition]] to get a 2 GB VFAT MyDocs and a 27 GB ext3 <code>/home</code>. No partition size need to be changed and only a single reboot is necessary. This is the least invasive solution and can be easily reverted. It leaves a smaller MyDocs partition for VFAT USB mass storage mode. | ||
# [[#Solution .232: shrink MyDocs to add additional partitions|shrink MyDocs to add additional partitions]] (e.g., for other OS). | # [[#Solution .232: shrink MyDocs to add additional partitions|shrink MyDocs to add additional partitions]] (e.g., for other OS). | ||
# setup an [[#Solution .233: arbitrary size for .2Fhome and MyDocs|arbitrary <code>/home</code> and MyDocs division of the space]]. this is a little bit more complicated. | # setup an [[#Solution .233: arbitrary size for .2Fhome and MyDocs|arbitrary <code>/home</code> and MyDocs division of the space]]. this is a little bit more complicated. | ||
- | # [[#Solution .234: single large .2Fhome partition.2C loopback for USB|get rid of the MyDocs partition]], setup a single 31 GB ext3 partition, and replace MyDocs with loopback file(s) that could also be USB exported and have arbitrary size and filesystem. This is useful if you rarely need USB mass storage mode or if you want to export different filesystem images depending on the computer. However, the loopback files may be significantly slower. | + | # [[#Solution .234: single large .2Fhome partition.2C loopback for USB|get rid of the MyDocs partition]], setup a single 31 GB ext3 partition, and replace MyDocs with loopback file(s) that could also be USB exported and have arbitrary size and filesystem. This is useful if you rarely need USB mass storage mode or if you want to export different filesystem images depending on the computer. However, the loopback files may be significantly slower. |
+ | |||
+ | == What you should know before partitioning == | ||
+ | |||
+ | * '''BACKUP YOUR DATA''': a mistake during partitioning could brick your device, lead to complete data loss and could require reflashing. Use the Backup application to backup all settings etc. Backup this and the contents of MyDocs to your computer. Remove your optional SD card to prevent data loss. Following this tutorial should minimize your risk of data loss but '''repartitioning is at your own risk'''. | ||
+ | * make sure your battery is not nearly empty (rebooting costs a lot of power) or, even better, plug in your charger. | ||
+ | * All instructions must be executed [[root access|as root]] (either from [[Terminal]] or via ssh, type "root" as user to become root). | ||
+ | * copy & paste is recommended (typos are dangerous). For the table files use "vi" or "cat > table" and Ctrl+D to quit. | ||
== Some remarks == | == Some remarks == | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | * | + | * partitions on flash should be aligned to flash block sizes (AFAIK this is 32 KB, but some sources claims 64 KB or 128 KB). To be on the safe side use 128 KB. |
+ | * the only <code>fdisk</code> utility on the device is <code>sfdisk</code>. <code>fdisk</code> could be extracted from Debian packages but it aligns partitions based on virtual harddisk cylinders and not on flash blocks. | ||
** to modify the whole partition table use<pre>sfdisk -d /dev/mmcblk0 > table</pre>edit the file table, and overwrite the partition table with<pre>sfdisk --no-reread /dev/mmcblk0 < table</pre> | ** to modify the whole partition table use<pre>sfdisk -d /dev/mmcblk0 > table</pre>edit the file table, and overwrite the partition table with<pre>sfdisk --no-reread /dev/mmcblk0 < table</pre> | ||
** ids of single partitions can be changed with<pre>sfdisk -c /dev/mmcblk0 2 83</pre>(this example changes the 2nd partition to 83=Linux). | ** ids of single partitions can be changed with<pre>sfdisk -c /dev/mmcblk0 2 83</pre>(this example changes the 2nd partition to 83=Linux). | ||
+ | * Maemo hardcodes the MyDocs partition as <code>/dev/mmcblk0p1</code> in several applications. If you keep a VFAT partition, make sure it is the first partition (partitions in the table do not need to have the same order as on the disk). Otherwise you have to modified several scripts belonging to ke-recv. | ||
+ | * <code>/home</code> is the first ext3 partition, swap can be any partition number. | ||
+ | * the most relevant scripts for partitioning are <code>/etc/event.d/rcS-late</code>, <code>/usr/sbin/osso-usb-mass-storage-enable.sh</code> and <code>/usr/sbin/osso-usb-mass-storage-disable.sh</code> | ||
+ | * it is not a good idea to unmount <code>/home</code> in a running system. umounting <code>/home/user/MyDocs</code> is generally safe (if all applications are closed). | ||
* you can boot without a <code>/home</code> partition (for example, by commenting out the line in rcS-late or by change the partition ids to something other than 83). Maemo will create a default home (about 10 MB) on NAND. Most relevant settings (wifi, desktop) are stored on NAND anyway. Make sure to<pre>rm -rf /home/user</pre> before reboot. This trick is useful if want to change the layout of the eMMC completely. | * you can boot without a <code>/home</code> partition (for example, by commenting out the line in rcS-late or by change the partition ids to something other than 83). Maemo will create a default home (about 10 MB) on NAND. Most relevant settings (wifi, desktop) are stored on NAND anyway. Make sure to<pre>rm -rf /home/user</pre> before reboot. This trick is useful if want to change the layout of the eMMC completely. | ||
- | * ext3 partitions can be grown online, but not be | + | * ext3 partitions can be grown online, but not be shrinked. |
- | * [http://www.gnu.org/software/parted/index.shtml parted] does not work | + | * [http://www.gnu.org/software/parted/index.shtml parted] does not work on Maemo (it always crashed due to some mmap problem). |
- | * | + | * if you don't want a VFAT MyDocs partition, you need to create MyDocs/DCIM directory with users permission for the camera app to work [https://bugs.maemo.org/show_bug.cgi?id=7160 proper permissions]. |
+ | * you might want to do <code>tune2fs -c 0 -i 0 device</code> on your new newly created ext3 filesystems so the fs is never fsck'd on boot (these are the settings on the default ext3 /home partition) | ||
== Solutions == | == Solutions == | ||
Line 92: | Line 76: | ||
mount /home/user/MyDocs # mount it | mount /home/user/MyDocs # mount it | ||
voila! | voila! | ||
- | |||
- | |||
- | |||
==== How to revert ==== | ==== How to revert ==== | ||
Line 124: | Line 105: | ||
umount /home/user/MyDocs | umount /home/user/MyDocs | ||
- | create a new partition layout in file "table" | + | create a new partition layout in file "table" (here 8 GB MyDocs were used for an extended partition with 3+5 GB partitions): |
unit: sectors | unit: sectors | ||
/dev/mmcblk0p1 : start= 64, size= 39854080, Id= 0 | /dev/mmcblk0p1 : start= 64, size= 39854080, Id= 0 | ||
Line 233: | Line 214: | ||
''' Don't forget to repeat the "Start flasher" procedure with '''<code>sudo flasher-3.5 --disable-rd-mode</code> '''to disable R&D mode.''' | ''' Don't forget to repeat the "Start flasher" procedure with '''<code>sudo flasher-3.5 --disable-rd-mode</code> '''to disable R&D mode.''' | ||
- | === Solution #7 | + | === Solution #7: arbitrary size for /home and MyDocs (PR 1.2/3 compatible) === |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
This solution is based off solution #3. The key difference is that this solution uses a MicroSD card as a temporary /home, so Maemo will be able to reboot in the process, thus making this solution PR1.2 and 1.3 compatible. '''MyDocs will be deleted, make a backup of it!''' This solution is tested on a PR 1.3 reflashed device, but it should work on non-clean devices aswell. If done correctly, you won't lose any settings/calendar/etc (just MyDocs), but as repartitioning is a risky proces: '''backup everything!''' | This solution is based off solution #3. The key difference is that this solution uses a MicroSD card as a temporary /home, so Maemo will be able to reboot in the process, thus making this solution PR1.2 and 1.3 compatible. '''MyDocs will be deleted, make a backup of it!''' This solution is tested on a PR 1.3 reflashed device, but it should work on non-clean devices aswell. If done correctly, you won't lose any settings/calendar/etc (just MyDocs), but as repartitioning is a risky proces: '''backup everything!''' | ||
Line 318: | Line 286: | ||
P.s. Solution #4 applies in the same way to this solution, as to #3 | P.s. Solution #4 applies in the same way to this solution, as to #3 | ||
+ | === Solution #8: The GUI-Solution for arbitrary size for /home and MyDocs using a Linux Live-CD (PR1.3 compatible) === | ||
+ | This solution is inspired by the methods [http://talk.maemo.org/member.php?u=46122 sub7] was promoting in a couple of posts in the talk.maemo.org forum like [http://talk.maemo.org/showpost.php?p=933474&postcount=48 here] | ||
+ | |||
+ | Lets face it: You are using a Linux phone, so make familiar with Linux! Grab yourself a Debian or Ubuntu based Live-CD. | ||
+ | |||
+ | Personally i recommend using an aptosid KDE4 Live-CD http://aptosid.com You will find the Downloads behind the Downloads/Mirrors link in the upper left corner. The image size is some 450MB | ||
+ | |||
+ | You need some prerequisites installed on your N900: You need either Backup-Menu or Backup-Menu-Multiboot by [http://talk.maemo.org/member.php?u=40462 RobbieThe1st] installed. | ||
+ | |||
+ | Start your PC with the Linux-Live-CD. Make sure to choose a fitting localisation for your keyboard layout. Restart your phone now with the keyboard ejected. Connect the phone to your PC via the USB. Choose the BackupMenu item. A boot screen like this http://robbiethe1st.afraid.org/BackupMenu/IMGP2653-small.jpeg will greet you | ||
+ | Choose 'w' from the menu of the N900, this will export the partitions of the N900 internal memory to the PC. | ||
+ | |||
+ | Now start the KDE-Partition-Manager from the menu, you will find it in the System section. | ||
+ | |||
+ | You will have to choose the N900 in the devices section to the left. It will open the device in the right. Click on the first partition (the MyDocs partition), choose resize/move from the toolbar. Select the handle to the right and resize the partition to the desired size. Now choose your second partition (the optfs partition, where you will have some more space for installable applications real soon :) ), resize it using the left handle and resize it to the available space. | ||
+ | Now apply the actions you were preparing. This will take some time, so stay patient. | ||
+ | |||
+ | After the process is finished shut down the PC and reboot the phone with typing 'q' in the backup-menu. | ||
+ | Voila, you are done! | ||
+ | P.S. I have still to figure out how to upload some screenshots. Stay tuned. | ||
== References == | == References == |
Learn more about Contributing to the wiki.