CentOS 8 akhirnya melihat cahaya hari, apakah kita suka atau tidak, dalam waktu dekat para pengikut sistem operasi perusahaan dari komunitas harus berteman dengan itu.
Setelah memutuskan untuk mencoba delapan di "liar", saya menemukan bahwa penyedia hosting saya tidak terburu-buru untuk membuat gambar server virtual pada CentOS 8. Dan gagasan dengan "ISO asli" dan "VNC konsol" tidak menginspirasi kepercayaan karena karakteristik sederhana dari VDS dan kerakusan anaconda modern (anaconda).
Tetap untuk menyalin gambar yang digunakan dari CentOS baru secara langsung ke hard drive VDS, mengunduh server "melalui jaringan". Metode ini tidak berkilau dengan hal-hal baru, namun, misalnya, saya tidak dapat menemukan petunjuk yang lengkap dan lengkap untuk penerapannya. Karena itu, saya ingin segera mengisi celah ini dan berbicara tentang menginstal CentOS 8 pada VDS seperti itu:
KVM, RAM 256MB, HDD 2GB, tanpa konsol dan ISO

Omong-omong, cara ini Anda dapat menginstal atau menginstal ulang tidak hanya CentOS dan tidak harus dalam lingkungan virtual.
0. Karakteristik VDS
Seperti yang dikatakan di awal artikel:

Ngomong-ngomong, penyedia hosting sekarang dalam tarif paling murah mereka menawarkan VDS dengan fitur yang lebih kuat. Biarkan CentOS 7 menjadi sistem operasi yang sudah diinstal sebelumnya. Saya pikir sekarang mungkin untuk hampir semua penyedia virtualisasi.
1. Tiga file berharga
Pertama-tama, Anda akan memerlukan
"donor" - server tambahan dengan CentOS 8. diinstal. Meskipun ini tidak penting, tetapi jika karakteristik teknis dari donor akan sesuai dengan orang-orang dari VDS, maka akan ada jauh lebih sedikit masalah dengan pengaturan.
Jumlah memori dan ukuran disk donor tidak penting, yang utama adalah menginstal sistem operasi di atasnya. Saya menyarankan untuk menandai disk donor dengan satu partisi root.
Karena dalam hal ini ada KVM VDS, donor dapat dipanggang di rumah - pada setiap distribusi Linux dengan
libvirt . Saya lebih suka pengaturan awal ekstra minimal, yang dalam konteks tugas akan sangat membantu. Pada
artikel ini, saya berbicara tentang cara standar untuk membuat gambar CentOS kecil. Di bawah spoiler, file kickstart yang sesuai dan cara menggunakannya:
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
Anda dapat menempatkan file ini di sumber daya Web apa pun yang tersedia dan menentukannya di awal instalasi:

Saya memperhatikan kata sandi root: Saya sangat menyarankan agar Anda membuatnya sangat sulit agar tidak memiliki masalah dengan hooligan memindai Internet di tahap berikutnya untuk mencari hiburan.
Setelah membuat donor, Anda perlu mengambil semua file dari
disknya menjadi satu arsip, misalkan
centos8.tgz . Anda dapat melakukan ini dengan berbagai cara: sambungkan disk donor ke mesin virtual lain, pasang ke hypervisor, atau kemas semua file di donor itu sendiri, tidak termasuk direktori virtual (/ dev, / proc, dll.)
Selanjutnya, dua file lagi akan dibutuhkan dari donor: kernel (
vmlinuz ) dan ramdrive yang dimodifikasi (
initrd ). Kernel dapat diambil di direktori / boot dari donor (vmlinuz-something-there), dan ramdrive perlu dibuat khusus dengan memasukkan kemampuan untuk boot melalui jaringan dari server NFS. Untuk melakukan ini, dalam sistem operasi donor yang berfungsi, Anda perlu melakukan:
# dnf install dracut-network nfs-utils # echo 'add_dracutmodules+="nfs"' >> /etc/dracut.conf # dracut -f /initrd
dan mengambil initrd yang diperlukan dari root disk.
Akibatnya, tiga file yang akan dibutuhkan di masa depan:
- centos8.tgz - arsip dengan semua file CentOS 8 yang diinstal
- initrd - sistem file sementara dengan dukungan NFS
- vmlinuz - OS kernel
# ls -l | awk '{print $9,$5}' centos8.tgz 320712609 initrd 21916741 vmlinuz 7876856
Donor tidak lagi dibutuhkan, meskipun mungkin berguna (lihat di bawah)
2. server NFS
Untuk mengunduh VDS melalui jaringan tanpa menggunakan disk lokal, Anda akan memerlukan server dengan sumber daya NFS. Server seperti itu bisa apa saja, yang utama adalah ketersediaan jaringannya dari alamat IP VDS. Anda dapat mencoba peralatan rumah tangga (dengan kemungkinan "penerusan port pada router") atau VDS lainnya, yang diambil, misalnya, untuk pengujian. Terakhir, gunakan "donor" jika Anda bisa mengelolanya dengan NFS (hanya bercanda). Setelah menginstal CentOS 8, server NFS, seperti donor, tidak lagi diperlukan.
Sumber daya NFS yang diekspor harus mengandung file
centos8.tgz dan konten yang belum dibongkar di root. Berikut adalah panduan produksi cepat menggunakan CentOS 7 sebagai contoh:
# 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, tentu saja, alamat IP VDS dengan CentOS 8 mendatang.
3. Unduh VDS "melalui jaringan" (NFSroot)
Pertama-tama, Anda perlu menyalin file ramdrive (
initrd ) dan kernel (
vmlinuz ) yang diperoleh pada langkah pertama ke root VDS. Kemudian, konfigurasikan GRUB:
/etc/grub.d/40_custom
200.200.200.200 - Alamat IP server NFS.
/ etc / default / grub . . . GRUB_TIMEOUT=0 . . . GRUB_DEFAULT="NFSRoot" . . .
Dan mulai ulang VDS:
# grub2-mkconfig --output=/boot/grub2/grub.cfg # reboot
Jika semuanya berjalan lancar, VDS akan memuat donor CentOS 8, dan drive lokal akan sepenuhnya dilepas:

4. "Instalasi" CentOS 8
Sekarang Anda dapat memformat ulang dan memformat disk VDS lokal, menyalin file OS ke sana, menginstal bootloader dan mengkonfigurasi jaringan. Deskripsi singkat tentang tindakan yang diperlukan:
# 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
Pada VDS kecil, saya lebih suka konfigurasi disk ini:
# 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
Memformat, menghapus reservasi, dan mengatur nilai UUID menjadi "donor":
# 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
Menyalin file sistem operasi dan menginstal bootloader:
# 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.
Karena
Network Manager memahami
warisan , Anda dapat membuat file ifcfg yang sesuai untuk mengkonfigurasi jaringan. Nama antarmuka dapat ditemukan:
# 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
Itu saja, Anda dapat me-reboot VDS dari drive lokalnya.
5. Kesimpulan
VDS dengan minimum CentOS 8 terpasang:

Tautan yang bermanfaat:
www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txtaccess.redhat.com/documentation