Тема не новая, но для проведения аналогии пойдет.
Многие пользователи были неприятно удивлены, обнаружив, что обновить систему с помощью присланного диска стандартными средствами невозможно. Все потому, что начиная с релиза 6.06 Ubuntu рассылается бесплатно только в виде live CD, с которого предлагается установить систему с нуля.
Но к счастью имеется возможность извлечь пакеты из образа предустановленной ОС, размещенном на live CD. Описанию одного из способов как это сделать и посвящено данное мини-HOWTO.
Для начала установим необходимые программы:
sudo apt-get install squashfs-tools dpkg-repackПодгрузим модуль поддержки squashfs:
sudo modprobe squashfsПодготовка
Т. к. нам понадобятся права рута, чтобы не писать каждый раз sudo, запустим новый shell с максимальными привилегиями:
sudo -sСоздадим необходимые для работы директории: /tmp/squash — это просто точка монтирования образа, /usr/local/ubuntu-6.06 — это директория, в которой будут находиться извлеченные пакеты.
mkdir /tmp/squash
mkdir /usr/local/ubuntu-6.06
Далее подразумевается, что /media/cdrom0 — директория, в которую смонтирован live CD Ubuntu. Смонтируем находящийся на этом диске образ:
mount /media/cdrom0/casper/filesystem.squashfs /tmp/squash/ -o loopСмонтируем локальные директории в директории в образе следующим образом:
mount -o bind /usr/local/ubuntu-6.06 /tmp/squash/mnt
mount -o bind /tmp /tmp/squash/tmp
mount -o bind /usr/bin /tmp/squash/usr/local/bin
«Вход» в установочный диск
Теперь с помощью команды chroot зайдем в образ системы на live CD:
chroot /tmp/squashПерейдем в /mnt:
cd /mntВыполним следующую команду для начала процесса извлечения пакетов*:
dpkg --get-selections | awk '!/udev|deinstall/ {print $1}' | xargs dpkg-repackПосле того, как извлечение завершится (у меня на это ушло более получаса), выйдем из chroot-окружения, не забыв размонтировать локальные директории:
exit
umount /tmp/squash/mnt
umount /tmp/squash/tmp
umount /tmp/squash/usr/local/bin
Теперь в папке /usr/local/ubuntu-6.06 находятся все пакеты с установочного диска, кроме udev. Т. к. его нельзя извлечь вышеописанным способом (система просто напросто виснет), скачаем его вручную:
wget -P /usr/local/ubuntu-6.06\ http://archive.ubuntu.com/ubuntu/pool/main/u/udev/udev_079-0ubuntu34_i386.deb
Примечание
При обновлении до версии 6.10 проблем с пакетом udev не обнаружено. Поэтому извлекать пакеты нужно командой dpkg --get-selections | xargs dpkg-repack
Теперь осталось создать локальный репозиторий из извлеченных пакетов и обновить дистрибутив.
Создаем репозиторий:
cd /usr/local/ubuntu-6.06
dpkg-scanpackages . /dev/null | gzip > Packages.gz
Правим список репозиториев:
sudo edit /etc/apt/sources.list
deb file:/usr/local/ubuntu-6.06 ./
Обновляем систему:
apt-get update
apt-get dist-upgrade
Источник: http://b-k-b.nm.ru/ubuntu/update.html
Комментарии
при копипасте потерялись переносы в коде
MooSE, спасибо за поправку.
я уже писал подобное на опенказан (http://openkazan.info/node/844), и уже давным давно пробовал....и к моему большому сожалению и фиести и гутси тут же обваливались.
не скажу про харди...но я думаю что и она обвалится. Разве что попробовать переехать с нижнего релиза на верхний
З.Ы. может многоуважаемый fart нам покажет на своем примере :)))
я лишь публикую кой-какой материал, как любит указывать MooSE путем копипаста. читать все и экспериментаровать manofring, к сожалению, времени не хватает.
Отправить комментарий