'



Όνομα

Theme Layout

Theme Translation

Trending Posts Display

Home Layout Display

Posts Title Display

404

We Are Sorry, Page Not Found

Home Page

 

Ολοκληρωμένος Οδηγός Ανάπτυξης Winboat: CachyOS, Ενσωμάτωση & VirtualBox - Virt-Manager Routing

Η διαχείριση εικονικών μηχανών (VMs) Windows στο Linux συχνά συνοδεύεται από δύο μεγάλα προβλήματα: τη χαμηλή απόδοση του εικονικού δίσκου και την έλλειψη φορητότητας. Σε αυτόν τον οδηγό, θα υλοποιήσουμε ένα enterprise-grade iHack setup στο CachyOS, χρησιμοποιώντας το Winboat.

Θα μετατρέψουμε ένα απλό αρχείο .img σε ένα Raw Block Device που το σύστημα θα αναγνωρίζει ως "φυσικό δίσκο", προσφέροντας αστραπιαίες ταχύτητες και τη δυνατότητα να "πηδάμε" από τον έναν Hypervisor στον άλλον (Virt-Manager σε VirtualBox) χωρίς καμία αλλαγή στο configuration.


ΦΑΣΗ 1: Προετοιμασία Host & Virtualization Stack

Γιατί το κάνουμε:

Για να τρέξουμε Windows μέσα στο Linux, χρειαζόμαστε μια "μηχανή" (Hypervisor). Το KVM/QEMU (μέσω Virt-Manager) προσφέρει επιδόσεις που πλησιάζουν το 99% του φυσικού μηχανήματος, ενώ το VirtualBox προσφέρει μέγιστη συμβατότητα με περιφερειακά. Το Winboat χρησιμοποιεί το Docker για να "χτίσει" το Windows image αυτοματοποιημένα.

Εκτέλεση (Προσοχή: Απαιτείται Restart μετά την προσθήκη στα groups.):

Bash
# Ενημέρωση και εγκατάσταση virtualization stack
sudo pacman -Syu winboat docker virt-manager qemu-desktop libvirt edk2-ovmf \
dnsmasq iptables-nft virtualbox virtualbox-host-dkms --noconfirm

# Προσθήκη χρήστη στα groups (Για να έχετε δικαιώματα διαχείρισης hardware)
sudo usermod -aG docker,libvirt,vboxusers $USER

# Ενεργοποίηση των απαραίτητων υπηρεσιών (daemons)
sudo systemctl enable --now docker libvirtd

ΦΑΣΗ 2: Persistent Disk Routing (Το "Κλειδί" της Σταθερότητας)

Γιατί το κάνουμε:

Το Linux χρησιμοποιεί "loop devices" για να διαβάσει αρχεία .img σαν δίσκους. Όμως, το όνομά τους (π.χ. /dev/loop0) αλλάζει σε κάθε boot αν έχετε Docker ή Snaps. Αν η VM σας ψάχνει το /dev/loop0 και αυτό γίνει /dev/loop1, η VM δεν θα ξεκινήσει ποτέ. Εμείς θα φτιάξουμε ένα σταθερό "μονοπάτι" που δεν αλλάζει ποτέ.

Βήμα 1: Αυτόματο Attach στο Boot (Systemd Service)

Δημιουργούμε μια υπηρεσία που λέει στο Linux: "Μόλις ανοίξεις, σύνδεσε το data.img μου σε μια διαθέσιμη loop device". sudo nano /etc/systemd/system/loop-dataimg.service

Ini, TOML
[Unit]
Description=Attach Winboat data.img to loop device
After=home.mount local-fs.target
Requires=home.mount

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/losetup -f --show /home/USERNAME/path/to/data.img
ExecStop=/usr/bin/losetup -D

[Install]
WantedBy=multi-user.target

Βήμα 2: Σταθερό Symlink (Udev Rules)

Τώρα λέμε στο σύστημα: "Όποιο νούμερο κι αν πάρει αυτή η loop device, φτιάξε ένα ψευδώνυμο στο /dev/loop-winboat". sudo nano /etc/udev/rules.d/99-loop-winboat.rules

Ini, TOML
KERNEL=="loop*", PROGRAM=="/usr/bin/losetup %N", RESULT=="/home/USERNAME/path/to/data.img", SYMLINK+="loop-winboat"

Βήμα 3: Ενεργοποίηση

Bash
sudo systemctl daemon-reload
sudo systemctl enable --now loop-dataimg.service
sudo udevadm control --reload && sudo udevadm trigger

ΦΑΣΗ 3: Εισαγωγή Δίσκου στους Hypervisors

3.1 Virt-Manager (KVM) - Η επιλογή για ταχύτητα

