|
Как подготовить полноценную инсталляцию ArchLinux на USB Flash.В этой заметке рассказано, как, имея работающий ArchLinux, поставить полноценный ArchLinux на USB-Flash. Затем, аналогично, можно поставить ArchLinux на жёсткий диск, загрузившись с USB-носителя. Собственно, для этоих целей я и делал такую флешку: чтобы поставить ArchLinux ни netbook и на embedded-систему, где загрузиться можно было только с флешки, а BIOSы обладали странными особенностями. Создаём файловую систему на флешке Если кто-то поковырялся и всё сломал ПодготовкаОпределяемся с именамиСоветую создать переменные с ключевыми именами и путями: export key_dev=/dev/sdb # устройство на которое ставим export key=/dev/sdb1 # партиция export key_label=ArchUSB-2011x07 # метка файловой системы export key_path=/mnt/new_arch # путь, куда будем монтировать Создаём файловую систему на флешкеmkfs.ext3 $key Можно и ext4, но с нею могут быть проблемы. Её хуже поддерживает GRUB, и драйверов под Windows для неё пока нет. (На момент написания заметки.) Для нормальной работы GRUB так же очень важно изменить тип партиции на 0x83. cfdisk Устанавливаем системуСтавим pacman и пакеты# монтируем mkdir $key_path mount $key $key_path # устанавливаем базу данных пакетов и ставим базовую систему mkdir -p $key_path/var/lib/pacman pacman -Sy -r $key_path mkdir -p $key_path/var/cache/pacman/pkg pacman -Su base --cachedir $key_path/var/cache/pacman/pkg -r $key_path # займёт около 600M # вносим коррективы chmod 666 $key_path/dev/null $key_path/dev/zero # аккуратно переходим в chroot cp /etc/resolv.conf $key_path/etc/ cp /etc/pacman.d/mirrorlist $key_path/etc/pacman.d mount -t proc proc $key_path/proc mount -t sysfs sys $key_path/sys mount -o bind /dev $key_path/dev chroot $key_path /bin/bash # ставим всё, что хотим, как-то так # (этот набор пакетов приведён исключительно для примера) pacman -Ss ssh pacman -S openssh pacman -S mc pacman -S extra/python pacman -S xorg-server pacman -S xorg-xinit pacman -S xterm pacman -S xorg-twm pacman -S fvwm pacman -S xf86-input-synaptics pacman -S xf86-video-intel pacman -S firefox pacman -S sudo pacman -S screen pacman -S tkabber pacman -S community/tls pacman -S extra/ispell pacman -S base-devel # добавить в /etc/pacman.conf # [archlinuxfr] # Server = http://repo.archlinux.fr/$arch pacman -Syu yaourt yaourt -S aur/vnc yaourt -S aur/ispell-ru-koi8-r-io # и так далее, что кому нужно # производим настройки системы # правим /etc/rc.conf # правим /etc/hosts # правим /etc/mkinitcpio.conf # HOOKS="base udev usb autodetect pata scsi sata filesystems usbinput" # ^___ добавить именно в это место # чтобы была возможность загрузки с USB # ,_ это надо сделать, даже если вы не правили mkinitcpio.conf # | # v mkinitcpio -p linux # /etc/locale.gen cat /etc/locale.gen | grep -v '#' ru_RU.KOI8-R KOI8-R ru_RU.UTF-8 UTF-8 locale-gen # готовим почву для GRUB cp -a /usr/lib/grub/i386-pc/* /boot/grub passwd adduser # выходим из chroot exit umount $key_path/proc umount $key_path/sys umount $key_path/dev Настраиваем системуУзнаём UUID файловой системыblkid $key f1df0c45-b003-4bf1-b87c-6916ff15b880 Далее используем его. Хотя эти фокусы прокатывают далеко не всегда. Возможно, в вашем случае единственный рабочий вариант — /dev/sda1 /boot/menu.lsttitle Arch Linux [(hd0,0)/boot/vmlinuz-linux UUID] root (hd0,0) kernel /boot/vmlinuz-linux root=UUID=f1df0c45-b003-4bf1-b87c-6916ff15b880 ro initrd /boot/initramfs-linux.img /etc/fstabdevpts /dev/pts devpts defaults 0 0 shm /dev/shm tmpfs nodev,nosuid 0 0 UUID=f1df0c45-b003-4bf1-b87c-6916ff15b880 / ext3 defaults 0 tmpfs /tmp tmpfs nodev,nosuid 0 0 Можно ещё создать swap-файл, если есть острая необходимость, хотя, надо отдавать себе отчёт в том, что флешка долго такого издевательства ен выдержит. /etc/inittabЧтобы видеть сообщения системы во время загрузки, полезно внести вот такие изменения: c1:2345:respawn:/sbin/agetty --noissue --noclear -8 -s 38400 tty1 linux /etc/sudoersСоздаём пользователя и добавляем его в sudoers (опции по вкусу): user ALL=(ALL) NOPASSWD: ALL Отключаем флешкуumount $key_path Установка загрузчика (GRUB)grub grub> find /boot/grub/stage1 grub> root (hd1,0) grub> setup (hd1) grub> quit Обратите внимание, что root в конфигурации GRUB не равен root в момент установки. Это связано с переименованием устройств в момент загрузки с флешки. Строго говоря, это дело зависит от вашего BIOS, на на современных системах всё должно работать именно в такой конфигурации. Полезные ссылкиПодробный рассказ про то, как изменить размер NTFS-раздела без потери данных. Рассказ очень подробный и качественный. И хот он довольно старый, но у меня всё тоже самое сработал на ntfsresize 3.x. Если кто-то поковырялся и всё сломалТакое бывает, если вашу флешку берёт какой-нибудь приятель для восстановления древней системы. Он там наваливает доисторических библиотек и вообще всё портит. Переустановить все пакеты можно так: #!/bin/bash
pacman -Q | awk '{ print $1 }' | sort > /tmp/pacman-installed.tmp
pacman -Qm | awk '{ print $1 }' | sort | comm -3 /tmp/pacman-installed.tmp - > /tmp/pacman-to-reinstall.tmp
pacman -S --noconfirm $(cat /tmp/pacman-to-reinstall.tmp)
rm /tmp/pacman-{to-reinstall,installed}.tmp
Вы можете связаться со мной по e-mail a.michurin@gmail.com.
|