Archlinux — Установка ArchLinux на другой винт или что делать, когда не работает cdrom
Предисловие
Так получилось, что у меня ноутбук. И вот беда - этот пакостный dvd+rw отказывается писать диски. Точнее писать он их пишет, но только прочитать потом ничего не выйдет....(ненавижу TSSTcorp)
Но как быть, если нужно поставить ArchLinux, скажем, на usb винт?
Я думаю многие знают, что установка арча это всего лишь установка пакетов на диск, и немного редактирования конфигов =) так вот, для установки вполне сгодится уже имеющийся Арч (кажется мне, что даже любой линукс, в который поставитьигрушку pacman сгодится для этого дела).
Поэтому я решил не впадать в депресию, а поставить все-таки арч на винт. Еще я захотел зашифровать корневой раздел =)
Приступим.
Необходимые инструменты:
Для начала отредактируйте необходимый диск так, как вам хочется. У меня получилось так - sdb1 - /boot , ext2 (обязательно отдельный раздел(если ставите шифрование)!), sdb3 - / (будет зашифрован), sdb4 - swap (можно тоже зашифровать, но я решил что пока это не главное), sdb5 - какая то свалка =)
Создадим своп - mkswap /dev/sdb4
Теперь создадим зашифрованный раздел.
Так мы отформатировали наш раздел в зашифрованный. Теперь подключим его
После устройства я написал root, но можно открыть его как любое имя. Главное чтобы помнили =)
Устройство появилось в /dev/mapper/root, но сначала его надо отформатировать в какую-нибуть фс.
Теперь можно подключить =)
Следующим шагом будет создать нужные папки.
Теперь подключим наш /boot раздел
Все, почти все готово, кроме одной детали =) Редактируем наш конфиг /etc/pacman.conf
У меня он стал таким:
Ну тут выделено все то, что я изменил =) надеюсь вы разберетесь)
теперь смело приступаем к установке.
Ждем пока установится, можно попить чайку =)
Можно еще установить те пакеты, которые вам нужно.
Когда установилось, отмонтируем /mnt/boot - это нужно будет при установке загрузчика.
теперь смонтируем наши /dev, /sys, /proc в будущую систему, чтобы можно было сделать chroot =)
Теперь chroot /mnt =) (если кто не знает - все дальнейшие команды выполняются отсюда, и если установили только базу - есть редактор vi и nano (нано проще =)) )
Поскольку я ставил систему на usb диск, мне надо было отредактировать /etc/mkinitcpio.conf (в новой системе уже), чем я и занялся.
Мой файл получился таким:
Еще нам нужно отредакрировать fstab, чем мы и займемся =)
Я решил делать все через UUID, поскольку диск внешний и может использоваться на других компьютерах.
Чтобы просмотреть UUID всех разделов, напишите blkid
У меня вышли такие UUID
Которые я и записал в fstab
Осталось нам отредактировать /boot/grub/menu.lst и установить загрузчик =)
Но помните я говорил что надо отключить /boot? Так и есть, теперь он пуст =) подключим его опять командой mount /dev/sdb1 /boot
Как видите - я прописал раздел в cryptdevice через его uuid и через :root, он включится первым и потом появится устройство /dev/mapper/root, который и есть наш корневой раздел =)
Да, еще когда я редактировал /etc/mkinitcpio.conf я забыл пересоздать эти образы(ну почти забыл =))
Сделаем это так - mkinitcpio -p kernel26.
И осталось самое главное - установить загрузчик.
Я установил просто - grub-install /dev/sdb.
Также поставим пароль на root командой passwd.
На этом наша установка завершена. Кому надо - может поправить конфиги еще, кому не надо - можете перезагрузится, проверить результат =) Удачи!
За забытые пароли и сгоревшие винты администрация ответствености не несет =)
Так получилось, что у меня ноутбук. И вот беда - этот пакостный dvd+rw отказывается писать диски. Точнее писать он их пишет, но только прочитать потом ничего не выйдет....
Но как быть, если нужно поставить ArchLinux, скажем, на usb винт?
Я думаю многие знают, что установка арча это всего лишь установка пакетов на диск, и немного редактирования конфигов =) так вот, для установки вполне сгодится уже имеющийся Арч (кажется мне, что даже любой линукс, в который поставить
Поэтому я решил не впадать в депресию, а поставить все-таки арч на винт. Еще я захотел зашифровать корневой раздел =)
Приступим.
Необходимые инструменты:
- Уже установленый Арч, или линукс с пакменом =)
- кому надо - {qt,g}parted/(c)fdisk
- Желательно скачанный репозиторий (если у кого быстрый инет либо кому не лень ждать то не надо =))
- и консоль =)
для любителей гуев - можете написать сами =)
Для начала отредактируйте необходимый диск так, как вам хочется. У меня получилось так - sdb1 - /boot , ext2 (обязательно отдельный раздел(если ставите шифрование)!), sdb3 - / (будет зашифрован), sdb4 - swap (можно тоже зашифровать, но я решил что пока это не главное), sdb5 - какая то свалка =)
Создадим своп - mkswap /dev/sdb4
Теперь создадим зашифрованный раздел.
1 2 3 4 5 6 7 8 9 10 11 |
[root@NNIIL ~]# cryptsetup luksFormat /dev/sdb3 |
Так мы отформатировали наш раздел в зашифрованный. Теперь подключим его
1 2 3 4 |
[root@NNIIL ~]# cryptsetup luksOpen /dev/sdb3 root |
После устройства я написал root, но можно открыть его как любое имя. Главное чтобы помнили =)
Устройство появилось в /dev/mapper/root, но сначала его надо отформатировать в какую-нибуть фс.
1 2 |
[root@NNIIL ~]# mkfs.ext4 /dev/mapper/root |
Теперь можно подключить =)
mount /dev/mapper/root /mnt
Следующим шагом будет создать нужные папки.
1 2 3 4 5 6 |
[root@NNIIL ~]# mount /dev/mapper/root /mnt/ |
Теперь подключим наш /boot раздел
[root@NNIIL ~]# mount /dev/sdb1 /mnt/boot/
Все, почти все готово, кроме одной детали =) Редактируем наш конфиг /etc/pacman.conf
У меня он стал таким:
[root@NNIIL ~]# cat /etc/pacman.conf
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
RootDir = /mnt
DBPath = /mnt/var/lib/pacman/
CacheDir = /var/cache/pacman/pkg/
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
RootDir = /mnt
DBPath = /mnt/var/lib/pacman/
CacheDir = /var/cache/pacman/pkg/
Ну тут выделено все то, что я изменил =) надеюсь вы разберетесь)
теперь смело приступаем к установке.
pacman -Sy && pacman -S base
Ждем пока установится, можно попить чайку =)
Можно еще установить те пакеты, которые вам нужно.
Когда установилось, отмонтируем /mnt/boot - это нужно будет при установке загрузчика.
umount /mnt/boot
теперь смонтируем наши /dev, /sys, /proc в будущую систему, чтобы можно было сделать chroot =)
mount --bind /dev /mnt/dev && mount --bind /sys /mnt/sys && mount /proc /mnt/proc
Теперь chroot /mnt =) (если кто не знает - все дальнейшие команды выполняются отсюда, и если установили только базу - есть редактор vi и nano (нано проще =)) )
Поскольку я ставил систему на usb диск, мне надо было отредактировать /etc/mkinitcpio.conf (в новой системе уже), чем я и занялся.
Мой файл получился таким:
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES="piix ide_disk reiserfs"
MODULES=""
# BINARIES
# This setting includes, into the CPIO image, and additional
# binaries a given user may wish. This is run first, so may
# be used to override the actual binaries used in a given hook.
# (Existing files are NOT overwritten is already added)
# BINARIES are dependancy parsed, so you may safely ignore libraries
BINARIES=""
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in anyway. This is useful for config files.
# Some users may wish to include modprobe.conf for custom module options,
# like so:
# FILES="/etc/modprobe.conf"
FILES=""
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H ' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
# This setup specifies all modules in the MODULES setting above.
# No raid, lvm2, or encrypted root is needed.
# HOOKS="base"
#
# This setup will autodetect all modules for your system and should
# work as a sane default
# HOOKS="base udev autodetect pata scsi sata filesystems"
#
# This is identical to the above, except the old ide subsystem is
# used for IDE devices instead of the new pata subsystem.
# HOOKS="base udev autodetect ide scsi sata filesystems"
#
# This setup will generate a 'full' image which supports most systems.
# No autodetection is done.
# HOOKS="base udev pata scsi sata usb filesystems"
#
# This setup assembles an pata raid array with an encrypted root FS.
# Note: See 'mkinitcpio -H raid' for more information on raid devices.
# HOOKS="base udev pata raid encrypt filesystems"
#
# This setup loads an lvm2 volume group on a usb device.
# HOOKS="base udev usb lvm2 filesystems"
HOOKS="base udev autodetect ide usb usbinput pata scsi sata encrypt filesystems"
# COMPRESSION
# Use this to compress the initramfs image. With kernels earlier than
# 2.6.30, only gzip is supported, which is also the default. Newer kernels
# support gzip, bzip2 and lzma.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES="piix ide_disk reiserfs"
MODULES=""
# BINARIES
# This setting includes, into the CPIO image, and additional
# binaries a given user may wish. This is run first, so may
# be used to override the actual binaries used in a given hook.
# (Existing files are NOT overwritten is already added)
# BINARIES are dependancy parsed, so you may safely ignore libraries
BINARIES=""
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in anyway. This is useful for config files.
# Some users may wish to include modprobe.conf for custom module options,
# like so:
# FILES="/etc/modprobe.conf"
FILES=""
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H ' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
# This setup specifies all modules in the MODULES setting above.
# No raid, lvm2, or encrypted root is needed.
# HOOKS="base"
#
# This setup will autodetect all modules for your system and should
# work as a sane default
# HOOKS="base udev autodetect pata scsi sata filesystems"
#
# This is identical to the above, except the old ide subsystem is
# used for IDE devices instead of the new pata subsystem.
# HOOKS="base udev autodetect ide scsi sata filesystems"
#
# This setup will generate a 'full' image which supports most systems.
# No autodetection is done.
# HOOKS="base udev pata scsi sata usb filesystems"
#
# This setup assembles an pata raid array with an encrypted root FS.
# Note: See 'mkinitcpio -H raid' for more information on raid devices.
# HOOKS="base udev pata raid encrypt filesystems"
#
# This setup loads an lvm2 volume group on a usb device.
# HOOKS="base udev usb lvm2 filesystems"
HOOKS="base udev autodetect ide usb usbinput pata scsi sata encrypt filesystems"
# COMPRESSION
# Use this to compress the initramfs image. With kernels earlier than
# 2.6.30, only gzip is supported, which is also the default. Newer kernels
# support gzip, bzip2 and lzma.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
Еще нам нужно отредакрировать fstab, чем мы и займемся =)
Я решил делать все через UUID, поскольку диск внешний и может использоваться на других компьютерах.
Чтобы просмотреть UUID всех разделов, напишите blkid
У меня вышли такие UUID
1 2 3 4 5 |
/dev/sdb1: UUID="beb420de-6dc3-4bb4-88b2-7dd261e15298" TYPE="ext2" |
Которые я и записал в fstab
[root@NNIIL /]# cat /etc/fstab
#
# /etc/fstab: static file system information
#
#
#
# /etc/fstab: static file system information
#
#
Осталось нам отредактировать /boot/grub/menu.lst и установить загрузчик =)
Но помните я говорил что надо отключить /boot? Так и есть, теперь он пуст =) подключим его опять командой mount /dev/sdb1 /boot
title Arch Linux [/boot/vmlinuz26]
root (hd0,0)
kernel /vmlinuz26 cryptdevice=/dev/disk/by-uuid/b4fc45f3-ee9c-4747-99a0-a217e8a440b5:root root=/dev/mapper/root ro
initrd /kernel26.img
title Arch Linux Fallback
root (hd0,0)
kernel /vmlinuz26 cryptdevice=/dev/disk/by-uuid/b4fc45f3-ee9c-4747-99a0-a217e8a440b5:root root=/dev/mapper/root ro
initrd /kernel26-fallback.img
root (hd0,0)
kernel /vmlinuz26 cryptdevice=/dev/disk/by-uuid/b4fc45f3-ee9c-4747-99a0-a217e8a440b5:root root=/dev/mapper/root ro
initrd /kernel26.img
title Arch Linux Fallback
root (hd0,0)
kernel /vmlinuz26 cryptdevice=/dev/disk/by-uuid/b4fc45f3-ee9c-4747-99a0-a217e8a440b5:root root=/dev/mapper/root ro
initrd /kernel26-fallback.img
Как видите - я прописал раздел в cryptdevice через его uuid и через :root, он включится первым и потом появится устройство /dev/mapper/root, который и есть наш корневой раздел =)
Да, еще когда я редактировал /etc/mkinitcpio.conf я забыл пересоздать эти образы
Сделаем это так - mkinitcpio -p kernel26.
И осталось самое главное - установить загрузчик.
Я установил просто - grub-install /dev/sdb.
Также поставим пароль на root командой passwd.
На этом наша установка завершена. Кому надо - может поправить конфиги еще, кому не надо - можете перезагрузится, проверить результат =) Удачи!