في النهاية ، رأى CentOS 8 النور ، سواء أحببنا ذلك أم لا ، في المستقبل القريب ، سيتعين على أتباع نظام تشغيل الشركات من المجتمع تكوين صداقات معه.
بعد أن قررت تجربة الثمانية في "wild" ، وجدت أن مزودي الاستضافة ليسوا في عجلة من أمرهم لإنشاء صورة خادم افتراضي على CentOS 8. وأن فكرة "ISO ISO" و "VNC console" لم تلهم الثقة بسبب الخصائص المتواضعة لنظام VDS والشراهة اناكوندا الحديثة (اناكوندا).
بقي لنسخ الصورة المنشورة من CentOS الجديدة مباشرة إلى محرك الأقراص الصلبة VDS ، وتنزيل الخادم "عبر الشبكة". لا تتألق الطريقة مع الجدة ، ومع ذلك ، على سبيل المثال ، لم أجد تعليمات مفصلة وكاملة لتنفيذها. لذلك ، أردت ملء هذه الفجوة بسرعة والتحدث عن تثبيت CentOS 8 على مثل هذه VDS:
KVM ، ذاكرة وصول عشوائي سعتها 256 ميجابايت ، محرك أقراص صلبة سعة 2 جيجابايت ، بدون وحدة تحكم و ISO

بالمناسبة ، بهذه الطريقة يمكنك تثبيت أو إعادة تثبيت ليس فقط CentOS وليس بالضرورة في بيئة افتراضية.
0. خصائص VDS
كما قيل في بداية المقال:

بالمناسبة ، فإن مزودي الاستضافة الآن في معظم تعريفة الميزانية يقدمون VDS بميزات أكثر قوة. دع CentOS 7 هو نظام التشغيل المثبت مسبقًا ، وأعتقد أنه من الممكن الآن لجميع موفري المحاكاة الافتراضية تقريبًا.
1. ثلاثة ملفات عزيزة
بادئ ذي بدء ، ستحتاج إلى
"متبرع" - خادم إضافي مثبت عليه CentOS 8. على الرغم من أن هذا ليس مهمًا ، ولكن إذا كانت الخصائص التقنية للمتبرع تتوافق مع خصائص VDS ، فستكون هناك مشكلة أقل بكثير في الإعداد.
حجم الذاكرة وحجم قرص المانحين ليست مهمة ، والشيء الرئيسي هو تثبيت نظام التشغيل على ذلك. أنصحك بشكل قاطع بوضع علامة على القرص المانح بواسطة قسم جذر واحد.
نظرًا لوجود KVM VDS في هذه الحالة ، يمكن خبز المتبرع في المنزل - على أي توزيع Linux باستخدام
libvirt . أنا أفضل الإعداد الأولي الحد الأدنى ، والتي في سياق المهمة ستكون مساعدة كبيرة. في
هذا المقال ، تحدثت عن الطريقة المعتادة لصنع صورة CentOS صغيرة الحجم. تحت المفسد ، ملف kickstart المقابل وكيفية استخدامه:
CentOS 8 Tinyinstall text url --url="https://mirror.yandex.ru/centos/8/BaseOS/x86_64/os/" eula --agreed firstboot --disable keyboard --vckeymap=us --xlayouts='us' lang en_US.UTF-8 timezone Africa/Abidjan auth --enableshadow --passalgo=sha512 rootpw --plaintext very-strong-password-see-below
يمكنك وضع هذا الملف على أي مورد ويب متاح وتحديده في بداية التثبيت:

