கையேடு:AMD64/தொகுதி/துவக்கஏற்றி
துவக்க ஏற்றியை தேர்ந்தெடுத்தல்
லினக்ஸ் கர்னல் உள்ளமைக்கப்பட்டு, முறைமை கருவிகள் நிறுவப்பட்டு, உள்ளமைவு கோப்புகள் எல்லாம் திருத்தப்பட்டுவிட்டதால், இப்போது லினக்ஸ் நிறுவலின் இறுதி முக்கியமான பாகமான துவக்க ஏற்றியை நிறுவ வேண்டிய நேரம் வந்துவிட்டது.
துவக்க ஏற்றி, துவக்கத்தின்போது லினக்ஸ் கர்னல் துவங்குவதற்கு இது பொறுப்பாகும் - இது இல்லாமல் முறைமைக்குத் திறன் பொத்தானை அழுத்தியவுடன் எவ்வாறு மேற்கொண்டு செல்வது என்று தெரியாது.
amd64 கட்டமைப்பிற்கு, BIOS அடிப்படையிலான முறைமைகளுக்கு GRUB2 அல்லது LILO வையும், UEFI அடிப்படையிலான முறைமைகளுக்கு GRUB2 அல்லது efibootmgr வையும் எவ்வாறு உள்ளமைப்பது என நாங்கள் ஆவணப்படுத்தியுள்ளோம்.
கையேட்டின் இந்த பிரிவில், துவக்க ஏற்றித் தொகுப்பை emerge செய்தல் ற்கும், துவக்க ஏற்றியை முறைமை வட்டில் install செய்தல் ற்கும் உள்ள வேறுபாடு விரித்துரைக்கப்பட்டுள்ளது. இங்கு emerge செய்தல் என்பது ஒரு மென்பொருள் தொகுப்பை Portage இடம் கேட்டு முறைமைக்குக் கிடைக்கும்படி செய்வதாகப் பொருள் கொள்ளப்படும். மேலும், install செய்தல் என்பது துவக்க ஏற்றி, கோப்புகளை நகலெடுப்பது அல்லது முறைமையின் வட்டு இயக்ககத்தில் உள்ள பொருத்தமான பிரிவுகளில் மாற்றங்களைச் செய்வது மூலம் துவக்க ஏற்றி செயல்படுத்தப்பட்டு அடுத்த திறன் சுழலில் வேளை செய்ய ஆயத்தமான நிலையில் வைப்பதைக் குறிக்கிறது.
முன்னிருப்பு: GRUB2
இயல்பாக, பெரும்பாலான ஜென்டூ முறைமைகள் GRUB மரபுவழி யின் நேரடி பின்வருநரான GRUB ஐ சார்ந்துள்ளது (sys-boot/grub தொகுப்பில் காணப்படும்). கூடுதல் உள்ளமைவுகள் எதுவும் இல்லாமல் GRUB2 ஆனது பழைய BIOS ("pc") முறைமைகளை ஆதரிக்கிறது. கட்டுதல் நேரத்திற்கு முன் தேவைப்படும் சிறு அளவிலான உள்ளமைவுகள் மூலம், ஆறிற்கும் அதிகமான கூடுதல் இயங்குதளங்களை GRUB2 ஆதரிக்கும். மேலும் தகவல்களுக்கு, GRUB2 கட்டுரையில் உள்ள முன் தேவை பிரிவை காணவும்.
இ-ஒன்றாக்குதல் (Emerge)
MBR பகிர்வு அட்டவணைகளை மட்டுமே ஆதரிக்கும் பழைய BIOS முறைமையைப் பயன்படுத்தும் போது, GRUB ஐ emerge செய்யக் கூடுதல் உள்ளமைவுகள் எதுவும் தேவையில்லை:
root #
emerge --ask --verbose sys-boot/grub:2
UEFI பயனர்களுக்கான குறிப்பு: மேலுள்ள கட்டளையை இயக்குவது செயல்படுத்தப்பட்டுள்ள GRUB_PLATFORMS மதிப்புகளை emerge செய்வதற்கு முன் வெளியிடும். UEFI திறனுடைய முறைமைகளைப் பயன்படுத்தும்போது, GRUB_PLATFORMS="efi-64"
என்பது செயல்படுத்தப்பட்டுள்ளதைப் பயனர்கள் உறுதிசெய்ய வேண்டும். அவ்வாறு இல்லையென்றால், GRUB2 வை emerge செய்வதற்கு முன் /etc/portage/make.conf கோப்பில் GRUB_PLATFORMS="efi-64"
என்பதைச் சேர்க்க வேண்டும். இதன்மூலம் தொகுப்பு EFI செயல்பாட்டுடன் உருவாக்கப்படும்.
root #
echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
root #
emerge --ask sys-boot/grub:2
If GRUB was somehow emerged without enabling GRUB_PLATFORMS="efi-64"
, the line (as shown above) can be added to make.conf and then dependencies for the world package set can be re-calculated by passing the --update --newuse
options to emerge:
root #
emerge --ask --update --newuse --verbose sys-boot/grub:2
GRUB2 மென்பொருள் முறைமையோடு ஒன்றாக்கப்பட்டுள்ளது, ஆனால் இன்னும் நிறுவப்படவில்லை.
நிறுவுதல்
அடுத்து, grub-install கட்டளையின் மூலம் தேவையான GRUB2 கோப்புகளை /boot/grub/ அடைவில் நிறுவவும். முதல் வட்டு (முறைமை துவங்கும் இடம்) /dev/sda என்னும் கருதலில், பின்வரும் கட்டளைகளுள் ஒன்று இதைச் செய்யும்:
- BIOS ஐ பயன்படுத்தும்போது:
root #
grub-install /dev/sda
For DOS/Legacy BIOS systems:
root #
grub-install /dev/sda
- UEFI ஐ பயன்படுத்தும்போது:
- முக்கியமானது
grub-install ஐ இயக்குவதற்கு முன் EFI முறைமை பகிர்வு ஏற்றப்பட்டுள்ளதா என்பதை உறுதிசெய்து கொள்ளவும். ஏனென்றால் grub-install ஆனது GRUB EFI கோப்பை (grubx64.efi) எந்தவொரு அடையாளத்தையும் காட்டாமல் தவறான அடைவில் நிறுவி விட வாய்ப்புள்ளது.
For EFI systems:
root #
grub-install --target=x86_64-efi --efi-directory=/boot
Upon successful installation, the output should match the output of the previous command. If the output does not match exactly, then proceed to Debugging GRUB, otherwise jump to the Configure step.
Debugging GRUB
When debugging GRUB, there are a couple of quick fixes that may result in a bootable installation without having to reboot to a new live image environment.
In the event that "EFI variables are not supported on this system" is displayed somewhere in the output, it is likely the live image was not booted in EFI mode and is presently in Legacy BIOS boot mode. The solution is to try the removable GRUB step mentioned below. This will overwrite the executable EFI file located at /EFI/BOOT/BOOTX64.EFI. Upon rebooting in EFI mode, the motherboard firmware may execute this default boot entry and execute GRUB.
- முக்கியமானது
grub-install ஆனதுCould not prepare Boot variable: Read-only file system
போன்ற பிழைகளை அளித்தால், வெற்றி அடைவதற்கு, efivars சிறப்பு ஏற்றத்தைப் படிக்க-எழுதக் கூடியதாக மறு ஏற்றம் செய்ய வேண்டிய தேவை ஏற்படலாம்.root #
mount -o remount,rw /sys/firmware/efi/efivars
root #
mount -o remount,rw,nosuid,nodev,noexec --types efivarfs efivarfs /sys/firmware/efi/efivars
This is caused by certain non-official Gentoo environments not mounting the special EFI filesystem by default. If the previous command does not run, then reboot using an official Gentoo live image environment in EFI mode.
Some motherboard manufacturers with poor UEFI implementations seem to only support the /EFI/BOOT directory location for the .EFI file in the EFI System Partition (ESP). The GRUB installer can create the .EFI file in this location automatically by appending the --removable
option to the install command. Ensure the ESP has been mounted before running the following command; presuming it is mounted at /efi (as defined earlier), run:
root #
grub-install --target=x86_64-efi --efi-directory=/boot --removable
இது UEFI தனிக்குறிப்பீட்டால் வரையறுக்கப்பட்ட முன்னிருப்பு அடைவை உருவாக்கி, பின் அதில் உள்ள 'முன்னிருப்பு' EFI கோப்பு இருப்பிடத்தில் grubx64.efi கோப்பை நகலெடுத்து வைக்கும்.
உள்ளமைத்தல்
அடுத்து, /etc/default/grub கோப்பு மற்றும் /etc/grub.d குறுநிரல்களில் குறிப்பிட்டுள்ள பயனர் உள்ளமைவுகளின் அடிப்படையில் GRUB2 உள்ளமைவை உருவாக்கவும். பெரும்பாலான வழக்கில், எந்த கருநிரலை துவக்க வேண்டும் (/boot/ இல் கிடைக்கக்கூடிய மிக உயர்ந்த ஒன்று) மற்றும் என்ன வேர் கோப்பு முறைமை என்பதைத் தானியக்கமாக GRUB2 ஆனது கண்டறியும் என்பதால் பயனர் அளிக்கக்கூடிய உள்ளமைவுகள் எதுவும் தேவைப்படாது. GRUB_CMDLINE_LINUX மாறியைப் பயன்படுத்தி /etc/default/grub இல் கருநிரல் அளவுருக்களை பின்னொட்டு செய்ய இயலும்.
இறுதி GRUB2 உள்ளமைவை உருவாக்க, grub-mkconfig கட்டளையை இயக்கவும்:
root #
grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ... Found linux image: /boot/vmlinuz-6.1.38-gentoo Found initrd image: /boot/initramfs-genkernel-amd64-6.1.38-gentoo done
The output of the command must mention that at least one Linux image is found, as those are needed to boot the system. If an initramfs is used or genkernel was used to build the kernel, the correct initrd image should be detected as well. If this is not the case, go to /boot/ and check the contents using the ls command. If the files are indeed missing, go back to the kernel configuration and installation instructions.
இணைக்கப்பட்டுள்ள இயக்ககத்தில் உள்ள மற்ற இயக்குதளங்களைக் கண்டறிய GRUB2 உடன் os-prober பயன்கூறு நிரலைப் பயன்படுத்திக் கொள்ளலாம். இது Windows 7, 8.1, 10 மற்றும் இதர லினக்ஸ் வழங்கல்களைக் கண்டறியும். இரு துவக்க முறைமையாகப் பயன்படுத்த விரும்புவோர், sys-boot/os-prober தொகுப்பை நிறுவி பின் grub-mkconfig கட்டளையை (மேலே உள்ளது போல்) மறு-இயக்கவும். இதில் எதாவது இடர்ப்பாடு ஏற்பட்டால், ஜென்டூ சமூகக்குழுவிடம் உதவி கேட்பதற்கு முன் GRUB2 கட்டுரையை முழுவதுமாக படித்து பொருள் உணர்ந்திருப்பதை உறுதிசெய்து கொள்ளவும்.
மாற்றுவழி 1:LILO
இ-ஒன்றாக்குதல் (Emerge)
LILO, the LInuxLOader, is the tried and true workhorse of Linux boot loaders. However, it lacks features when compared to GRUB. LILO is still used because, on some systems, GRUB does not work and LILO does. Of course, it is also used because some people know LILO and want to stick with it. Either way, Gentoo supports both bootloaders.
LILO வை எளிமையாக நிறுவலாம்; இதற்கு emerge ஐ பயன்படுத்தவும்.
root #
emerge --ask sys-boot/lilo
உள்ளமைத்தல்
LILO வை உள்ளமைக்க, முதலில் /etc/lilo.conf கோப்பை உருவாக்கவும்:
root #
nano -w /etc/lilo.conf
In the configuration file, sections are used to refer to the bootable kernel. Make sure that the kernel files (with kernel version) and initramfs files are known, as they need to be referred to in this configuration file.
வேர் கோப்பு முறைமையானது JFS ஆக இருந்தால், படித்தல்-எழுதல் ஏற்றுதலுக்கு முன் அதன் குறிப்புப்பதிவை JFS மீண்டும் இயக்க வேண்டும் என்பதால்
append="ro"
வரியை ஒவ்வொரு துவக்க உருப்படிக்குப் பின் சேர்க்கவும்./etc/lilo.conf
எடுத்துக்காட்டு LILO உள்ளமைவு'"`UNIQ--pre-00000001-QINU`"'
வெவ்வேறு பகிர்வு திட்டம் மற்றும்/அல்லது கர்னல் படம் பயன்படுத்தப்பட்டால், அதன்படி சரிசெய்துகொள்ளவும்.
initramfs இன்றியமையாததாக இருந்தால், இந்த initramfs கோப்பை குறிப்பிட்டு, வேர் சாதனம் எங்கு உள்ளது என்பதை initramfs இடம் கூறுவதன் மூலம் உள்ளமைவை மாற்றவும்:
/etc/lilo.conf
initramfs தகவல்களை துவக்க பதிவில் சேர்த்தல்'"`UNIQ--pre-00000004-QINU`"'
கூடுதல் விருப்பத்தேர்வுகளை கருநிரலுக்கு தர வேண்டும் என்றால், append
கூற்றைப் பயன்படுத்தவும். எடுத்துக்காட்டாக, சட்ட இடையகத்தை செயல்படுத்த video
கூற்றைச் சேர்க்கவும்:
/etc/lilo.conf
ஒளிஉரு அளபுருக்களை துவக்க விருப்பத்தேர்வுகளுக்கு சேர்த்தல்'"`UNIQ--pre-00000007-QINU`"'
genkernel ஐ பயன்படுத்திய பயனர்கள் தங்கள் கருநிரல் நிறுவல் குறுந்தகட்டிற்குப் பயன்படுத்திய துவக்க விருப்பத்தேர்வுகளைத் தான் பயன்படுத்துகிறதா என்பதை அறிந்திருக்க வேண்டும். எடுத்துக்காட்டாக, SCSI சாதனங்களுக்கான ஆதரவு செயல்படுத்தப்பட்டிருக்க வேண்டும் என்றால் doscsi
என்பதை கருநிரல் விருப்பத்தேர்வாகச் சேர்க்கவும்.
இப்போது கோப்பை சேமித்து பின் வெளியேறவும்.
நிறுவுதல்
To finish up, run the /sbin/lilo executable so LILO can apply the /etc/lilo.conf settings to the system (i.e. install itself on the disk). Keep in mind that /sbin/lilo must be executed each time a new kernel is installed or a change has been made to the lilo.conf file in order for the system to boot if the filename of the kernel has changed.
root #
/sbin/lilo
மாற்றுவழி 2: efibootmgr
Computer systems with UEFI-based firmware technically do not need secondary bootloaders (e.g. GRUB) in order to boot kernels. Secondary bootloaders exist to extend the functionality of UEFI firmware during the boot process. Using GRUB (see the prior section) is typically easier and more robust because it offers a more flexible approach for quickly modifying kernel parameters at boot time.
System administrators who desire to take a minimalist, although more rigid, approach to booting the system can avoid secondary bootloaders and boot the Linux kernel as an EFI stub.
நினைவில் கொள்ளவும், sys-boot/efibootmgr செயலியானது துவக்க ஏற்றி இல்லை; இது UEFI திடப்பொருளுடன் ஊடாடி அதன் அமைப்புகளை இற்றைப்படுத்தும் ஒரு கருவியாகும், இதன் விளைவாக முன்னதாக நிறுவப்பட்ட லினக்ஸ் கருநிரல் கூடுதல் விருப்பத்தேர்வுகளுடன் (இன்றியமையாததாக இருந்தால்) துவக்க இயலும், அல்லது பல துவக்கப் பதிவுகளை அனுமதிக்கும். இந்த ஊடாடல் EFI மாறிகள் மூலம் நடக்கிறது (எனவே EFI மாறிகளின் கருநிரல் ஆதரவு தேவை).
Ensure the EFI stub kernel article has been reviewed before continuing. The kernel must have specific options enabled to be directly bootable by the UEFI firmware. It may be necessary to recompile the kernel in order to build-in this support.
It is also a good idea to take a look at the efibootmgr article for additional information.
To reiterate, efibootmgr is not a requirement to boot an UEFI system; it is merely necessary to add an entry for an EFI-stub kernel into the UEFI firmware. When built appropriately with EFI stub support, the Linux kernel itself can be booted directly. Additional kernel command-line options can be built-in to the Linux kernel (there is a kernel configuration option called CONFIG_CMDLINE. Similarly, support for initramfs can be 'built-in' to the kernel as well. These decisions must be made prior to kernel compilation, resulting in a more static boot configuration.
இந்த வழியைத் தேர்ந்தெடுக்க முடிவு செய்தவர்கள் இந்த மென்பொருளைக் கட்டாயம் நிறுவ வேண்டும்:
root #
emerge --ask sys-boot/efibootmgr
பிறகு, /boot/efi/boot/ இருப்பிடத்தை உருவாக்கி அதில் கர்னலை நகலெடுத்து வைக்கவும், இதை bzImage.efi என அழைக்கலாம்:
root #
mkdir -p /boot/efi/boot
root #
cp /boot/vmlinuz-* /boot/efi/boot/bzImage.efi
UEFI வரையறுத்தல்களைப் பயன்படுத்தும்போது, \ ஐ அடைவு பிரிப்பானாகப் பயன்படுத்துவது கட்டாயமாகும்.
அடுத்து, UEFI திடப்பொருளிடம் "Gentoo" என அழைக்கப்படும் துவக்கப் பதிவு உருவாக்கப்பட வேண்டும் எனக் கூறவும், இது புதிதாகத் தொகுக்கப்பட்ட EFI முளை கர்னலை கொண்டிருக்கும்:
root #
efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\bzImage.efi"
தொடக்க RAM கோப்பு முறைமை (initramfs) பயன்படுத்தப்பட்டால், முறையான துவக்க விருப்பத்தேர்வுகளைச் சேர்க்கவும்:
root #
efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l "\efi\boot\bzImage.efi" initrd='\initramfs-genkernel-amd64-6.1.38-gentoo'
இந்த மாற்றங்கள் எல்லாம் முடிந்தவுடன், முறைமை மறு இயக்கம் செய்யும்போது, "Gentoo" என அழைக்கப்படும் துவக்கப் பதிவு கிடைக்கப்பெறும்.
மாற்றுவழி 3: Syslinux
Syslinux is yet another bootloader alternative for the amd64 architecture. It supports MBR and, as of version 6.00, it supports EFI boot. PXE (network) boot and lesser-known options are also supported. Although Syslinux is a popular bootloader for many it is unsupported by the Handbook. Readers can find information on emerging and then installing this bootloader in the Syslinux article.
Alternative 4: systemd-boot
Another option is systemd-boot, which works on both OpenRC and systemd machines. It is a thin chainloader and works well with secure boot.