Никогда не любил устанавливать Ubuntu с Live-CD/DVD. Иногда может быть диск поцарапан и установка прерывается на самом интересном месте, музыку не послушаешь, фильмы не посмотришь. Я устанавливаю Ubuntu из iso-образа со своего жесткого диска на другой винчестер или раздел. Читая раньше в инете статьи, как ставить с жесткого диска, я просто слепо следовал инструкциям, копируя и выполняя команды. Бывали проблемы с загрузчиком grub, приходилось дополнительно искать в интернете решения, как исправить эти ошибки. Затем, чтобы не мучаться, я сделал свой скрипт установки.
Задача: Нужно, используя уже установленную 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 #переход к выполнению скрипта уже в новой системе
* This source code was highlighted with Source Code Highlighter.
Второй файл chrootsetup.sh
- #!/bin/bash
- user=slimer #имя будущего юзера
- disk=/dev/sdb3 #раздел на который будет ставиться убунту.
- obraz=ubuntu-9.04-alternate-i386.iso
-
- mount -t sysfs sysfs /sys #монтирование sysfs
- dpkg-reconfigure console-setup #настройка языка в консоли и всего прочего
- mkdir /mnt/cd #создание папки для монтирования образа
- mount -o loop /home/distr/$obraz /mnt/cd #монтирование образа
- apt-get update #получение пакетов из образа
- apt-get install ubuntu-standard grub linux-image linux-image-generic linux-headers-generic build-essential ssh samba -y #установка важных и нужных пакетов
- apt-get install ubuntu-desktop gnome-user-guide-ru language-pack-gnome-ru language-pack-ru -y #установка gnome
- #apt-get install xubuntu-desktop -y #у кого образ xubuntu раскоментируйте эту строчку и закомментируйте предыдущюю
- #apt-get install kubuntu-desktop -y #у кого образ kubuntu раскоментируйте эту строчку и закомментируйте 2 предыдущих
- cp /proc/mounts /etc/mtab #необходимо для grub
- grub-install --recheck $disk #установка grub
- echo "Добавление Юзера. Сейчас вам будет предложено ввести пароль и свои данные"
- adduser $user #создание пользователя
- addgroup --system admin #создание группы
- adduser $user admin #добавление юзера в группу админ
- cp /etc/apt/sources.inet /etc/apt/sources.list #Замена источников с диска на источники с интернета
- apt-get update
- #apt-get purge ekiga evolution evolution-common evolution-data-server pidgin pidgin-data transmission-common rhythmbox totem totem-common -y #удаляю всякую чепуху ненужную. можете закомментировать.
- apt-get dist-upgrade -y
* This source code was highlighted with Source Code Highlighter.
Содержание /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 не очень надежны и не постоянны. После того, как закончили, выполняем команду:
sudo LANG= chroot /newubuntu /bin/bash
sudo update-grub
Создается файл menu.lst. По усмотрению, можете поправить /etc/hosts, hostname…
Вроде бы все. Скрипт примитивный. Если где ошибся — исправляйте!
Повторю еще раз: ПРОСМОТРИТЕ СКРИПТ И ИСПРАВЬТЕ МОИ ПУТИ НА СВОИ.
Не забудьте присвоить скриптам атрибут исполнения:
chmod +x setup.sh
chmod +x chrootsetup.sh
И все =) Запустите файл setup.sh из папки /home/setup/ и
Удачи!
Для вашего удобства выкладываю все скрипты в одном архиве.
Скачать можно по любой из ссылок: 1, 2, 3