Клонирование системы на внешний диск [SOLVED]
Здравствуйте.
Я недавно купил внешний USB диск, хочу склонировать на него свою Генту (чтобы можно было пользоваться где угодно). Несколько вопросов:
1. Какую фс выбрать для диска? Ext3 вроде самая оптимальная в плане совместимости, есть аж два ifs драйвера и userspace утилита, а ещё плагин для тотал командера под альтернативную ос. Reiser3 тоже есть ifs драйвер и userspace утилита, но совсем ненаджные и юникод не понимают. Vfat наиболее совместимая (драйвер не нужен), но на диске 300гиб будет кластер 32киб, что не радует, да и имхо менее надежная она (300гиб это не шутка, fsck долго будет идти), плюс не уверен что система будет рада жить на ненативной фс. Ntfs религия не позволяет (ну и конечно тормозная она).
2. С какими cflags пересобирать world чтобы получить наиболее быструю но совместимую со старыми процессорами систему?
3. Как настроить xorg.conf чтобы иксы поднимались на любом железе?
4. Как настроить ядро для загрузки на любом железе (genkernel all будет достаточно, или ещё что надо)?
5. Эффективно ли будет использование squashfs+unionfs для корневого раздела? Или просто вывалить всё в чистую фс?
6. С какими ещё проблемами я могу столкнуться?
Пока план действий такой:
fdisk /dev/sdc # Разметка mkfs /dev/sdc1 # Создание фс mkdir /mnt/newsystem # Создание точки монтирования mount /dev/sdc1 /mnt/newsystem # Монтирование rsync -ax / /mnt/newsystem # Клонирование системы mount -o bind /proc /mnt/newsystem/proc # Подготовка к chroot mount -o bind /dev /mnt/newsystem/dev # Подготовка к chroot mount -o bind /sys /mnt/newsystem/sys # Подготовка к chroot chroot /mnt/newsystem /bin/bash # chroot env-update # Post-chroot source /etc/profiles # Post-chroot grep -v sda /proc/mounts /etc/mtab # Подготовка к grub-install grub-install --no-floppy /dev/sdc # grub-install nano /etc/make.conf # Настройка новых cflags emerge -ave --keep-going world # Пересборка мира с новыми cflags emerge -av genkernel # Подготовка к genkernel zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6 # Подготовка к genkernel genkernel all # genkernel blkid /dev/sdc1 # Узнать UUID раздела с системой nano /boot/grub/menu.lst # Настройка загрузчика (root=UUID=) nano /etc/fstab # Исправление fstab для описания разделов по UUID emerge coldplug # Для определения железа rc-update add coldplug boot # Для определения железа nano /etc/X11/xorg.conf # Настройка xorg (Как именно?)
- Для комментирования войдите или зарегистрируйтесь
Мое мнение по большинству
Мое мнение по большинству пунктов таково:
2. С какими cflags пересобирать world чтобы получить наиболее быструю но совместимую со старыми процессорами систему?
-march=i686 (или -mtune=i686, кому как), агрессивные флаги (наподобие -О3) убрать. Можнро добавить -pipe - компилить будет удобнее и быстрее
3. Как настроить xorg.conf чтобы иксы поднимались на любом железе?
Видеодрайвер указать vesa, в ядре - поддержку vesafb, устройства ввода настроить через evdev
4. Как настроить ядро для загрузки на любом железе (genkernel all будет достаточно, или ещё что надо)?
Драйверы устройств, что вам необходимы, скомпилить полностью, но модулями.
5. Эффективно ли будет использование squashfs+unionfs для корневого раздела? Или просто вывалить всё в чистую фс?
Решать вам. Я бы сделал так. Чтобы не загаживать чистую ФС логами и прочей лабудой.
И добавлю - смонтируйте /tmp в tmpfs после того, как пересоберете мир. Так удобнее и лучше.
Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"
Спасибо
Наконец то дошли руки сделать. В общем процесс:
# Разметка диска
gparted /dev/sdc
fdisk -l /dev/sdc
{
}
mkswap /dev/sdc1
mkfs.ext2 -L boot /dev/sdc2
mkfs.reiser4 -L root -o create=ccreg40,compress=gzip1 /dev/sdc3
# Монтирование новых разделов
mkdir /media/root /media/root/boot
mount /dev/sdc3 /media/root
mount /dev/sdc2 /media/root/boot
# Клонирование корневого раздела
mkdir /tmp/root
mount --bind / /tmp/root/
rsync -axv /tmp/root/ /media/root/
# Небольшая чистка
rm -r /var/log/* /var/tmp/* /tmp/*
mkdir /home/arago/
chown arago:arago /home/arago/
## Перенос диска на десктоп (ибо мощнее)
# Chroot
mount --rbind /dev/ /media/root/dev
mount --rbind /sys/ /media/root/sys
mount --rbind /proc/ /media/root/proc
chroot /media/root/ /bin/bash
# Post-chroot
env-update
source /etc/profile
setarch i686
# Пересборка мира (http://ru.gentoo-wiki.com/wiki/HOWTO_Полное_обновление_системы)
nano /etc/make.conf
{
}
emerge -avf world
emerge -1v linux-headers glibc binutils gcc-config gcc binutils-config
source /etc/profile
emerge -1bv glibc binutils gcc portage
emerge -1bkev system
emerge -vbke --keep-going --accept-properties=-interactive world
emerge app-emulation/virtualbox-bin
lafilefixer --justfixit
revdep-rebuild
# Genkernel
emerge -av genkernel
mkdir /usr/share/genkernel/x86
cp /boot/config-2.6.33.2arago-netbook38 /usr/share/genkernel/x86/kernel-config-2.6
genkernel all --menuconfig --install --disklabel --real-root=UUID=0522f02f-ae70-423e-88eb-2a759c93c402 --loglevel=3 --makeopts=-j2 --slowusb
{
}
# Настройка /etc/fstab
blkid /dev/sdc1
blkid /dev/sdc2
blkid /dev/sdc3
blkid /dev/sdc4
mkdir /mnt/hdd
nano /etc/fstab
{
}
# Инсталляция GRUB
touch /boot/hdd.marker
grub
{
}
dd if=/dev/sdc bs=512 count=1
blkid /dev/sdc3
nano /boot/grub/menu.lst
{
}
## Перезагрузка с внешнего диска
# Конфигурирование иксов
X -configure
mv /root/xorg.conf.new /etc/X11/xorg.conf
cat /etc/X11/xorg.conf
{
}
echo hostname="arago-generic" > /etc/conf.d/hostname
Результат - система грузится, иксы стартуют, музыка играет, видео работает.
Глюки - при загрузке изза vga=ask система требует внимания (а ведь карты разные бывают - есть ли какой нить способ автоматизировать выбор фреймбуффера кроме как прописать его жестко?), потом при монтировании корня на десктопе система требует немного подождать и затем нажать ентер (видимо диск не успевает переинициализироваться - под виртуалбоксом и на буке успевает, грузится нормально; --slowusb не помогло), иксы поднимаются с разрешением 800x600/640x480, при том что консоль поднимается с разрешением до 1280x1024 - как побороть кроме прописывания туевой хучи моделиней в xorg.conf? Ещё, в кдешном апплете монтирования дисков при указывании встроенных дисков они не монтируются (но это и на десктопе так - видимо глюк кде). Иксы поднимаются только если правильно прописан BusID - а он на разных машинах разный (впихнуть X -configure && mv /root/xorg.conf.new /etc/X11/xorg.conf в /etc/conf.d/local.start - уж больно костыль...).. Ещё смущает root (hd0,1) - пока вроде подходит ко всем трём системам, но где гарантия что так будет всегда. Конечно всё это можно поправить напильником во время загрузки, но уж больно влом, хочется чтобы всё сразу работало нормально...