Задача: Нужно, используя уже установленную Ubuntu, установить систему на другой винчестер. Решение:
Для начала раздел, куда будет ставиться
Ubuntu, отформатируйте в Редакторе разделов (gparted) и установите на
разделе атрибут «boot», иначе после установки компьютер скажет INSERT
SYSTEM DISK или что то в этом роде.
Запомните его путь (например /dev/sda1). Разархивированный архив со
скриптами и всеми файлами надо положить в папку /home/setup. Это важно!
Иначе скрипт не выполнится. Если не нравится местоположение скрипта,
просмотрите скрипт и исправьте пути на свои. Разобраться в нем не
сложно.
Первый файл setup.sh Его содержание:
#!/bin/bash
disk=/dev/sdb3 #раздел на который будет ставиться убунта
version=jaunty #версия убунты.
arch=i386 #архитектура
path=/home/slimer/distr/ubuntu-9.04-alternate-i386.iso #путь до вашего образа Ubuntu
pathstp=/home/setup #измените путь на тот, куда вы разахивировали архив.
#это все переменные, изменяйте их значение в зависимости от раздела и версии убунты. в целом скрипт будет работать.
mkdir /newubuntu #создание папки для монтирования новой системы
mount $disk /newubuntu #монтирование раздела куда будет ставиться Ubuntu
apt-get install debootstrap -y #установка debootstrap'а, если у кого он не установлен...
mkdir /mnt/cd #создание папки для монтирования образа Ubuntu
mount -o loop $path /mnt/cd/ #<b>монтирование образа ubuntu</b>
debootstrap --arch $arch $version /newubuntu file:/mnt/cd #Идет установка базовой системы убунту на новый винчестер
cp /etc/fstab /newubuntu/etc/fstab #копируется ваш fstab в новую систему
cp /etc/hostname /newubuntu/etc/hostname #копируется ваш hostname в новую систему
cp /etc/hosts /newubuntu/etc/hosts #копируется ваш hosts в новую систему
cp $pathstp/sourcescd /newubuntu/etc/apt/sources.list #источники пакетов из образа
cp $pathstp/sources.list /newubuntu/etc/sources.inet #на будущее копируется источники из интернета
cp $pathstp/sudoers /newubuntu/etc/sudoers #файл sudoers копируется в вашу новую систему
mkdir /newubuntu/home/distr/
cp $pathstp/chrootsetup.sh /newubuntu/home/distr/ #копирование второй части установки внутрь новой системы
cp $path /newubuntu/home/distr #пригодится нам еще образ
mount -o bind /dev /newubuntu/dev #необходимо для установки GRUB
mount -o bind /proc /newubuntu/proc #необходимо для вообще работы новой системы
LANG= chroot /newubuntu /home/distr/chrootsetup.sh #переход к выполнению скрипта уже в новой системе
Содержание /home/setup/sourcescd должно быть примерно таким:
deb file:///mnt/cd/ jaunty restricted universe main multiverse stable unstable
Идем дальше. После того как установилось, редактируем файл fstab, который находится в /newubuntu/etc/. В одной вкладке терминала пишем:
ls -l /dev/disk/by-uuid
Через редактор разделов легко разобраться что есть что и подправить под свои нужды fstab, желательно по UUID, а то эти все /dev/sdxx не очень надежны и не постоянны. После того, как закончили, выполняем команду:
Создается файл menu.lst. По усмотрению, можете поправить /etc/hosts, hostname…
Вроде бы все. Скрипт примитивный. Если где ошибся — исправляйте!
Повторю еще раз: ПРОСМОТРИТЕ СКРИПТ И ИСПРАВЬТЕ МОИ ПУТИ НА СВОИ.
Не забудьте присвоить скриптам атрибут исполнения:
chmod +x setup.sh
chmod +x chrootsetup.sh
И все =) Запустите файл setup.sh из папки /home/setup/ и откиньтесь на спинку кресла
идите пить чай или смотреть фильм, но не забудьте присматривать за
выполнением скрипта. Пока он выполняется, будут выдаваться кое-какие
вопросы. Например пароль, язык.
Удачи!
Для вашего удобства выкладываю все скрипты в одном архиве.
Скачать можно по любой из ссылок: 1, 2, 3