Если не все, то почти все знают что на ASUS eeePC 701 4G встроенный накопитель разбит на два основных раздела: раздел с системой, монтируемый в режиме "только чтение" и второй, монтируемый вместе с первым через unionfs. На нём хранятся все изменения, сделаные в системе.
Если просто работать со своими данными, то проблем не возникает, однако если обновлять имеющееся в системе ПО, то место начинает очень быстро заканчиваться. Удаление не нужного ПО проблемы не решает.
Пожалуй самым разумным решением в этой ситуации будет отказ от unionfs и объединение разделов. В этом случае конечно станет невозможным возврат к конфигурации системы по умолчанию в случае сбоя, но на этот случай можно сделать образ системы перед объединением разделов и в случае проблем восстановить систему из него.
В принципе всё что нужно описано на wiki, однако приводимые там инструкции достаточно хаотичны и пытаются покрыть сразу все версии eeePC. Эта же статья описывает только один конкретный путь и только для модели 701. А самое главное достоинство этой статьи - она на русском языке:)
Итак, что же мы будем делать? Мы будем объединять разделы sda1 и sda2 и получившийся раздел преобразуем в файловую систему ext3.
Что нам понадобиться? Автор использовал USB-брелок со SLAX. Новый initrd-образ, который можно собрать и самому, но проще использовать готовый. Этот образ сохранён в корень брелка со SLAX и прямые руки:)
Итак. Сразу после включения eeePC нажимаем F2 и попадаем в BIOS. Там всё достаточно понятно. Нам нужно выбрать загрузку с USB-Flash. Затем выходим и загружаемся с брелка. Разделы eeePC SLAX "видит" как /dev/hdc1 и /dev/hdc2, и монтирует их соответственно в /mnt/hdc1 и /mnt/hdc2.
Здесь всё происходит так, как описано в оригинальной статье. Для начала разберёмся в устройстве unionfs. Она состоит из двух разделов - один доступен только для чтения, а на другом сохраняются все изменения. В нашем случае это hdc1 и hdc2 соответственно. Когда мы удаляем файл или папку с именем "name" с раздела hdc1 реально он не удаляется, но на hdc2 появляется файл или папка с именем ".wh.name" и нулевым размером. Зная это мы можем реально удалить эти файлы и папки с hdc1. Для этого воспользуемся командами:
cd /mnt/hdc2 find . -name .wh.__dir_opaque -exec sh -c 'F="{}";echo rm -rf /mnt/hdc1/${F%/*}' \; find . -name .wh.\* ! -name .wh.__dir_opaque -exec sh -c 'F="{}"; rm -rf /mnt/hdc1/${F/\/.wh./\/}' \;
Следующим шагом нам надо скопировать новые файлы с hdc2 на hdc1. Для этого выполним команду:
cd /mnt/hdc2 && cp -a sbin etc bin usr home lib var opt dev /mnt/hdc1/
Поскольку вместе с полезными данными у нас на hdc1 скопировались и файлы и папки с именами вида: .wh.*, которые нам не нужным - их надо удалить. Удалим их командой:
find /mnt/hdc1 -name .wh.\* -exec rm -f {} \; ''
Если вы обновляли OpenOffice до версии 2.4 то вам нужно ещё удалить симлинки /usr/bin/oo* и заменить их на скрипты:
rm -fv /mnt/hdc1/usr/bin/oo* cp -v /mnt/hdc2/usr/bin/oo* /mnt/hdc1/usr/bin/
Отмонитруем разделы hdc1 и hdc2:
umount /mnt/hdc1 umount /mnt/hdc2
Запускаем cfdisk для диска hdc:
cfdisk /dev/hdc
И с его помощью удаляем разделы hdc1 и hdc2 а на их месте создаём один большой раздел hdc1 с типом файловой системы 83 (Linux). Далее записываем изменения и выходим. После этого нужно выполнить последовательность команд:
# Изменяем размер файловой системы e2fsck -f /dev/hdc1 resize2fs /dev/hdc1 e2fsck -f /dev/hdc1 # Создаём журнал: tune2fs -j /dev/hdc1
Всё! Теперь вместо двух разделов
Монтируем раздел /dev/hdc1:
mount -t ext3 /dev/hdc1 /mnt/hdc1
Редактируем файл /mnt/hdc1/etc/fstab, приводя его к виду:
/dev/sda1 / ext3 defaults 0 0 proc /proc proc rw 0 0
Далее копируем скаченный заранее файл initramfs-eeepc-nounionfs-ext3.img в каталог /mnt/hdc1/boot и приводим файл /mnt/hdc1/boot/grub/menu.lst к виду:
default=0 timeout=0 fallback=2 title Normal Boot root (0x80,0) kernel /boot/vmlinuz-2.6.21.4-eeepc quiet rw vga=785 irqpoll root=/dev/sda1 # initrd /boot/initramfs-eeepc.img initrd /boot/initramfs-eeepc-nounionfs-ext3.img title Perform Disk Scan root (0x80,0) kernel /boot/vmlinuz-2.6.21.4-eeepc quiet rw vga=785 irqpoll root=/dev/sda1 XANDROSSCAN=y # initrd /boot/initramfs-eeepc.img initrd /boot/initramfs-eeepc-nounionfs-ext3.img title Restore Factory Settings root (0x80,0) kernel /boot/vmlinuz-2.6.21.4-eeepc quiet rw vga=normal nosplash=y irqpoll root=/dev/sda1 XANDROSRESTORE=y # initrd /boot/initramfs-eeepc.img initrd /boot/initramfs-eeepc-nounionfs-ext3.img
На этом всё. Теперь нужно перезагрузиться и извлечь брелок со SLAX. Теперь система будет работать без unionfs что позволяет сэкономить место и повысить скорость работы.
Приятной работы!
eugene 2008-09-13 18:41:42 (#)