Όταν δημιουργείτε τη VM, επιλέξτε "Import existing disk image" και δώστε τη διαδρομή /dev/loop-winboat. Το KVM θα το δει ως κανονικό σκληρό δίσκο (Block Device), παρακάμπτοντας τα layers του file system για μέγιστο IOPS.

3.2 VirtualBox - Η λύση του "Wrapper"

Το VirtualBox δεν μπορεί να διαβάσει απευθείας raw block devices. Γι' αυτό φτιάχνουμε ένα αρχείο .vmdk που λειτουργεί ως "γέφυρα" (pointer) προς το /dev/loop-winboat.

Bash
VBoxManage internalcommands createrawvmdk -filename ~/winboat.vmdk -rawdisk /dev/loop-winboat
chmod 660 ~/winboat.vmdk

ΦΑΣΗ 4: Windows Post-Setup (The God Script)

Γιατί το κάνουμε:

Μέσα στο VM, θέλουμε ένα περιβάλλον που να αυτο-συντηρείται. Αντί να κατεβάζετε χειροκίνητα .exe, χρησιμοποιούμε Package Managers.

Άνοιξε το PowerShell ως Administrator και τρέξε:

PowerShell
# 1. Εγκατάσταση Chocolatey (Ο Pacman των Windows)
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

# 2. Εγκατάσταση του Software Stack
# unigetui: Γραφικό περιβάλλον για ΟΛΟΥΣ τους package managers.
# winfsp: Απαραίτητο για το διαμοιρασμό αρχείων Linux-Windows.
# choco-cleaner: Διαγράφει τα σκουπίδια των updates για να μην φουσκώνει το .img.
choco install chocolatey-gui unigetui choco-butler choco-cleaner winfsp virtualbox-guest-additions-guest.install -y

# 3. Εκτέλεση καθαρισμού
choco-cleaner

ΦΑΣΗ 5: Αναλυτική Παρουσίαση Εφαρμογών

ΕφαρμογήΤι κάνειΓιατί την χρειαζόμαστεLink
ChocolateyPackage ManagerΑυτοματοποιημένη εγκατάσταση & updates λογισμικού χωρίς browser.Link
UniGetUIUnified GUIΣυνδυάζει Winget, Chocolatey & Scoop σε ένα πανέμορφο περιβάλλον.Link
WinFSPFile System ProxyΕπιτρέπει στα Windows να "βλέπουν" το Linux File System (VirtioFS).Link
Choco CleanerCleanup ToolΔιαγράφει caches & installers. Κρίσιμο για να μη γεμίζει το data.img.Link
Choco ButlerAuto-UpdaterΤρέχει στο background και σε ειδοποιεί για updates των εφαρμογών σου.Link

ΦΑΣΗ 6: Seamless Sharing (Virtio-FS)

Γιατί το κάνουμε:

Το copy-paste αρχείων μέσω δικτύου είναι αργό. Το Virtio-FS επιτρέπει στο VM να "βλέπει" τον φάκελο /home του CachyOS σαν να ήταν ένας τοπικός δίσκος.

  1. Στο Virt-Manager, πρόσθεσε Hardware -> Filesystem.

  2. Driver: virtiofs, Source: /home/user, Target: host_home.

  3. Μέσα στα Windows, χάρη στο WinFSP, ο φάκελος θα εμφανιστεί αυτόματα, επιτρέποντας αστραπιαίες μεταφορές αρχείων.


Troubleshooting (Όταν κάτι πάει στραβά)

  • Permission Denied: Βεβαιώσου ότι ο χρήστης σου είναι στο group vboxusers. Αν όχι, το VirtualBox δεν θα μπορεί να διαβάσει το wrapper vmdk.

  • Device Busy: Συμβαίνει αν προσπαθήσεις να ανοίξεις τη VM ενώ το Winboat docker container είναι ακόμα ενεργό. Πάντα κλείνουμε το ένα πριν ανοίξουμε το άλλο.

  • Slow Graphics: Στο Virt-Manager, βεβαιώσου ότι έχεις επιλέξει "VirtIO" για την κάρτα γραφικών και έχεις εγκαταστήσει τους drivers.

Hack safe!


Δείτε επίσης: How To Install WinBoat On CachyOS - Video Tutorial

 

Δημήτρης Κουκοράβας

[name= Δημήτρης Κουκοράβας]

[img=https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOSGebJyjaY4CrbYf9RcLyQ9Xq5K_lLTMhOHl38rwFS0-Z_We2tGi8GraogmC1GvOxDGV3VM93Ke9UHH6WgZGtn94smrwaEk1oUEYMnImhVp7JBbYLi4GINlx2Ic_ij_9l7CIHUGieP4k/w140-h140-p/2019-10-17.jpg]

[description= Αυτό το blog το έχω κυρίως σαν σημειωματάριο για όλα τα βιτσιόζικα πράγματα που κάνω στις συσκευές μου (και όχι μόνο).]