Перебиваем флэш память N900 под ext3
by dik on Мар.12, 2010, under Nokia N900
Что мы имеем в обычном варианте поставки: Львиная доля флэшки отдана под fat раздел, 2gb занимает /home. Я часто копирую какие то крупные файлы на телефон, фильмы и…. Загнать на fat файл более 4gb нельзя – это удручает, более удручают ошибки файловой системы fat, переодически случающиеся. Нижеследующая инструкция тупо меняет шило на мыло: 26 гигов под /home в ext3, 2gb – fat в /home/user/MyDocs, чтобы камера N900 нормально работала…. И «на сладкое» – скрипт, который освобождает место на rootfs, использую несколько другой способ чем стандартный при «недостаточно памяти в выбранном расположении»
Инструкция взята здесь ->. И за неё я безмерно благодарен автору. Однако, если вы, как и я будете ей верно следовать, перепрошивка аппарата вам гарантирована. Посему – никого не слушаем, думаем своей головой и осознаём всю падающую на наши плечи ответственность. Бэкапимся не только на внутреннюю карту но и на внешние носители, магниты на холодильнике, бумажные записные книжки…
Подразумевается, что у нас есть под рукой root доступ, и отформатированная в ext3 microsd карточка, вставленная в телефон. Карточка будет использоваться для бэкапа /home и /home/user/MyDocs
Монтируем карточку в /media/0
$ mkdir /media/0/n900
$ cp -r ~/MyDocs /media/0/n900/
$ wget -c http://sumoudou.org/n900/fdisk
Первой командой – на карточке создаётся директория для копирования. Второй – копируется содержимое директории MyDocs. третья команда скачивает fdisk с сайта автора инструкции. Мне вполне хватило cfdisk который нашёлся в репозиториях.
Еще вариант, получить fdisk способом, описанным здесь.
mkdir -p /home/user/util-linux /home/user/bin
cd /home/user/util-linux
wget http://ftp.de.debian.org/debian/pool/main/u/util-linux/util-linux_2.13.1.1-1_armel.deb
dpkg-deb -x util-linux_2.13.1.1-1_armel.deb root
cp root/sbin/fdisk /home/user/bin/
cd ..
rm -rf util-linux
Итак…
# umount /home/user/MyDocs
# cp -a /home /media/0/n900/
# ./fdisk /dev/mmcblk0
Под рутом : отмонтируется MyDocs. Копируется для сохранения на sd карту директория /home. Последняя команда запускает fdisk. Нужно изменить тип 1й партиции mmcblk0p1 на 83 (Linux), сохранить и выйти.

# mkfs.ext3 /dev/mmcblk0p1
# mount /dev/mmcblk0p1 /home/
cd /media/0/n900/home
cp -r * /home/
Создаём файловую систему ext3 на mmcblk0p1. Монтируем диск mmcblk0p1 в директорию /home/. Идём в директорию с бэкапом и копируем всё home обратно.
Перезагружаемся. /dev/mmcblk0p1 будет смонтирован как /home, /dev/mmcblk0p2 не будет смонтирован.
# ./fdisk /dev/mmcblk0
Снова запускаем fdisk. Для второй партиции нужно изменить тип диска на c, FAT. fat раздел нам нужен для того чтобы примонтировать его как ~/MyDocs, иначе камера Nokia N900 не сможет сохранять изображения. Сохраняем таблицу разделов и выходим.
# mkfs.vfat /dev/mmcblk0p2
mount -t vfat /dev/mmcblk0p2 /home/user/MyDocs
mv -r /media/0/n900/MyDocs/* /home/user/MyDocs
rm -r /media/0/n900
Создаём файловую систему fat на /dev/mmcblk0p2. Монтируем его как /home/user/MyDocs. Перемещаем в него файлы из бэкапа. Удаляем бэкап.
Редактируем файл /etc/event.d/rcS-late под рутом и после строки:
/bin/mount /home || echo «Failed to mount /home partition.»
добавляем строку:
/bin/mount /home/user/MyDocs
Запускаем скрипт который переносит и линкует, освобождая нам rootfs
mkdir -p /home/root/usr/share
cd /usr/
for FILE in games include local src var
do
mv $FILE /home/root/usr/
ln -s /home/root/usr/$FILE /usr/
done
mkdir -p /home/root/var/cache
cd /var/cache/
for FILE in apt
do
mv $FILE /home/root/var/cache/
ln -s /home/root/var/cache/$FILE /var/cache/
done
cd /usr/share/
for FILE in fonts icons locale mime nokia-maps pixmaps sounds themes tutorial-applet zoneinfo
do
mv $FILE /home/root/usr/share/
ln -s /home/root/usr/share/$FILE /usr/share/
done
mkdir /home/root/usr/share/games
ln -s /home/root/usr/share/games .
Перезагружаемся.
В итоге:
111 Mб освободилось в /
/home с 23 Gb свободными в ext3
/home/user/MyDocs в FAT – 2 Gigs
Поправки/замечания приветствуются…
Пойду восстанавливать контакты по syncml….
-
Skiffartu
-
Andreii