إنني أنتبه إلى كلمة مرور الجذر: أوصي بشدة أن تجعل الأمر صعبًا بحيث لا تواجه مشاكل مع مثيري الشغب الذين يقومون بمسح الإنترنت في المراحل التالية بحثًا عن الترفيه.
بعد إجراء المتبرع ، تحتاج إلى نقل جميع الملفات من القرص إلى أرشيف واحد ، على سبيل
المثال centos8.tgz . يمكنك القيام بذلك بطرق مختلفة: قم بتوصيل قرص المانح بجهاز ظاهري آخر ، أو قم بتثبيته إلى برنامج hypervisor ، أو حزم جميع ملفاته في الجهة المانحة نفسها ، باستثناء الدلائل الافتراضية (/ dev ، / proc ، إلخ)
علاوة على ذلك ، ستكون هناك حاجة إلى ملفين آخرين من الجهة المانحة: النواة (
vmlinuz ) و ramdrive المعدلة (
initrd ). يمكن أخذ kernel في دليل / boot الخاص بالمانح (vmlinuz-something-there) ، ويجب أن يكون ramdrive خاصًا من خلال تضمين القدرة على التمهيد عبر الشبكة من خادم NFS. للقيام بذلك ، في نظام تشغيل متبرع عامل ، تحتاج إلى القيام بما يلي:
# dnf install dracut-network nfs-utils # echo 'add_dracutmodules+="nfs"' >> /etc/dracut.conf # dracut -f /initrd
والتقاط initrd اللازمة من جذر القرص.
نتيجة لذلك ، هناك ثلاثة ملفات ستكون مطلوبة في المستقبل:
- centos8.tgz - الأرشيف مع جميع ملفات تثبيت CentOS 8
- initrd - نظام ملفات مؤقت مع دعم NFS
- vmlinuz - نواة OS
# ls -l | awk '{print $9,$5}' centos8.tgz 320712609 initrd 21916741 vmlinuz 7876856
لم تعد هناك حاجة إلى المتبرع ، على الرغم من أنه قد يكون في متناول اليد (انظر أدناه)
2. خادم NFS
لتنزيل VDS عبر شبكة دون استخدام قرص محلي ، ستحتاج إلى خادم مزود بمورد NFS. مثل هذا الخادم يمكن أن يكون أي شيء ، الشيء الرئيسي هو توفر شبكته من عنوان IP الخاص بـ VDS. يمكنك تجربة المعدات المنزلية (مع إمكانية "إعادة توجيه المنفذ على جهاز التوجيه") أو أي VDS أخرى ، على سبيل المثال ، لإجراء اختبار. أخيرًا ، استخدم "المتبرع" إذا كنت تستطيع إدارته باستخدام NFS (مجرد مزاح). بعد تثبيت CentOS 8 ، لن تكون هناك حاجة إلى خادم NFS ، مثل الجهة المانحة.
يجب أن يحتوي مورد NFS الذي تم تصديره على الملف
centos8.tgz ومحتوياته غير المعبأة في جذره. فيما يلي دليل إنتاج سريع يستخدم CentOS 7 كمثال:
# mkdir /nfsroot # cp .../centos8.tgz /nfsroot # tar xzf /nfsroot/centos8.tgz -C /nfsroot # yum install nfs-utils # systemctl enable rpcbind nfs-server # echo '/nfsroot 100.100.100.100/32(rw,sync,no_root_squash,no_all_squash)'>/etc/exports # systemctl restart rpcbind nfs-server
100.100.100.100 ، بالطبع ، هو عنوان IP VDS مع CentOS 8 في المستقبل.
3. قم بتنزيل VDS "عبر الشبكة" (NFSroot)
بادئ ذي بدء ، تحتاج إلى نسخ ملفات ramdrive (
initrd ) و kernel (
vmlinuz ) التي تم الحصول عليها في الخطوة الأولى إلى جذر VDS. ثم ، قم بتكوين GRUB:
/etc/grub.d/40_custom
200.200.200.200 - عنوان IP لخادم NFS.
/ الخ / الافتراضي / اليرقة . . . GRUB_TIMEOUT=0 . . . GRUB_DEFAULT="NFSRoot" . . .
وإعادة تشغيل VDS:
# grub2-mkconfig --output=/boot/grub2/grub.cfg # reboot
إذا سارت الأمور على نحو سلس ، فسوف يقوم VDS بتحميل متبرع CentOS 8 ، وسيتم إلغاء تثبيت محرك الأقراص المحلي تمامًا:

4. "التثبيت" CentOS 8
يمكنك الآن إعادة تهيئة وتهيئة قرص VDS المحلي ، ونسخ ملفات نظام التشغيل عليه ، وتثبيت أداة تحميل التشغيل وتكوين الشبكة. وصف موجز للإجراءات اللازمة:
# dnf install parted tar # parted /dev/vda unit s print free Model: Virtio Block Device (virtblk) Disk /dev/vda: 4194304s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 63s 2047s 1985s Free Space 1 2048s 526335s 524288s primary linux-swap(v1) 2 526336s 4194303s 3667968s primary xfs boot # dd if=/dev/zero of=/dev/vda count=3000
على VDS الصغير ، أفضل تكوين هذا القرص:
# parted /dev/vda unit s print free Model: Virtio Block Device (virtblk) Disk /dev/vda: 4194304s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 2s 2047s 2046s Free Space 1 2048s 4194303s 4192256s primary boot
التنسيق وحذف حجز وتحديد قيمة UUID على "الجهة المانحة":
# mkfs.ext4 /dev/vda1 # cat /etc/fstab | grep UUID UUID=1f944e86-c590-4af7-b651-3c1783c15d79 / ext4 defaults 1 1 # tune2fs -m 0 -U 1f944e86-c590-4af7-b651-3c1783c15d79 /dev/vda1 tune2fs 1.44.3 (10-July-2018) Setting reserved blocks percentage to 0% (0 blocks) Setting UUID on a checksummed filesystem could take some time. Proceed anyway (or wait 5 seconds to proceed) ? (y,N) y
نسخ ملفات نظام التشغيل وتثبيت أداة تحميل التشغيل:
# mount /dev/vda1 /mnt # tar xzf /centos8.tgz -C /mnt # grub2-install --boot-directory=/mnt/boot /dev/vda Installing for i386-pc platform. Installation finished. No error reported.
نظرًا لأن
Network Manager يفهم
الإرث القديم ، يمكنك إنشاء ملف ifcfg مناسب لتكوين الشبكة. يمكن العثور على اسم الواجهة:
# ls /sys/class/net/ enp1s0 lo
# cat > /etc/sysconfig/network-scripts/ifcfg-enp1s0 << EOF > DEVICE=enp1s0 > NAME=enp1s0 > TYPE=Ethernet > ONBOOT=y > BOOTPROTO=none > IPADDR=100.100.100.100 > NETMASK=255.255.255.0 > GATEWAY=100.100.100.1 > EOF
هذا كل شيء ، يمكنك إعادة تشغيل VDS من محرك الأقراص المحلي.
5. الخاتمة
VDS مع تثبيت الحد الأدنى من CentOS 8:

روابط مفيدة:
www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txtaccess.redhat.com/documentation