Объединение разделов на ASUS eeePC 701

Вы используете AdBlock. Этот сайт существует за счёт доходов от рекламы. Мы будем благодарны если вы отключите AdBlock на страницах нашего сайта.

()

Если не все, то почти все знают что на 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 что позволяет сэкономить место и повысить скорость работы.

Приятной работы!

Ключевые слова: eeepc, cfdisk, resize2fs, tune2fs, fsck.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал

Комментарии:

eugene 2008-09-13 18:41:42 (#)

Не для слабонервных операция. Я под чутким онлайн-руководством MooSE всю процедуру проделал, заняло часа 4 или около того. Были скользкие моменты - ресайз объединённой партиции пришлось повторить - resize2fs /dev/hdc1 - в слаксе, ксандрос посчитал, что партиция sda1 (в слаксе - hdc1) заполнена полностью. Было ссыкотно, но обошлось :-) Огромное гранмерси MooSE - гуру и корифею ;-)

eugene 2008-09-13 18:45:22 (#)

Кстати. С партиции hdc2 лучше заранее удалить ручками содержимое /hdc2/var/tmp и /hdc2/var/cache/apt/archives - у меня первое очень долго копировалось, там было порядка 90000 файлов .ws.*, а из-за второго на партиции hdc1 тупо не хватило места, копирование (cd /mnt/hdc2 && cp -a sbin etc bin usr home lib var opt dev /mnt/hdc1/) пришлось повторять. Имейте в виду.

А ещё в строке
find . -name .wh.__dir_opaque -exec sh -c 'F="{}";echo rm -rf /mnt/hdc1/${F%/*}' \;

лишнее echo - тут выводится просто список файлов, и ничего не удаляется.

MooSE 2008-09-15 08:26:39 (#)

статью подправил:)

а про то что надо написать про удаление лишнего... я как-то не подумал. казалось что оно вроде как итак очевидно:)
Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2025 Вадим Калинников aka MooSE
Политика конфиденциальности