Установка (K)Ubuntu 20.04, BIOS, MBR
Сразу отвечу, зачем это. Ноутбук Samsung RF511 2012 года рождения. У него, видимо, не UEFI с поддержкой legacy, а BIOS с прилепленным UEFI. В интернетах жалобы на окирпичивание Самсунгов тех годов после очередной установки какой-нибудь ОС. Да и на этом были сиптомы, но «сами собой прошли». И вообще, плохо оно как-то сделано.
Вопрос первый. Как лучше подготовить флешку? Если простым dd, то ноутбук, переключенный в режим legacy с нее не стартует. Сделать как-то, чтобы флешка работала в legacy? А как лучше это сделать? Или (вопрос один.один) ставить систему, загрузившись с флешки с UEFI, а при первой перезагрузке переключиться на legacy?
Вопрос второй. Я как-то забыл, как оно, MBR? Создать новую таблицу на устройстве, сделать желаемые разделы, а дальше установщик «сам»? А что у MBR было, вместо чего /boot/efi сделали? Я в упор забыл. Хотя, вру, конечно, помню, что вместо /boot/efi, когда MBR было, вообще ничего не надо было, но подозрение на ложные воспоминания.
Еще вопрос. Как зачистить UEFI? Оно даже Винду прошлого хозяина помнит. А я помню, что как-то чистил, неправильно, что потом вообще не грузилось, а еще потом «восстановил», а оно «восстановилось» вместе с тем, от чего чистил.
И еще вопрос, глупый. Я зачем-то вытаскивал второй накопитель при установке системы. Хотя, конечно, не «зачем-то», а от того, что лет >10 тому назад ставил, емнип, Альт, так его установщик сначала предложил всё разметить, как мне нравится, а потом затер всё, что нашел. В принципе, вопрос, сделает ли мне установщик нормальный fstab, если я на одном накопителе сделаю / /home /swap , а другой накопитель (два раздела с очень нужным хламом) во время установки будет сидеть там, где и сидит? Сейчас его в fstab нет, его udisk2 монтирует, и как-то долго. Самостоятельно приделать его в fstab пробовал, но что-то чему-то мешает.
Очень странные вопросы. Конкретно про Samsung RF511 ничего не скажу, но с флешками было всё просто. Втыкаешь в один комп, втыкаешь в другой. Если в одном грузится, а в другом нет, то это проблемы компа, а не флешки. И я не помню каких-то изощрённых способов создания загрузочной флешки с mbr. Но можете просто по dd’шить на флешку разные образы, допустим memtest старый, freedos и т.д., чтобы понять, может ли ваш ноут грузится с mbr флешки.
А что у MBR было, вместо чего /boot/efi сделали?
Первые сектора раздела или нулевой цилиндр. Там было продолжение загрузчика из MBR. Многие ФС начинаются не с самого начала раздела.
Зачем вам чистить EFI, если ноут болезненый, вдруг кирпичом станет?
Самостоятельно приделать его в fstab пробовал, но что-то чему-то мешает.
Лучше отключите диск, с fstab разоратся проще, чем восстанавливать данные. Никаких гарантий, что в установщике нет ошибок, или не будет ошибок в ваших действиях.
Вобще я не понял, если у вас там сейчас работающий линукс, с рабочим загрузчиком, то загрузчик можно и оставить. Да и систему можно поставить в виртуалку и потом скопировать.
С версии 20.04 установщик при автоматической разметке всегда создает раздел EFI, и ставит GRUB2 в режиме UEFI+BIOS или чисто UEFI. Чтобы поставить ОС в режиме чисто BIOS, нужно сделать разметку без раздела UEFI руками (минимальная разметка для BIOS состоит из таблицы mbr и одного раздела под /, при этом раздел должен иметь отступ от начала на 1 MiB, чтобы GRUB2 влез, как-то так:
sudo parted /dev/sda mklabel msdos mkpart primary ext4 1MiB 100% set 1 boot on quit
), проигнорировать предупреждение установщика, а после того, как на последнем шаге установки загрузчика он упадет с ошибкой перезагрузиться с флешки и поставить GRUB2 руками через chroot: https://help.ubuntu.ru/wiki/восстановление_grub
Писать образ как обычно — через dd на блочное устройство без изменений:
dd if=/path/to/image.iso of=/dev/sdX bs=8M status=progress oflag=direct
Vsevolod-linuxoid ★★★★★ ( 31.10.20 06:41:11 MSK )
Последнее исправление: Vsevolod-linuxoid 31.10.20 06:47:20 MSK (всего исправлений: 3)
понять, может ли ваш ноут грузится с mbr флешки.
Понять-то его не мудрено было:) Если в BIOS включен режим legacy, он грузится с «mbr флешки», но, емнип, с флешки, на которую я просто dd образ Неона на 18.04 Убунте, он не грузился. Если в BIOS включен режим EFI, то он грузится с флешек, на которых GPT, но не грузится с тех, где MBR.
Первые сектора раздела или нулевой цилиндр. Там было продолжение загрузчика из MBR.
Да, вспомнил теперь. Есть master boot record, которую вообще нельзя трогать. Интересно, в каком месте она у современных устройств, и возможно ли ее действительно потрогать. И есть таблица разделов, которая в самом начале, перед, собственно, разделами.
Зачем вам чистить EFI, если ноут болезненый, вдруг кирпичом станет?
Да вот, мысль была, что есть у ноутбука энергонезависимая память, в которую пишутся не только настройки BIOS, но и всякая фигня уефиёвая, и эта фигня еще и монтируется в ФС работающей системы. Что эта память может переполниться и сдохнуть. Поэтому лучше почистить и больше не трогать.
Теперь мне кажется, что я переоценил хитрожопость девайса. Вероятнее, он при включении просто читает GPT с накопителей, и на основе этого показывает табличку с вариантами загрузки. Винду от прошлого хозяина он может «помнить» от того, что на старом винте я не переделывал таблицу разделов, а просто погрохал существующие и сделал новые. На новом ssd я как с самого начала сделал таблицу, так и тоже ее не переделывал. От этого ноутбук «помнит» всякие старые Убунты. Короче, раз я всё болимень нужное уже руками побекапил, то эту свою версию по поводу особенностей своего ноутбука я и проверю.
Лучше отключите диск, с fstab разоратся проще, чем восстанавливать данные. Никаких гарантий, что в установщике нет ошибок, или не будет ошибок в ваших действиях.
Теперь тоже вспоминаю. У Кубунту и Неона установщик предлагал, для начала, выбрать физический диск, а потом предлагал занять его весь, или разметить руками, или еще что-то. Я размечал, оставлял кусок вообще нетронутым, установщик так всё и делал.
С fstab разобраться кому-то просто, а мне оказалось никак. Диск с хламом видно только если про него в fstab вообще ничего не написано. Его или systemd «как-то сам» монтирует, или Кеды.
Вот, сейчас я этот свой бред эксперементально проверю. Если ноутбук сдохнет, прошу считать, что он предпочел умереть свободным, чем жить. ээ. все равно свободным. Если не сдохнет, прошу не считать.
id101010 / archlinux_install_bios.md
Get the latest iso and checksums from a mirror near you. The recommended mirror below is maintained by me and located in a datacenter based in switzerland. Since new isos are not built on a daily basis, you may need to choose the newest iso yourself.
$ wget https://mirror.puzzle.ch/archlinux/iso/latest/archlinux-$(date +%Y.%m.%d)-x86_64.iso archlinux.iso $ wget https://mirror.puzzle.ch/archlinux/iso/latest/md5sums.txt $ wget https://mirror.puzzle.ch/archlinux/iso/latest/sha1sums.txt
Check if the download is valid.
$ md5sum --check md5sums.txt $ sha1sum --check sha1sums.txt
Create a bootable usb flash drive, make sure /dev/sdX corresponds to the usb drive.
$ dd if=archlinux.iso of=/dev/sdX bs=1M status=progress && sync
Boot and check your internet connection, fix if necessary.
Enable network time synchronization.
Check if the time got synchronized.
Create partitions according to the partitioning scheme above. Use a mbr parition table.
Create a partition table that looks like the following example
Disk /dev/sda: 477 GiB, 512110190592 bytes, 1000215216 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x971ef2ea Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 1000215215 998116016 476G 83 Linux
Now create a filesystem on the /boot partition. Syslinux needs the 64bit option of ext4 to be disabled since it can only handle 32bit block sizes. You don’t want a 16TiB boot partition anyway. Make sure to set the option right otherwise your bootloader won’t load.
mkfs.ext4 -L boot -O '^64bit' /dev/sda1
Create an encrypted container containing the logical volumes /root and swap. Make sure to use a safe passphrase.
$ cryptsetup luksFormat --type luks2 -c aes-xts-plain64 -s 512 /dev/sda2 $ cryptsetup open /dev/sda2 cryptlvm $ pvcreate /dev/mapper/cryptlvm $ vgcreate vg0 /dev/mapper/cryptlvm $ lvcreate -L 16G vg0 -n swap # This should be at least the size of your RAM if you want hybernation to work $ lvcreate -l 100%FREE vg0 -n root $ mkfs.ext4 /dev/mapper/vg0-root $ mkswap /dev/mapper/vg0-swap
Mount everything on the live system.
$ mkdir /mnt/boot $ mount /dev/mapper/vg0-root /mnt $ mount /dev/sda1 /mnt/boot
Activate the swap partition.
If the output looks like this you’re good to go.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 477G 0 disk ├─sda1 8:1 0 1G 0 part /mnt/boot └─sda2 8:2 0 476G 0 part └─main 254:0 0 476G 0 crypt ├─vg0-swap 254:1 0 16G 0 lvm [SWAP] └─vg0-root 254:2 0 440G 0 lvm /mnt
3. Install base system and bootloader
I strongly recommend to select a fast mirror for the base installation. This will greatly improve the download speed. Eighter uncomment the server in the provided mirrorlist or use the following suggestion.
$ rm /etc/pacman.d/mirrorlist $ echo 'Server = http://mirror.puzzle.ch/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist
Install the base system, bootloader and some additional components using pacstrap.
$ pacstrap /mnt base base-devel syslinux linux linux-firmware vim git
Install the syslinux bootloader.
$ syslinux-install_update -i -a -m -c /mnt
Edit the /mnt/boot/syslinux/syslinux.cfg bootloader configuration to support your cryptlvm. To do this you need to change the APPEND lines for the Arch and Archfallback targets. To make sure your system has the right keyboard layout when entering the LUKS key, append a location and language entry to the kernel line. The example below uses the Swiss QWERTY layout. If you use an english QWERTZ layout you can omit these entries. The Resume statement is used for hibernation. If you don’t want this you can omit it as well.
. LABEL arch MENU LABEL Arch Linux LINUX ../vmlinuz-linux APPEND cryptdevice=/dev/sda2:vg0 root=/dev/mapper/vg0-root resume=/dev/mapper/vg0-swap rw lang=en locale=de_CH.UTF-8 quiet splash INITRD ../initramfs-linux.img LABEL archfallback MENU LABEL Arch Linux Fallback LINUX ../vmlinuz-linux APPEND cryptdevice=/dev/sda2:vg0 root=/dev/mapper/vg0-root resume=/dev/mapper/vg0-swap rw lang=en locale=de_CH.UTF-8 quiet splash INITRD ../initramfs-linux-fallback.img .
Generate fstab using UUIDs as representation.
$ genfstab -pU /mnt >> /mnt/etc/fstab
4. Chroot into the System and do a minimal configuration
Chroot into your new base system.
Set timezone, and hostname and set your hwclock to utc.
$ ln -sf /usr/share/zoneinfo/Europe/Zurich /etc/localtime $ hwclock --systohc --utc
Configure your locales. Omit the swiss german line if you don’t need it.
$ echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen $ echo "de_CH.UTF-8 UTF-8" >> /etc/locale.gen $ locale-gen $ echo "LANG=en_US.UTF-8" >> /etc/locale.conf $ echo "LC_ALL=C" >> /etc/locale.conf
Set a hostname, keymap and nice console font.
echo "myhostname" >> /etc/hostname echo "KEYMAP=de_CH-latin1" >> /etc/vconsole.conf # Change to your locale echo "FONT=lat9w-16" >> /etc/vconsole.conf echo "FONT_MAP=8859-1_to_uni" >> /etc/vconsole.conf
Change mkinitcpio.conf to support ext4, lvm2 and encryption. You need to add the following:
Eighter edit /etc/mkinitcpio.conf by hand or use the following sed commands.
$ sed -i "s/MODULES=.*/MODULES=(ext4)/g" /etc/mkinitcpio.conf $ sed -i "s/HOOKS=.*/HOOKS=(base udev autodetect modconf keyboard block keymap encrypt lvm2 resume filesystems keyboard fsck shutdown)/g" /etc/mkinitcpio.conf
Regenerate the initrd image.
Install microcode updates. These updates provide bug fixes that can be critical to the stability of your system. You need to install the package first and then create a second initrd entry in the bootloader config.
$ pacman -S intel-ucode or $ pacman -S amd-ucode
Edit the /boot/syslinux/syslinux.cfg config file. There must be no spaces between the intel-ucode and initramfs-linux initrd files. The period signs also do not signify any shorthand or missing code. The INITRD line must be exactly as illustrated below.
LABEL arch MENU LABEL Arch Linux LINUX ../vmlinuz-linux INITRD ../||amd>-ucode.img. /initramfs-linux.img # Make sure to choose the right image! APPEND your kernel parameters>
Set a strong root password.
Create a new user and set its password.
$ useradd -m -g users -G wheel $YOUR_USER_NAME $ passwd $YOUR_USER_NAME
Uncomment string %wheel ALL=(ALL) ALL in /etc/sudoers to allow sudo for users of the group wheel.
Exit from chroot, unmount system, shutdown, extract flash stick. You made it! Now you have fully encrypted system.
$ exit $ umount -R /mnt $ swapoff -a $ reboot
Reboot into your new arch linux base system and begin installing software.