[Debian 12] VirtualBox 7 unter Windows die .vdi bzw. .vmdk Festplatte vergrößern und Debian 12 Partition(en) erweitern

Zuerst einmal, ich verwende Windows 10 mit VirtualBox 7.0, darauf läuft Debian 12 mit Gnome.

Ich habe unterschätzt, wieviel Speicherplatz ein Desktop BS benötigt, daher habe ich mit 100GB angefangen, aber unterschätzt, wieviel Arbeit es ist, das nachher zu erweitern…

Also zuerst schauen wir mal, wo VirtualBox liegt, einfach die VBoxManage.exe suchen, am Einfachsten habe ich gefunden, Everything zu verwenden (https://www.voidtools.com/) einfach als Dienst installieren, es durchsucht die Festplatte(n) und man kann alles schnell suchen, wer das Programm nicht mag oder sich kein neues Programm installieren möchte, dann kann man auch über die Verknüpfung sehen, wo das Programm installiert ist.

Rechte Maustaste auf Virtualbox und dann Eigenschaften:

Drücken Sie auf „Dateipfad öffnen“ und voila, wir haben das richtige Verzeichnis!

Also bei mir ist VirtualBox auf C:\Program Files\Oracle\VirtualBox installiert, das brauchen wir später, wenn bei Ihnen VirtualBox wo anders installiert ist, dann müssen Sie den Pfad bitte anpassen.

Wir öffnen auf Windows ein CMD Fenster, ich öffne den immer als Administrator, dann brauche ich nicht ständig umwechseln, falls ich mal mehr Rechte brauche, also WIN+R dann CMD eingeben und Shift + Ctrl + ENTER und bestätigen den Administrator-Zugriff.

Wechseln wir ins Verzeichnis, wo Debian installiert ist, das ist einfach, aus VirtualBox  aus, rechte Maustaste auf die Virtuelle Maschine drücken und drücken Sie auf „Im Explorer zeigen“, dann öffnet sich der richtige Pfad.

Jetzt wissen wir wo Debian installiert ist, das ist bei mir auf C:\Users\Alex\VirtualBox VMs\Linux\Debian 12.1 Gnome

So nun können wir mal sehen, ob VirtualBox etwas über die .vdi Festplatte etwas zu sagen hat: (die Festplatte ist die mit dem .vdi oder .,vmdk am Ende)

cd "C:\Users\Alex\VirtualBox VMs\Linux\Debian 12.1 Gnome"
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" showhdinfo "Debian 12.1 Gnome.vdi"

Merke: In Windows, immer dann wann ein Leerzeichen im Pfad ist, muss man die Befehle, Pfade usw. unter “ “ Anführungszeichen setzen!

Dann kommt folgendes:

UUID: c41778e5-3a2d-441f-81d3-5b8bac7fbe3f
Parent UUID: base
State: locked write
Type: normal (base)
Location: C:\Users\Alex\VirtualBox VMs\Linux\Debian 12.1 Gnome\Debian 12.1 Gnome.vdi
Storage format: VDI
Format variant: dynamic default
Capacity: 102400 MBytes
Size on disk: 19249 MBytes
Encryption: disabled
Property: AllocationBlockSize=1048576
In use by VMs: Debian 12.1 Gnome (UUID: 0068487f-6f4f-46b6-8192-6c83c7360c8a)

Somit wissen wir, das VBOXManage die Festplatte erkannt hat und die Daten ausliest.

Wir können nun die Größe, von meinen 100gb auf 200gb erweitern:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd "Debian 12.1 Gnome.vdi" --resize 204800

Natürlich muss die Virtuelle Maschine vorher abgedreht sein!

sonst kommt:

VBOX_E_INVALID_OBJECT_STATE (0x80bb0007)

Das bedeutet, die Virtuelle Maschine läuft, das darf natürlich nicht sein!

0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%

Bedeuet alles ok!

So nun können wir die Virtuelle Maschine wieder starten.

Sobald wir wieder eingeloggt sind, können wir die zu kleinen Partitionen identifizieren und vergrößern:

Öffnen Sie ein Terminal (Shell oder Bash) und wir listen mal die Festplatten (mounts) auf:

sudo lsblk

alex@debian12gnome-local:~$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200.1G 0 disk
├─sda1 8:1 0 487M 0 part /boot
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 99.5G 0 part
├─vg_system-root 254:0 0 6G 0 lvm /
├─vg_system-usr 254:1 0 20.9G 0 lvm /usr
├─vg_system-var 254:2 0 5.4G 0 lvm /var
├─vg_system-swap_1 254:3 0 3.8G 0 lvm [SWAP]
├─vg_system-skole+tjener+home0 254:4 0 25.4G 0 lvm /srv/nfs4/home0
│ /skole/tjener/home0
├─vg_system-var+spool+squid 254:5 0 14.3G 0 lvm /var/spool/squid
└─vg_system-skole+backup 254:6 0 16.9G 0 lvm /skole/backup
sr0 11:0 1 51M 0 rom
alex@debian12gnome-local:~$

Wir sehen aktuell nicht viel, da wir ja nicht wissen wieviel Platz auf der jeweiligen Partition (mount) vorhanden ist:

sudo df -h

alex@debian12gnome-local:~$ sudo df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.0G 0 3.0G 0% /dev
tmpfs 601M 2.9M 598M 1% /run
/dev/mapper/vg_system-root 5.9G 838M 4.8G 15% /
/dev/mapper/vg_system-usr 16G 15G 452M 95% /usr
tmpfs 3.0G 12K 3.0G 1% /dev/shm
tmpfs 5.0M 8.0K 5.0M 1% /run/lock
/dev/sda1 455M 135M 296M 32% /boot
/dev/mapper/vg_system-skole+tjener+home0 25G 124K 24G 1% /srv/nfs4/home0
/dev/mapper/vg_system-skole+backup 17G 24K 16G 1% /skole/backup
/dev/mapper/vg_system-var 5.2G 1.1G 3.9G 23% /var
/dev/mapper/vg_system-var+spool+squid 14G 17M 14G 1% /var/spool/squid
tmpfs 601M 168K 601M 1% /run/user/1000

Und da sehen wir unseren Schuldigen es ist /dev/mapper/vg_system-usr, diese Partition müssen wir erweitern

sudo lvextend -L +5G /dev/vg_system/usr

alex@debian12gnome-local:~$ sudo lvextend -L +5G /dev/vg_system/usr
Size of logical volume vg_system/usr changed from 16.85 GiB (5338 extents) to 20.85 GiB (6618 extents).
Logical volume vg_system/usr successfully resized.

Damit erweitern wir die Partition aber können den dazugewonnenen Platz aber noch nicht verwenden, dazu müssen wir noch das Dateisystem erweitern:

sudo resize2fs /dev/vg_system/usr

alex@debian12gnome-local:~$ sudo resize2fs /dev/vg_system/usr
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/vg_system/usr is mounted on /usr; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 4
The filesystem on /dev/vg_system/usr is now 6776832 (4k) blocks long.

Damit haben wir erfolgreich die Festplatte erweitert und können nun Dateien, Programme usw. speichern. Wenn uns der Platz ausgeht, dann erweitern wir nach dieser Anleitung die Festplatte.

Getestet unter Debian 12 und Windows 10 (Windows 11 sollte ohne Probleme gehen!)

Wie immer, alle Angaben ohne Gewähr, Anwendung auf eigene Gefahr und Verantwortung, ich übernehme keinerlei Haftung für Ausfälle, Datenverlust oder andere finanzielle Schäden.

Happy coding!

[Scoriet] Quellcode Generator Vorstellung

Scoriet, ein Template gestützter Programmgenerator.

Scoriet (https://www.scoriet.com) ist in Programm dass ich vor längerer Zeit geschrieben habe.

Scoriet ist ein Template gestützter Programmgenerator, nicht wie PHPRunner oder vergleichbare Programme, kann Scoriet ganze App’s vollständig aufgrund von Vorlagen (Templates) generieren. Jede Änderung an den Templates werden registriert und die Vorlagen von Scoriet neu Kompiliert.

Zuerst mit einem einfachen PHP Klassen Generator ausgestattet, entwickelte ich das Konzept weiter und brachte einen PHP API Generator dazu, später kam sogar eine komplette Webseite mit Login usw. dazu. CRUD also create, read, update und delete. Für jede dieser Begriffe erstellt Scoriet eine Seite.

  • Eine Startseite mit Menü
  • Eine Login-Seite
  • Eine Tabelle der Daten
  • Ein Formular für die Dateneingabe
  • Eine Seite um die Daten zu drucken

Ich mache Scoriet open-source 2017. Das Projekt ist auf GitHub: https://github.com/Harveyhase68/scoriet

Zumindest konnte Scoriet bisher nur PHP generieren, jetzt habe ich Scoriet weiter verbessert und ein neues Template ist dazu gekommen:

Scoriet kann nun auch eine Python Flask REST API generieren.

Die Verbindung zur Datenbank erfolgt über die db_config.py und die eigentliche API ist die api.py. Im Verzeichnis „/tables“ stehen alle Datentabellen der Datenbank (MySQL oder PostgreSQL). api.py liest am Programmstart alle *.py aus und erstellt selbständig eine Route für jede Tabelle. In der .env Datei stehen die Zugangsdaten für die Datenbank. Die functions.py ist für die Ausgabe als JSON zuständig.

Wenn eine users.py im /tables stehen würde, würde Scoriet folgende Routen anlegen:

  • /users – GET liest alle users aus, sortiert sie nach der z.B. user_no
  • /users/query – POST, erwartet eine JSON datei, wobei query, fields oder orderby gesetzt werden können, damit wird dann das SELECT statement aufgebaut
  • /users – POST, hier werden die Daten in die Datenbank per SQL INSERT in die Datenbank geschrieben, erwartet werden Datenfelder im JSON Format.
  • /users – PUT, hier werden die Daten geändert, das UPDATE SQL Statement nimmt nur die Daten per JSON und auch nur die Felder die geändert werden sollen. Alle anderen Felder werden nicht geändert. Die ID oder die Nr. wird per URL übergeben.
  • /users – DELETE, übergeben Sie die die ID bzw. den eindeutigen Datensatz-Identifier per URL, der Datensatz wird gelöscht.

Was noch fehlt, wäre die API Sicherheit, zumindest die BASIC Authentication hätte ich schon mal gemacht, das müsste ich noch einbauen. Eine weitere Sicherheitsstufe wäre natürlich die Session-ID und ein Token. Aktuell muss ich mich leider wieder um etwas anderes kümmen, ev. kann ja ein anderer Programmierer das für mich machen?? *lieb kuck*

Getestet unter Windows 10 (11 sollte ohne Probleme gehen), die Python REST API ab Python 3.7 auf CentOS 6 und Debian 11.

Wie immer, alle Angaben ohne Gewähr, Anwendung auf eigene Gefahr und Verantwortung, ich übernehme keinerlei Haftung für Ausfälle, Datenverlust oder andere finanzielle Schäden.

Happy coding!

[win->macos13] Wie man macOS Ventura (13) auf VMWare (Windows 10/11) zum laufen bringt

Diese Anleitung ist rein Akademisch, keine Nachahmung empfohlen und ist von Seiten Apples nicht gestattet. Ich betreibe keine Downloads zu dem Thema und habe nach der Anleitung alle virtuellen Maschinen wieder gelöscht. Nachmachen auf eigene Gefahr und Verantwortung.

Zuerst laden wir uns den VMWare Player 17 herunter:

https://www.vmware.com/content/vmware/vmware-published-sites/us/products/workstation-player/workstation-player-evaluation.html.html

Dann das macOS Ventura (13) VMDK Image herunterladen: (eine VMDK ist fertig installiert, also ein „Clone“ von einer Festplatte, damit geht es schneller und vor allem es funktioniert! Man braucht nicht mühsam von einer .ISO das Betriebssystem zu installieren)

https://drive.google.com/file/d/1pKppcUCT6StvNGDeqwELyoLheNrilE_K/view?usp=sharing
https://drive.google.com/file/d/1XvYBTeFBNfU6lEjCoHl1YxlMbpjugA7H/view?usp=sharing
https://drive.google.com/file/d/1vSr7apfvIB0Ufq9SCDKhMgmILCuideWz/view?usp=sharing

Credits für die VM und den unlocker gehen an https://www.sysprobs.com/macos-13-ventura-vmware-pre-installed-image-download-windows-11-10?utm_content=cmp-true

Falls einmal die Downloads nicht mehr gehen, bitte mir eine kurze Nachricht schicken, ich kann euch dann auf einen alternativen google.drive.com verlinken.

Warum verlinke ich nicht gleich auf https://www.sysprobs.com?? Natürlich, damit Ihr a) weniger Werbung seht, b) die Anleitung nun auf Deutsch habt und c) ein „Mirror“ ist, für alle Eventualitäten und d) ich habe den Installationsvorgang sehr detailliert abgebildet, damit auch weniger PC begabte die Schritte nachvollziehen können. Aber bitte klickt bitte auf den oberen Link und macht einen Hit, damit sysprobs.com etwas davon hat!

Disclaimer: Die Bilder habe ich natürlich nicht von Sysprobs geklaut, das sind hübsch meine, die bitte nur mit meiner Erlaubnis verlinken/verwenden, vielen Dank!

Dann benötigen wir noch 7-Zip zum entpacken:

https://www.7-zip.org/download.html

Nun noch den VM Ware Player 17 und 7Zip installieren… das müsst Ihr hinbekommen, Spoiler: nachher wird’s noch schwieriger… oder Ihr lasst euch helfen?!

Dann laden wir uns noch den VMWare Unlocker herunter:

https://github.com/paolo-projects/unlocker/releases/download/3.0.4/unlocker.zip

Entpacken, nach unlocker, ich entpacke immer gleich im Download Ordner, danach lösche ich den Ordner wieder, nach getaner Arbeit.

Die Installation vom unlocker (keine Illegale Software, schaltet nur in der VMWare die Option macOS frei!!) soll erfolgen, wenn VMWare nicht läuft, sonst funktioniert das nicht. Also VMWare beenden, dann öffnet Ihr einen Explorer, klickt mit der rechten Maustaste auf „win-install.cmd“ und wählt „Als Administrator ausführen“…

damit schaltet Ihr MacOS in VMWare frei, sonst könnt Ihr MacOS nicht installlieren…

Öffnet den Task-Manager (STRG+SHIT+ESC), seht nach in „Leistung/CPU“ und schaut unten auf „Virtualisierung“, wenn dort steht „Aktiviert“ ist alles roger, keine Änderung notwendig, falls dort „Virtualisierung“ auf „Deaktiviert“ steht, müsst Ihr die VT-x für den Prozessor im BIOS einschalten, nur so funktioniert die VMWare. Virtualisierung aktivieren falls man Hilfe braucht.

So damit haben wir die Voraussetzungen und können loslegen:

Zuerst entpacken wir die 3 Image Teile, damit wir die .vmdk erhalten:
Wir kopieren alle 3 Teile in ein Verzeichnis, drücken die rechte Maustaste auf die erste ZIP Datei (.001) und wählen Extract to „macOS13_ventura\“

Im Verzeichnis macOS13_ventura sollte sich nun die macOS13_ventura.vmdk befinden!

Wir starten VMWare und erzeugen eine neue Virtuelle Maschine:

Dann wählen wir später installieren und drücken „Next“:

Dank des „unlocker“ Patches, können wir nun Apple Max OS X auswählen und „Next“ drücken:

Nun können wir den Namen der VM bestimmen und auch den Speicherort und drücken „Next“:

Dann die Festplattengröße festlegen, ist egal, wir tauschen dann diese Festplatte gegen unsere entpackte VMDK vorinstallierte Festplatte aus. Drücken Sie „Next“

So, dann auf „Finish“ drücken:

Nun ändern wir die neu erstellte Virtuelle Maschine, drücken Sie dazu auf den Namen „macOS 13“ oder so wie Sie die VM genannt haben und drücken unten auf „Edit virtual machine settings“

Nun ändern wir die Ram Größe auf 6144MB = 6GB Ram:

Dann ändern wir die Anzahl der Prozessoren auf 6:

Nun fügen wir die Festplatte hinzu, wählen Sie Hard Disk (SATA) und drücken Sie unten auf „Add“:

dann wählen wir Harddisk und drücken auf „Next“

Wählen Sie SATA und drücken Sie auf „Next“:

Im nächsten Bildschirm wählen Sie „Use an existing virtual disk“ und drücken auf „Next“:

Wählen Sie nun die heruntergeladene VMDK aus und drücken Sie auf „Finish“:

Nachdem die VMDK schon älter ist (VMWare 16) kann man diese noch auf das neueste Format bringen, das habe ich gemacht:

Man kann, muss man aber nicht, die Größe von 60GB auf 80GB oder größer nun verändern, das kann man mit dem Button „Expand“, einfach die neue Größe eingeben, macOS verwendet dann die neue Größe ohne die Partition ändern zu müssen.

Nun müssen wir nur noch die .vmx Datei ändern, dazu öffnen wir das Verzeichnis, wo wir die VM installiert haben, dazu können wir nochmal in den Virtual Machine Settings nachsehen, wo die VM vorhanden ist:

Diesen Pfad kopieren wir und setzen ihn im Adressfeld von einem Windows Explorer ein, dann drücken wir mit der rechten Maustaste darauf und wählen „Öffnen mit“:

und wählen dann den Editor und drücken Ok:

dann im Editor fügen wir ganz unten smc.version = “0” ein:

Im nächsten Schritt suchen wir nach „ethernet0.virtualDev“, den Eintrag müssen wir von ethernet0.virtualDev=“e1000e“ auf ethernet0.virtualDev=“vmxnet3″ ändern

Speichern wir die Datei und wir können die VM starten:

das Passwort für den Sysprobs Benutzer Account lautet: sysprobs123: (wenn das Passwort falsch ist, probiert szsprobs123 (im Englischen sind Z und Y vertauscht!)

In der VM zuerst die Tastatur auf Deutsch umstellen, dann sich im Apple Account Anmelden. Der Klammeraffe @ ist auf der Apple Tastatur ALTGR+L statt ALTGR+Q

Kann man diese VM updaten z.B. später mal auf macOS 14 usw., JA

Kann man den Sysprobs Account ändern: JA (einfach einen neuen Admin Benutzer hinzufügen und den Sysprobs Account löschen)

Kann man das Passwort ändern, JA

Eigentlich kann man nun mit der funktionierenden VM so ziemlich alles machen was man möchte, mit XCode Programme schreiben, Handys verbinden (die USB einfach freigeben) usw. Den Bildschirm kann man größer anpassen, Vollbild geht auch, ich habe 3 Bildschirme, der linke ist dann für macOS.

Aja natürlich geht das ganze auch direkt am Mac, da ich einen mac mini late 2014 besitze und Xocde natürlich die Mindestanforderung macOS 13 hat, habe ich mich überhaupt darum bemüht, macOS 13 zum Laufen zu bringen. Mit VMWare Fusion kann man auch am Mac direkt, macOS 13 emulieren:

Disclaimer: Ich besitze einen Mac Mini darauf läuft macOS, ich habe diese Anleitung nur geschrieben, damit Andere macOS testen können, aber wenn man macOS benutzen möchte, sei es Privat, Beruflich oder gar in Firmem verwenden möchte, bitte kauft einen Apple Mac! Ich habe macOS nicht mehr in der VM laufen (nach dem Testen gelöscht) und distanziere mich von jedem finanziellem Interesse. Grundsätzlich ist der Betrieb und Installation von macOS auf einer nicht Apple Hardware untersagt und verstößt daher gegen die Bestimmungen von Apple!

Der Download ist von einem anderen User, der nicht mit mir verwandt oder mir bekannt ist, ich stehe in keiner Verbindung mit dieser Person. Falls eine Beanstandung dieser Links besteht, bitte um eine Nachricht auf office[add]predl.cc, ich werde diese umgehend entfernen.

Ich erhalte keine Finanzielle Unterstützung von irgendwem und werde auch nicht Werbefinanziert. Diese Seite ist ein Hobby Projekt und alle Anleitungen sollen nur als „Proof of Concept“ gesehen werden, nachmachen auf eigene Gefahr und Verantwortung.

Apple und macOS alle Rechte (Markenrechte und Copyright) liegen bei Apple Inc.One Apple Park Way, Cupertino, CA 95014.

Getestet unter Windows 10 und VMWare Player 17

Wie immer, alle Angaben ohne Gewähr, Anwendung auf eigene Gefahr und Verantwortung, ich übernehme keinerlei Haftung für Ausfälle, Datenverlust oder andere finanzielle Schäden. Die Links auf dieser Seite wurden von mir nicht überprüft, ich übernehme keine Haftung für die Inhalte.

Happy coding!