ਇੱਕ Ubuntu 18.04 ਡੈਸਕਟਾਪ 'ਤੇ CentOS armhfp VM ਸੈੱਟ ਅਪ ਕਰਨਾ
ਮੇਰੇ ਇੱਕ ਪ੍ਰੋਜੈਕਟ ਲਈ, ਮੈਂ ਆਪਣੇ Ubuntu 18.04 ਡੈਸਕਟਾਪ 'ਤੇ ਇੱਕ CentOS armhfp ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਸੈੱਟ ਅਪ ਕੀਤੀ। ਮੈਂ ਇੱਕ ਹੋਰ ਤਰੀਕੇ ਨਾਲ ਟੈਸਟ ਕਰ ਸਕਦਾ ਸੀ, ਇੱਕ SD ਕਾਰਡ 'ਤੇ ARM ਇਮੇਜ ਫਲੈਸ਼ ਕਰਕੇ ਅਤੇ ਇਸਨੂੰ ਬੋਰਡ 'ਤੇ ਬੂਟ ਕਰਕੇ, ਪਰ ਮੈਂ QEMU ਵਿੱਚ ਕੰਮ ਕਰਨਾ ਪਸੰਦ ਕੀਤਾ। Cubietruck ਜਾਂ Raspberry Pi ਵਰਗੇ ਬੋਰਡਾਂ 'ਤੇ ਟੈਸਟਿੰਗ ਸਮਾਂ ਲੈਣ ਵਾਲੀ ਹੁੰਦੀ ਹੈ। ਜੇ ਇਮੇਜ ਖਰਾਬ ਹੋ ਜਾਵੇ, ਤਾਂ ਤੁਹਾਨੂੰ ਪੂਰੀ ਪ੍ਰਕਿਰਿਆ ਦੁਹਰਾਉਣੀ ਪਵੇਗੀ: SD ਕਾਰਡ ਕੱਢੋ, ਸਹੀ OS ਇਮੇਜ ਦੁਬਾਰਾ ਫਲੈਸ਼ ਕਰੋ, ਬੂਟ ਕਰੋ ਅਤੇ ਪੈਕੇਜ ਜਾਂ ਅੱਪਡੇਟ ਟੈਸਟ ਕਰੋ, U-Boot ਸੈਟਿੰਗਾਂ ਬਦਲੋ, ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ।
QEMU ਇੱਕ ਓਪਨ-ਸੋਰਸ ਮਸ਼ੀਨ ਐਮੂਲੇਟਰ ਅਤੇ ਵਰਚੁਅਲਾਈਜ਼ਰ ਹੈ ਜੋ ਕਈ ਆਰਕੀਟੈਕਚਰਾਂ ਲਈ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਚਲਾ ਸਕਦਾ ਹੈ। Ubuntu ਜਾਂ CentOS ਵਰਗੇ ਬੇਸ OS 'ਤੇ QEMU ਵਾਤਾਵਰਣ ਸੈੱਟ ਅਪ ਕਰਨਾ ਸਿੱਧਾ ਹੈ।
ਪੂਰਵ ਸ਼ਰਤਾਂ
Ubuntu 18.04 ਸਿਸਟਮ 'ਤੇ QEMU ਅਤੇ ਸਹਾਇਕ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰੋ।
sudo apt-get update
sudo apt-get install -y qemu-kvm qemu virt-manager virt-viewer libvirt-bin
ਤੁਸੀਂ ਅਧਿਕਾਰਤ ਸਾਈਟ ਤੋਂ QEMU ਵੀ ਡਾਊਨਲੋਡ ਕਰ ਸਕਦੇ ਹੋ। QEMU 5.0.0 ਡਾਊਨਲੋਡ ਅਤੇ ਬਿਲਡ ਕਰਨ ਲਈ:
wget https://download.qemu.org/qemu-5.0.0.tar.xz
tar xvJf qemu-5.0.0.tar.xz
cd qemu-5.0.0
./configure
make
git ਤੋਂ QEMU ਡਾਊਨਲੋਡ ਅਤੇ ਬਿਲਡ ਕਰਨ ਲਈ:
git clone https://git.qemu.org/git/qemu.git
cd qemu
git submodule init
git submodule update --recursive
./configure
make
ਸਿਸਟਮ 'ਤੇ ਬ੍ਰਿਜ ਨੈੱਟਵਰਕਿੰਗ ਸੈੱਟ ਅਪ ਕਰੋ। ਇੱਕ ਬ੍ਰਿਜਡ ਨੈੱਟਵਰਕ ਇੱਕ ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਨੂੰ ਇੱਕ ਸਮਰਪਿਤ ਨੈੱਟਵਰਕ ਇੰਟਰਫੇਸ ਦਿੰਦਾ ਹੈ, ਜੋ ਗੈਸਟ ਮਸ਼ੀਨਾਂ ਨੂੰ ਬਾਹਰੀ ਨੈੱਟਵਰਕ ਨਾਲ ਜੁੜਨ ਦਿੰਦਾ ਹੈ। ਤੁਹਾਨੂੰ QEMU ਨਾਲ ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਇਸਨੂੰ ਸੈੱਟ ਅਪ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
sudo apt-get install -y bridge-utils resolvconf
br1 ਨਾਮ ਦਾ ਬ੍ਰਿਜ ਬਣਾਉਣ ਲਈ interfaces ਫਾਈਲ ਸੰਪਾਦਿਤ ਕਰੋ। ਤੁਸੀਂ ਬ੍ਰਿਜ ਨੂੰ ਇੱਕ ਸਥਿਰ IP ਐਡਰੈਸ ਵੀ ਅਸਾਈਨ ਕਰ ਸਕਦੇ ਹੋ।
sudo nano /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
#Bridge Name #
auto br1
# Bridge Information #
iface br1 inet static
bridge_ports ens33
bridge_stp off
bridge_fd 9
# Bridge IP #
address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
dns-nameservers 8.8.8.8
CentOS ARM ਇਮੇਜ ਡਾਊਨਲੋਡ ਕਰੋ
ARM ਇਮੇਜ ਡਾਊਨਲੋਡ ਜਾਂ ਇੰਪੋਰਟ ਕਰੋ। ਇਹ ਗਾਈਡ CentOS ARM ਇਮੇਜ ਵਰਤਦੀ ਹੈ। ਤੁਸੀਂ ਇਸਨੂੰ CentOS ਪੇਜ ਤੋਂ ਡਾਊਨਲੋਡ ਕਰ ਸਕਦੇ ਹੋ, ਜਾਂ CentOS FTP ਸਰਵਰ ਤੋਂ wget ਜਾਂ curl ਨਾਲ ਲੈ ਸਕਦੇ ਹੋ।
ਜਾਂ ਤੁਸੀਂ ਕਮਾਂਡ ਲਾਈਨ ਤੋਂ ਇਮੇਜ wget ਕਰ ਸਕਦੇ ਹੋ।
wget http://centos.zero.com.ar/centos-altarch/7.8.2003/isos/armhfp/CentOS-Userland-7-armv7hl-generic-Minimal-2003-sda.raw.xz
QEMU ਚਲਾਉਣਾ
QEMU ਨੂੰ ਇਮੇਜ ਬੂਟ ਕਰਨ ਲਈ kernel ਅਤੇ initramfs ਫਾਈਲਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਤੁਸੀਂ ਇਹਨਾਂ ਫਾਈਲਾਂ ਨੂੰ kpartx ਜਾਂ mount ਕਮਾਂਡ ਨਾਲ ਇਮੇਜ ਮਾਊਂਟ ਕਰਕੇ ਕੱਢ ਸਕਦੇ ਹੋ।
kpartx ਵਰਤਣਾ:
sudo kpartx -av (path_of_your_image)
ਇਹ ਕਮਾਂਡ ਤੁਹਾਡੇ ਸਿਸਟਮ 'ਤੇ ਲੂਪ ਡਿਵਾਈਸ ਬਣਾਉਂਦੀ ਹੈ। ਲੋੜੀਂਦੀ ਲੂਪ ਡਿਵਾਈਸ ਨੂੰ mount ਕਮਾਂਡ ਨਾਲ /mnt 'ਤੇ ਮਾਊਂਟ ਕਰੋ ਅਤੇ ਇਮੇਜ ਤੋਂ ਲੋੜੀਂਦੀਆਂ ਫਾਈਲਾਂ ਕਾਪੀ ਕਰੋ।
sudo mount /dev/mapper/loop21p2 /mnt/
ਜਦੋਂ ਤੁਸੀਂ ਪੂਰਾ ਕਰ ਲਵੋ, /mnt ਅਨਮਾਊਂਟ ਕਰੋ ਅਤੇ ਲੂਪ ਡਿਵਾਈਸ ਹਟਾਓ।
sudo umount /mnt/
sudo kpartx -dv (path_of_the_image)
mount ਕਮਾਂਡ ਵਰਤਣਾ:
ਇਮੇਜ ਵਿੱਚ ਪਾਰਟੀਸ਼ਨਾਂ ਦੇ ਸ਼ੁਰੂ ਅਤੇ ਅੰਤ ਸੈਕਟਰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ parted ਕਮਾਂਡ ਵਰਤੋ।
sudo parted (path_of_the_image)
ਇਹ ਕਮਾਂਡ parted ਯੂਟਿਲਿਟੀ ਖੋਲ੍ਹਦੀ ਹੈ। unit ਟਾਈਪ ਕਰੋ ਅਤੇ Enter ਦਬਾਓ, ਫਿਰ b ਵਿਕਲਪ ਦਿਓ। ਫਿਰ ਲੋੜੀਂਦੀ ਜਾਣਕਾਰੀ ਦਿਖਾਉਣ ਲਈ print ਟਾਈਪ ਕਰੋ।
ਲੋੜੀਂਦੀ ਪਾਰਟੀਸ਼ਨ ਨੂੰ /mnt 'ਤੇ ਮਾਊਂਟ ਕਰਨ ਲਈ ਇਹ ਜਾਣਕਾਰੀ ਵਰਤੋ। ਇਹ ਉਦਾਹਰਨ ਪਹਿਲੀ ਪਾਰਟੀਸ਼ਨ ਨੂੰ /mnt 'ਤੇ ਮਾਊਂਟ ਕਰਦੀ ਹੈ।
sudo mount -o loop,offset=4194304 (image_path) /mnt/
ਇਮੇਜ ਤੋਂ ਲੋੜੀਂਦੀਆਂ ਫਾਈਲਾਂ ਕੱਢਣ ਤੋਂ ਬਾਅਦ, VM ਚਲਾਉਣ ਲਈ ਹੇਠਾਂ ਦਿੱਤੀ QEMU ਕਮਾਂਡ ਵਰਤੋ।
qemu-system-arm \
-M cubieboard -m 2048 -cpu arm1176 -dtb sun4i-a10-cubieboard.dtb \
-kernel vmlinuz-4.19.113-300.el7.armv7hl \
-append "ro root=UUID=64e0ba9f-b645-4ce1-925d-e1a723a580fd rhgb quiet LANG=en_US.UTF-8" \
-initrd initramfs-4.19.113-300.el7.armv7hl.img -nographic \
-drive file=(Image_file_path),format=raw,if=none,id=d1 \
-device ide-hd,drive=d1 -net user,hostfwd=tcp::10022-:22 -net nic
ਇਹ ਕਮਾਂਡ VM ਨੂੰ 2GB RAM ਦਿੰਦੀ ਹੈ ਅਤੇ ਇਮੇਜ ਬੂਟ ਕਰਨ ਲਈ ਲੋੜੀਂਦੀ ਹੋਰ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ kernel ਅਤੇ initrd।
ਇੱਕ ਵਾਰ ਇਮੇਜ ਬੂਟ ਹੋ ਜਾਵੇ, ਤਾਂ ਤੁਹਾਡੇ ਟਰਮੀਨਲ ਵਿੱਚ ਲੌਗਿਨ ਪ੍ਰੋਂਪਟ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ।
ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ, ਰੂਟ ਫਾਈਲ ਸਿਸਟਮ ਪਾਰਟੀਸ਼ਨ 2 GB ਤੱਕ ਸੀਮਿਤ ਹੈ। ਤੁਸੀਂ ਹੇਠਾਂ ਦਿੱਤੀ ਕਮਾਂਡ ਨਾਲ ਪਾਰਟੀਸ਼ਨ ਦਾ ਆਕਾਰ ਵਧਾ ਸਕਦੇ ਹੋ।
[root@host ~]# /usr/bin/rootfs-expand