۱۴۰۵ آبان ۱۹, سه‌شنبه

راهنمای گام به گام اجرای macOS در Proxmox VE

مفهوم مجازی‌سازی اکنون در همه جا وجود دارد و ابزارهای محبوبی مانند Docker، Virtualbox، Hyper-V و Vmware نقش بسزایی در محبوبیت آن دارند. مجازی‌سازی را می‌توان به عنوان فرآیند ایجاد یک نسخه مجازی از چیزی مانند پلتفرم سخت‌افزاری کامپیوتر، سیستم عامل، دستگاه ذخیره‌سازی یا منابع شبکه تعریف کرد. سپس می‌توان از جلسات مجازی ایجاد شده برای اجرای چندین سیستم عامل یا برنامه بر روی یک دستگاه فیزیکی واحد استفاده کرد و انعطاف‌پذیری و کارایی بیشتری در استفاده از منابع ایجاد کرد. Step by Step Guide For Running macOS on Proxmox VE Klinsmann Öteyo Updated Apr 12, 2024 · 9 min read The concept of virtualization is now everywhere with popular tools such as Docker, Virtualbox, Hyper-V, and Vmware playing a huge part in its popularity. Virtualization can be defined as the process of creating a virtual version of something, such as a computer hardware platform, operating system, storage device, or network resources. The created virtual sessions can then be used to run multiple operating systems or applications on a single physical machine, allowing greater flexibility and efficiency in resource utilization. Original content from computingforgeeks.com - post 136005 One of the recent virtualization tools to be introduced is Proxmox. This is free and open-source software, licensed under the GNU Affero General Public License. However, there is also a paid enterprise version called Proxmox VE Subscription, that offers additional features and professional support. Today, we will learn how to run macOS on Proxmox VE. This is made possible via the KVM-Opencore which is a fork of Leoyzen’s OpenCore image for QEMU/KVM, which has been extended to add a build system for automatically building all of the required files from source code and to keep up with the latest OpenCore changes. This has been tested to boot macOS Catalina, Big Sur, and Monterey, but will likely also boot older versions of macOS. Although the images provided are for QEMU/KVM distributions, they can still be built to work for Promox. Now let’s dive in! Setup Prerequisites For this guide, you need to have Proxmox 7 installed. This can be done by following the below guides: How To Install Proxmox VE 8 on Debian 12 (Bookworm) How To Install Proxmox VE 7 on Debian 11 (Bullseye) Install Proxmox VE 7 on Hetzner root server How To Install Proxmox VE 7 on OVH Dedicated Server The Proxmox host should have: CPU with support SSE 4.2 First CPU generation bearing the “Core” i5/i7 branding Homelab hardware macOS guests want plenty of RAM and a CPU with strong single-thread speed. The Proxmox mini PC shortlist covers small hosts that run guests like this without a rack server. Create macOS Installation ISO We will build an ISO for installation from the OSX-KVM repository. First. download the copy onto your machine: git clone https://github.com/thenickdude/OSX-KVM Copy If you are building the ISO on a Linux host, you need to install the below packages: ##On Debian/Ubuntu sudo apt update sudo apt install qemu-utils make Copy Now navigate into the directory: cd OSX-KVM/scripts/monterey Copy Now create the image: ##For Minimal_Image make Monterey-recovery.img ##For Full_Image(on MacOS only) make Monterey-full.img Copy The above command will download the Monterey installer from Apple’s software distribution servers and create the Monterey-recovery.img file. This image will be used later to run the installation on Proxmox. With the minimal image, you need internet during the installation to download any required files. For the full image, no Internet is required. Upload the image file to the Proxmox ISO store, normally at /var/lib/vz/template/iso. You can use the command below: sudo cp Monterey-recovery.img /var/lib/vz/template/iso/ Copy Prepare an OpenCore image For this step, you need to download the OpenCore image. Although it has a .iso extension, this is a hard disk image. Download the file from the GitHub release page. You can also use the commands below: ##Export the Version URL=$( curl -s https://api.github.com/repos/thenickdude/KVM-Opencore/releases/latest|grep browser_download_url|cut -d '"' -f 4|grep .iso.gz) ##Pull the file wget $URL Copy Now extract the file: gunzip -v OpenCore-*.iso.gz Copy Now upload this ISO to the Proxmox ISO store, normally at /var/lib/vz/template/iso. sudo cp OpenCore-*.iso /var/lib/vz/template/iso Copy Fetch the OSK authentication key During the installation, macOS checks that it is running on real Mac hardware, it refuses to boot if it’s running on third-party hardware. You can find a way around this by using obtaining an authentication key out of your real Mac hardware. You can obtain the OSK key on your Mac machine using the below steps: Create the below file: $ vim smc_read.c /* * smc_read.c: Written for Mac OS X 10.5. Compile as follows: * * gcc -Wall -o smc_read smc_read.c -framework IOKit */ #include #include typedef struct { uint32_t key; uint8_t __d0[22]; uint32_t datasize; uint8_t __d1[10]; uint8_t cmd; uint32_t __d2; uint8_t data[32]; } AppleSMCBuffer_t; int main(void) { io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("AppleSMC")); if (!service) return -1; io_connect_t port = (io_connect_t)0; kern_return_t kr = IOServiceOpen(service, mach_task_self(), 0, &port); IOObjectRelease(service); if (kr != kIOReturnSuccess) return kr; AppleSMCBuffer_t inputStruct = { 'OSK0', {0}, 32, {0}, 5, }, outputStruct; size_t outputStructCnt = sizeof(outputStruct); kr = IOConnectCallStructMethod((mach_port_t)port, (uint32_t)2, (const void*)&inputStruct, sizeof(inputStruct), (void*)&outputStruct, &outputStructCnt); if (kr != kIOReturnSuccess) return kr; int i = 0; for (i = 0; i < 32; i++) printf("%c", outputStruct.data[i]); inputStruct.key = 'OSK1'; kr = IOConnectCallStructMethod((mach_port_t)port, (uint32_t)2, (const void*)&inputStruct, sizeof(inputStruct), (void*)&outputStruct, &outputStructCnt); if (kr == kIOReturnSuccess) for (i = 0; i < 32; i++) printf("%c", outputStruct.data[i]); printf("\n"); return IOServiceClose(port); } Copy Now in the directory, run the below command: xcode-select --install # If you don't already have gcc gcc -o smc_read smc_read.c -framework IOKit ./smc_read Copy The above commands will output a 64-character string is your OSK. Take note of it. Create the macOS VM on Proxmox Now we will create the macOS virtual machine from the Proxmox web UI as shown. Provide the name of the VM. Take note of the macOS VM ID as it will be used later. Run macOS on Proxmox VE For the ISO, select the OpenCore ISO file. Run macOS on Proxmox VE 1 Set the system as shown. ensure that you set the graphics to VMware compatible, set the machine to q35 and select the Qemu agent and add an EFI disk and set storage for it Run macOS on Proxmox VE 2 Configure the hard disk. The hard disk should be greater than 32 GB Run macOS on Proxmox VE 3 Set the CPU for the VM. Set the type as Penryn Run macOS on Proxmox VE 4 Set the memory: Run macOS on Proxmox VE 5 Make the network configurations. Set the model as VirtIO(paravirtualized) Run macOS on Proxmox VE 6 Now confirm the changes. Do not start the VM yet, we need to make configurations first. Run macOS on Proxmox VE 7 Navigate to the Hardware tab and add a second DVD drive at IDE0. Here, select the Monterey-full.img or Monterey-recovery.img created earlier. Run macOS on Proxmox VE 8 Then access your Proxmox host and make the below configs: sudo vim /etc/pve/qemu-server/YOUR-VM-ID-HERE.conf Copy In the file, make the below changes and provide your OSK created earlier: args: -device isa-applesmc,osk="THE-OSK-YOU-EXTRACTED-GOES-HERE" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off Copy We have added a USB keyboard since macOS doesn’t support QEMU’s default PS/2 keyboard. Remember, if you fail to provide the OSK key, the system will fail to boot. We also need to add the below CPU argument in the above args area: ##For Intel -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc ##For AMD -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,+rdrand,check Copy This config fools the system into believing that the CPU is Penryn. This will make the MacOS VM happy even if the host CPU is AMD. You can remove the “+invtsc” feature from the list if your CPU doesn’t support it. Finally, find the lines that define “ISOs” (ide0 and ide2) and remove the “,media=cdrom” part and replace it with “,cache=unsafe” This will treat the two ISOs as hard disks and not DVDs. ide0: isos:iso/Monterey-full.img,cache=unsafe,size=14G ide2: isos:iso/OpenCore-v15.img,cache=unsafe,size=150M Copy Now you will have a config appear as below: args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc balloon: 0 bios: ovmf boot: order=ide2;ide0;net0 cores: 2 cpu: Penryn efidisk0: local:100/base-100-disk-0.qcow2,efitype=4m,size=528K ide0: storage1:vm-100-disk-1,cache=unsafe,size=3G ide2: storage1:vm-100-disk-2,cache=unsafe,size=152M machine: q35 memory: 6096 meta: creation-qemu=7.2.0,ctime=1681399367 name: macOS net0: virtio=7A:5B:01:76:0D:0E,bridge=vmbr0,firewall=1 numa: 0 ostype: other scsihw: virtio-scsi-pci smbios1: uuid=c3cf5b1c-2dd3-46cd-ad7b-4b8f9566056c sockets: 1 template: 1 unused0: local:100/base-100-disk-1.qcow2 unused1: local:iso/Monterey-recovery.img unused2: local:iso/OpenCore-v19.iso vga: vmware virtio0: storage1:vm-100-disk-0,iothread=1,size=37G vmgenid: 9b5673d9-0bb6-48ef-b24f-4c9771c65577 Copy Now on the options tab, put IDE2 first on the boot order. Run macOS on Proxmox VE 9 Now run the below command to avoid a boot loop during macOS boot and make the changes persist below reboots: echo 1 > /sys/module/kvm/parameters/ignore_msrs” echo "options kvm ignore_msrs=Y" >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u Copy Install macOS on Proxmox Now start the VM and it should boot into the OpenCore boot picker. Make the below selection “MacOS Base System” Run macOS on Proxmox VE 10 For those who built a full image, you will see “Install macOS Monterey” as the label. The boot will load: Run macOS on Proxmox VE 11 Proceed to the disk utility window: Run macOS on Proxmox VE 12 While here, locate your hard disk(named Apple Inc. VirtIO) and erase it: Run macOS on Proxmox VE 13 Provide a name for it. For this guide, we will call it Main Run macOS on Proxmox VE 14 Once the erasing is complete, close the disk utility window and select Reinstall MacOS: Run macOS on Proxmox VE 15 Agree to the License terms: Run macOS on Proxmox VE 16 Select the disk on which you want to make the installation: Run macOS on Proxmox VE 17 Sit back and wait for the installation to happen. Remember, this can take sometime: Run macOS on Proxmox VE 18 During this stage, your system will reboot severally asking you to manually select the “macOS Installer” option: Run macOS on Proxmox VE 19 Once complete, you will see your disk appear here( ours is labelled Main) Run macOS on Proxmox VE 20 This shows that the installation is complete and we should be able to boot into our hard disk. Proceed with the initial configurations. Select your country: Run macOS on Proxmox VE 21 COnfigure your migration assistant: Run macOS on Proxmox VE 22 Skip this step of signing into your Apple ID until you’ve configured your Mac’s serial number in OpenCore. Otherwise, a Mac device with the default shared serial numbering the OpenCore image will be added to your Apple ID. Run macOS on Proxmox VE 23 Agree to the license terms: Run macOS on Proxmox VE 24 Create a system user: Run macOS on Proxmox VE 25 Set your TimeZone: Run macOS on Proxmox VE 26 Configure your Theme: Run macOS on Proxmox VE 27 Voila! You now have the Mac desktop launched! Run macOS on Proxmox VE 28 Make the MacOS Installation Persistent We have seen the MacOS desktop but that does not mean that we are done. You need to make the installation permanent. This involves copying the contents of the EFI partition on OpenCore to the hard disk. First, launch the terminal on this Mac installation and view the available partitions using the command: diskutil list Copy Sample Output: Run macOS on Proxmox VE 30 Now we will copy the EFI partition from OpenCore to the hard disk using the command with the below syntax: sudo dd if= of= Copy The OpenCore EFI partition exists on the small disk(approximately 150MB), and the main hard disk is the one with the large(greater than 30GB) Apple_APFS “Container” partition on it. In this case, the EFi partitions are called disk1s1 a and disk2s1 respectively, this may not be similar to yours. Now that makes our command to be: sudo dd if=/dev/disk1s1 of=/dev/disk2s1 Copy Remember to be very careful at this stage because if you get the names wrong, you can overwrite the wrong disk and you’ll have to start the installation over again! Sample Output: Run macOS on Proxmox VE 31 Boot into macOS installation Now shut down the VM and remove both the OpenCore and the Monterey installer drives in the Hardware tab. Run macOS on Proxmox VE 33 In the options tab, edit your boot order and place your hard disk as the first boot option. Run macOS on Proxmox VE 32 Now start the VM, and if everything is okay, you should see this: Run macOS on Proxmox VE 34 Login to the VM. Run macOS on Proxmox VE 35 Once authenticated, you can proceed and make the desired configurations for your Mac system. Run macOS on Proxmox VE 36 If you are unable to wake Monterey from sleep, using your mouse or keyboard, you can disable the system sleep in Monterey’s Energy Saver settings to avoid the issue. You can also wake the system manually using the command: ##From your Proxmox host qm monitor YOUR-VM-ID-HERE system_wakeup quit Copy With that, we conclude this guide on how to run macOS on Proxmox VE. I hope you too managed to spin MacOS on Proxmox.

۱۴۰۵ مرداد ۱۸, یکشنبه

استاد و ریاضی دان ایرانی مریم میرزاخانی

مریم میرزاخانی در ۲۲ اردیبهشت سال ۱۳۵۶ در تهران به دنیا آمد. او ریاضی‌دان ایرانی و استاد دانشگاه استنفورد بود. او در سال ۲۰۱۴ به دلیل کنشگری در زمینهٔ «دینامیک و هندسه سطوح ریمانی و فضاهای پیمانه‌ای آن‌ها» برنده مدال فیلدز که بالاترین جایزه در زمینه ریاضیات است شد. او اولین زن و همچنین اولین ایرانی برندهٔ مدال فیلدز است. نظریه تایشمولر، هندسه هذلولوی، نظریه ارگودیک و هندسه سیمپلتیک زمینه‌های تحقیقاتی او بودند. در ۴ نوامبر ۲۰۱۹ بنیاد جایزه بریکترو اعلام کرد که جایزه جدیدی به نام جایزه مریم میرزاخانی مرزهای نو را ایجاد کردند که به زنان پیشتاز در علم ریاضی تقدیم خواهد شد. جوایز و افتخارات: - مدال طلا. المپیاد جهانی ریاضی (هنگ‌کنگ ۱۹۹۴) - مدال طلا (با نمرهٔ کامل) المپیاد جهانی ریاضی (کانادا ۱۹۹۵) - همکار پژوهشگاه دانش‌های بنیادی، تهران، ایران از ۱۹۹۵ تا ۱۹۹۹ - جایزهٔ افتخاری دانشگاه هاروارد در سال ۲۰۰۳ - جایزهٔ برترین فارغ‌التحصیلان دانشگاه هاروارد در سال ۲۰۰۳ - جایزهٔ پژوهشگر برتر بنیاد ریاضیات کلی در سال ۲۰۰۴ - جایزهٔ ای‌ام‌اس بلومنتال در سال ۲۰۰۹ - دعوت به کنگره بین‌المللی ریاضیات در سال ۲۰۱۰ برای سخنرانی در مورد «توپولوژی و سیستم‌های پویا و معادله دیفرانسیل معمولی» - جایزه ستر از طرف انجمن ریاضی آمریکا در سال ۲۰۱۳ - انتخاب به عنوان یکی از ده فرد مهم سال ۲۰۱۴ از سوی مجله نیچر - جایزه بنیاد ریاضیات کلی در سال ۲۰۱۴ - سخنران مدعو کنگرهٔ بین‌المللی ریاضی (۲۰۱۴) - مدال فیلدز سال ۲۰۱۴ سئول - عضویت در فرهنگستان علوم فرانسه در سال ۲۰۱۵ - عضویت در مجمع فیلسوفان آمریکا در سال ۲۰۱۵ - عضویت در آکادمی ملی علوم آمریکا در سال ۲۰۱۶ - عضویت در فرهنگستان هنر و علوم در سال ۲۰۱۷ - جایزه بریکترو در ریاضیات در سال ۲۰۲۰ (پس از درگذشت) او در نهایت پس از ۴ سال مبارزه با بیماری سرطان در ۲۳ تیرماه سال ۱۳۹۶ در ۴۰ سالگی در بیمارستانی در کالیفرنیا درگذشت. و آرامگاه وی در پارک یادبود لوس گاتوس در کالیفرنیا قرار دارد.
نصب ChromeOS اصلی با Brunch Framework روی HP Compaq Elite 8300 SFF تجربه نصب ChromeOS روی یک کامپیوتر قدیمی با دو کارت گرافیک آیا می‌شود ChromeOS اصلی را روی یک کامپیوتر قدیمی مثل HP Compaq Elite 8300 SFF نصب کرد؟ بله. با استفاده از Brunch Framework می‌توان ChromeOS Recovery را روی بسیاری از کامپیوترهای معمولی اجرا کرد. در این تجربه، ChromeOS روی یک HP Compaq Elite 8300 SFF با پردازنده Ivy Bridge و دو کارت گرافیک Intel و AMD اجرا شد. نکته جالب این تجربه این بود که مشکل اولیه تصویر نه از Brunch بود و نه از کارت گرافیک؛ بلکه با تعویض کابل تصویر و تغییر تنظیمات گرافیکی BIOS برطرف شد. مشخصات سیستم سیستمی که برای این تست استفاده شد: قطعه مشخصات کامپیوتر HP Compaq Elite 8300 SFF پردازنده Intel Core i5-3570 نسل CPU Ivy Bridge گرافیک مجتمع Intel HD Graphics 2500 کارت گرافیک مجزا AMD Radeon HD 6450 BIOS نسخه 3.08 خروجی مادربرد VGA + DisplayPort این سیستم نسبتاً قدیمی است، اما پردازنده 64 بیتی و UEFI آن باعث می‌شود بتوان از روش‌های غیررسمی مانند Brunch برای اجرای ChromeOS استفاده کرد. Brunch Framework چیست؟ Brunch Framework یک پروژه غیررسمی است که امکان اجرای ChromeOS Recovery روی سخت‌افزارهایی غیر از Chromebookهای رسمی را فراهم می‌کند. در این روش، به جای نصب ChromeOS Flex، از یک ChromeOS Recovery Image استفاده می‌شود و Brunch نقش لایه سازگاری و بوت را بر عهده می‌گیرد. بنابراین نتیجه، تجربه‌ای بسیار نزدیک‌تر به ChromeOS واقعی Chromebookها است. پیش‌نیازها برای نصب معمولاً به موارد زیر نیاز دارید: یک کامپیوتر سازگار یک SSD یا HDD برای ChromeOS فایل ChromeOS Recovery مناسب Brunch Framework مناسب همان نسخه ChromeOS یک سیستم‌عامل Linux برای آماده‌سازی و اجرای اسکریپت نصب اتصال اینترنت برای دانلود فایل‌های موردنیاز بهتر است قبل از نصب، از اطلاعات مهم دیسک موردنظر نسخه پشتیبان تهیه کنید. مرحله اول؛ آماده کردن ChromeOS Recovery ابتدا باید Recovery Image مناسب ChromeOS را تهیه کنید. فایل Recovery معمولاً به صورت فشرده دریافت می‌شود و بعد از استخراج، فایل Image مورد استفاده Brunch در اختیار شما قرار می‌گیرد. نسخه ChromeOS و نسخه Brunch باید با یکدیگر سازگار باشند؛ بنابراین نباید هر نسخه Brunch را با هر Recovery Image ترکیب کرد. مرحله دوم؛ آماده کردن Brunch پس از دانلود Brunch Framework، فایل‌های آن را در Linux استخراج کنید. در پوشه Brunch معمولاً اسکریپت نصب قرار دارد. ساختار فایل‌ها بسته به نسخه Brunch ممکن است متفاوت باشد، بنابراین بهتر است دستورهای موجود در README همان نسخه را دنبال کنید. مرحله سوم؛ نصب ChromeOS پس از آماده شدن Recovery Image و Brunch، اسکریپت نصب Brunch روی دیسک مقصد اجرا می‌شود. یک نمونه از ساختار دستور نصب می‌تواند شبیه این باشد: sudo chromeos-install.sh -src recovery.bin -dst /dev/sdX توجه: /dev/sdX فقط نمونه است. باید نام واقعی دیسک مقصد را پیدا کنید و قبل از اجرای دستور، حتماً آن را بررسی کنید؛ چون انتخاب اشتباه دیسک می‌تواند باعث پاک شدن اطلاعات یک هارد دیگر شود. برای مشاهده دیسک‌ها می‌توانید از دستور زیر استفاده کنید: lsblk مرحله چهارم؛ تنظیم Boot بعد از نصب، باید Bootloader سیستم طوری تنظیم شود که بتواند ChromeOS/Brunch را پیدا کند. در سیستم‌های دارای چند سیستم‌عامل، ممکن است لازم باشد یک ورودی GRUB برای ChromeOS ایجاد شود. این موضوع به ساختار دیسک و Bootloader نصب‌شده روی سیستم بستگی دارد. در سیستمی که چند سیستم‌عامل دارد، بهتر است ChromeOS را به عنوان یک گزینه در Boot Menu نگه دارید تا سایر سیستم‌عامل‌ها نیز بدون مشکل قابل استفاده باشند. مرحله پنجم؛ اولین بوت بعد از راه‌اندازی مجدد، منوی Brunch نمایش داده می‌شود. پس از انتخاب ChromeOS، سیستم وارد محیط ChromeOS می‌شود. در تست انجام‌شده روی Elite 8300، همین اتفاق افتاد: Brunch → ChromeOS → Desktop بنابراین مشخص شد که این سخت‌افزار توانایی اجرای ChromeOS با Brunch را دارد. مشکل دو کارت گرافیک یکی از نگرانی‌های اصلی در این سیستم وجود دو GPU بود: Intel HD 2500 + AMD Radeon HD 6450 در ابتدا این احتمال وجود داشت که Radeon 6450 باعث مشکل در ChromeOS شود. اما در عمل ChromeOS با Brunch بوت شد. بنابراین نمی‌توان گفت صرفاً وجود Radeon 6450 باعث غیرممکن شدن نصب ChromeOS می‌شود. مشکل تصویر و راه‌حل در این سیستم، مشکل اولیه تصویر با دستکاری Brunch حل نشد. راه‌حل بسیار ساده‌تر بود: 1. تغییر کابل تصویر کابل تصویر تغییر داده شد. 2. تغییر تنظیمات BIOS در BIOS گزینه Integrated Graphics وجود داشت و تنظیمات مربوط به گرافیک تغییر کرد. 3. استفاده از خروجی مناسب Elite 8300 دارای خروجی‌های: VGA DisplayPort روی مادربرد است. با انتخاب صحیح خروجی و تنظیم BIOS، تصویر به‌درستی نمایش داده شد. نتیجه Brunch بالا آمد و سپس ChromeOS نیز بدون مشکل اجرا شد. این تجربه نشان داد که قبل از تغییر Kernel، حذف GPU یا تغییر فایل‌های Brunch، بهتر است موارد ساده‌ای مثل کابل و تنظیمات BIOS بررسی شوند. آیا Radeon HD 6450 باید خارج شود؟ در این تجربه، خیر. از آنجا که ChromeOS قبلاً با وجود Radeon 6450 بوت شده بود، خارج کردن کارت گرافیک ضروری نبود. اگر روی سیستم دیگری مشکل مشابهی ایجاد شد، می‌توان کارت گرافیک مجزا را موقتاً خارج کرد و با Intel تست گرفت؛ اما در این سیستم چنین کاری لازم نشد. فعال کردن Linux Terminal بعد از اجرای موفق ChromeOS، مرحله بعدی فعال کردن Linux Development Environment یا همان محیط Linux/Terminal بود. ChromeOS برای اجرای برنامه‌های Linux از Crostini استفاده می‌کند. این بخش با خود محیط ChromeOS متفاوت است. یعنی ممکن است: ChromeOS کاملاً سالم اجرا شود اما Linux Terminal نصب نشود. خطای Termina DLC در این تجربه، هنگام فعال کردن Linux Environment خطایی مشابه زیر مشاهده شد: Error: operation `vm_start` failed: DLC service failed to install module `termina-tools-dlc` ERROR - ERROR: command failed این خطا مربوط به نصب اجزای موردنیاز محیط Linux، مخصوصاً Termina DLC است. آیا مشکل از کارت گرافیک بود؟ خیر. چون ChromeOS قبل از آن به‌طور کامل اجرا شده بود. بنابراین باید بین این دو مشکل تفاوت قائل شد: مشکل علت احتمالی تصویر نداشتن کابل / خروجی / BIOS / GPU ChromeOS بوت نمی‌شود Boot / Brunch / Kernel / سخت‌افزار ChromeOS اجرا می‌شود ولی Terminal نصب نمی‌شود شبکه / سرویس‌های Google / DLC Termina DLC نصب نمی‌شود دسترسی به سرورهای موردنیاز یا مشکل نسخه در این مورد، مشکل Terminal بیشتر به دسترسی ChromeOS به سرویس‌های Google برای دریافت DLC مربوط بود. چرا Terminal در ChromeOS ممکن است نصب نشود؟ برای فعال شدن Linux Environment، ChromeOS باید فایل‌ها و اجزای موردنیاز را دریافت کند. اگر اتصال سیستم به سرویس‌های موردنیاز Google برقرار نباشد، دانلود Termina DLC ممکن است شکست بخورد. بنابراین در چنین شرایطی، تعویض GPU یا نصب مجدد Brunch الزاماً کمکی نمی‌کند. بهتر است ابتدا: اتصال اینترنت ChromeOS بررسی شود. زمان و تاریخ سیستم بررسی شود. نسخه ChromeOS و Brunch بررسی شود. اتصال به سرویس‌های Google بررسی شود. سپس دوباره Linux Environment فعال شود. نکات مهم برای سیستم‌های قدیمی اگر می‌خواهید Brunch را روی یک PC قدیمی نصب کنید، این موارد را قبل از شروع بررسی کنید: BIOS UEFI/Legacy Mode Integrated Graphics Primary Display Secure Boot گرافیک GPU مجتمع GPU مجزا خروجی مورد استفاده کابل تصویر دیسک نام صحیح دیسک پارتیشن‌ها فضای کافی Backup نرم‌افزار نسخه ChromeOS Recovery نسخه Brunch سازگاری نسخه‌ها Bootloader نتیجه نهایی تجربه نصب روی HP Compaq Elite 8300 SFF نشان داد که حتی یک کامپیوتر قدیمی با: Core i5-3570 + Intel HD 2500 + Radeon HD 6450 می‌تواند ChromeOS را با Brunch Framework اجرا کند. در این تجربه، وجود دو کارت گرافیک مانع اجرای ChromeOS نشد. حتی مشکل اولیه تصویر نیز با تغییرات پیچیده در Brunch حل نشد؛ بلکه با تعویض کابل تصویر و تنظیم صحیح Integrated Graphics در BIOS برطرف شد. پس اگر ChromeOS با Brunch روی یک PC قدیمی اجرا نمی‌شود، همیشه نباید اولین مظنون را سخت‌افزار بدانیم. گاهی مشکل از یک کابل، یک خروجی تصویر یا یک گزینه ساده در BIOS است. در نهایت، ChromeOS روی این سیستم به‌درستی اجرا شد و تنها مشکل باقی‌مانده، فعال‌سازی Linux Terminal و دریافت Termina DLC بود که بیشتر به دسترسی سرویس‌های Google مربوط می‌شد. جمع‌بندی کوتاه HP Elite 8300 SFF + i5-3570 + Radeon HD 6450 + Brunch = قابل اجرا ✅ ChromeOS Desktop = اجرا شد ✅ دو GPU = مانع نصب نشد ✅ Linux Terminal = نیازمند بررسی جداگانه ⚠️ این تجربه نشان می‌دهد که با کمی تنظیمات می‌توان از یک سیستم اداری قدیمی نیز یک کامپیوتر ChromeOS کاربردی ساخت.

نصب ChromeOS Samus روی HP Compaq Elite 8300 SFF؛ تجربه واقعی و نتیجه نهایی

اگر یک HP Compaq Elite 8300 SFF دارید و می‌خواهید آن را به یک سیستم سبک و سریع تبدیل کنید، احتمالاً ChromeOS Samus یکی از گزینه‌هایی است که به ذهنتان رسیده است. من این نصب را روی سخت‌افزار واقعی امتحان کردم و نتیجه، چند نکته مهم داشت که قبل از شروع باید بدانید. مشخصات سیستم مدل: HP Compaq Elite 8300 SFF پردازنده: Intel Core i5-3450 گرافیک داخلی: Intel HD Graphics 2500 گرافیک مجزا: AMD Radeon HD 6450 بوت: UEFI هدف از نصب هدف این بود که ChromeOS Samus را به‌صورت بومی (Native) روی سیستم نصب کنم تا یک کامپیوتر قدیمی دوباره برای کارهای روزمره مثل وب‌گردی، یوتیوب و برنامه‌های تحت وب قابل استفاده باشد. مراحل نصب فعال کردن UEFI در BIOS غیرفعال کردن Secure Boot نصب ChromeOS Samus با Brunch Framework اولین بوت و راه‌اندازی اولیه نصب بدون دردسر انجام شد و سیستم با گرافیک داخلی اینتل به‌خوبی بوت شد. تست Radeon HD 6450 بعد از نصب، کارت گرافیک Radeon HD 6450 را امتحان کردم. نتیجه: ناموفق ❌ ChromeOS Samus این کارت را به‌درستی راه‌اندازی نکرد و عملاً قابل استفاده نبود. در مقابل، Intel HD 2500 بدون مشکل تصویر را نمایش داد و محیط سیستم کاملاً روان اجرا شد. نتیجه‌گیری اگر قصد دارید ChromeOS Samus را روی HP Elite 8300 نصب کنید، پیشنهاد من این است: قطعه وضعیت Intel HD 2500 ✅ کاملاً مناسب Radeon HD 6450 ❌ توصیه نمی‌شود بنابراین اگر این سیستم را برای ChromeOS آماده می‌کنید، بهتر است مانیتور را مستقیماً به خروجی مادربرد وصل کنید و از گرافیک داخلی استفاده کنید. حرف آخر گاهی سخت‌افزار قدیمی با سیستم‌عامل‌های جدید بهتر از چیزی که انتظار داریم کار می‌کند؛ اما همیشه همه قطعات سازگار نیستند. در تجربه من، HP Elite 8300 با Intel HD 2500 یک ترکیب عالی برای ChromeOS Samus بود، ولی Radeon HD 6450 نتوانست همراه خوبی باشد. اگر شما هم این سیستم را دارید، تجربه‌تان را در بخش نظرات بنویسید. شاید نتیجه شما متفاوت باشد.

چرا ترنس تائو را «بهترین ریاضی‌دان زنده جهان» می‌دانند؟

ترنس تائو هفت ساله بود که برای تحصیل در رشته ریاضیات و سایر دروس به دبیرستان رفت. او از لس‌آنجلس، شهری که بیش از ۲۵ سال است در آن تدریس و پژوهش می‌کند، به بی‌بی‌سی می‌گوید: «یادم می‌آید که بالشتک مخصوص روی صندلی‌ام می‌گذاشتند، چون قدم به میز نمی‌رسید.» ترنس تائو در سال ۱۹۷۵ در استرالیا به دنیا آمد. پدر و مادرش، بیلی و گریس، از هنگ‌کنگ به استرالیا مهاجرت کرده بودند. وقتی در زادگاهش حضور در کلاس‌های دبیرستان را شروع کرد، آنقدر کوچک بود که معلم‌ها دانش‌آموزی را موظف می‌کردند او را تا کلاس‌ها همراهی کند، مبادا که «گم شود». می‌گوید: «با بقیه فرق داشتم. چون پنج سال از آن‌ها کوچک‌تر بودم. اما بعد از یکی دو هفته، این موضوع دیگر چندان اهمیتی نداشت، چون همه‌مان با همان تکلیف‌ها دست‌وپنجه نرم می‌کردیم و تقریبا در یک سطح بودیم.» این کودک نابغه حالا به یکی از برجسته‌ترین ریاضی‌دانان تاریخ این رشته تبدیل شده است. دانشگاه کالیفرنیا در لس‌آنجلس، که او آن‌جا تدریس می‌کند، می‌گوید: «تائو که به «موتسارت ریاضیات» شهرت دارد و بسیاری او را بهترین ریاضی‌دان زنده جهان می‌دانند، حوزه‌های گسترده‌ای از ریاضیات را دگرگون کرده است.» در سال ۲۰۰۶، هنگامی که به او مدال فیلدز دادند، جایزه‌ای که به نوبل ریاضیات مشهور است، از توانایی «کم‌نظیرش» در حل مسائل و تاثیر «چشمگیر» فعالیت‌هایش در شاخه‌های مختلف ریاضیات تقدیر شد. «او ترکیبی از توان فنی محض، نبوغی کم‌نظیر در یافتن ایده‌های تازه و نگاهی است که به‌طرزی شگفت‌آور طبیعی است؛ نگاهی که دیگر ریاضی‌دانان را وامی‌دارد بپرسند: ”چرا هیچ‌ کس پیش از این به آن توجه نکرده بود؟”» اعداد برای تمرین تائو می‌گوید از وقتی به یاد می‌آورد، همیشه به اعداد و بازی‌های مرتبط با آن‌ها علاقه داشته است: «یکی از اولین خاطره‌هایم به سه یا چهار سالگی برمی‌گردد. مادربزرگم برای تمیز کردن پنجره‌ها به خانه ما می‌آمد و من از او می‌خواستم با کف صابون روی آن‌ها عدد بنویسد. به او می‌گفتم: اینجا ۳ را بگذار و آنجا ۷ را.» «یادم هست شب‌ها، وقتی خیلی بی‌قرار بودم، پدر و مادرم کتاب‌های تمرین ریاضی به من می‌دادند و من شروع می‌کردم به انجام جمع و سایر عملیات.» «از انجام تکلیف درس حساب لذت می‌بردم. فکر می‌کنم از معدود کودکانی بودم که واقعا این کار را دوست داشتند.» اما علاقه‌اش به اعداد حتی پیش از آن شکل گرفته بود. از پدر و مادرش شنیده است که در دو سالگی، به کودکانی که از او بزرگ‌تر بودند، شمردن، جمع کردن و هجی کردن یاد می‌داد. بعدها دریافت که ریاضیات بسیار فراتر از بازی یا صرفا انجام سریع محاسبات است؛ فهمید که «می‌توان از آن برای درک جهان استفاده کرد و کاربردهای عملی دارد.» استعداد استثنایی او باعث شد خانواده و معلمانش به این نتیجه برسند که بایست در هفت‌ سالگی، او را برای خواندن ریاضی و چند درس علمی دیگر به دبیرستان بفرستند. می‌گوید: «هم‌زمان برای درس‌هایی مثل انگلیسی و ورزش به دبستان می‌رفتم. مادرم دنبالم می‌آمد، مرا به دبیرستان می‌برد و بعد دوباره به دبستان برمی‌گرداند.» با لبخند می‌گوید: «مادرم سال‌ها زندگی‌اش را پشت فرمان گذراند.» دلیلش هم این بود که پدر و مادرش، علاوه بر او، دو فرزند دیگر هم داشتند که هر کدام به مدرسه‌ای جدا می‌رفتند. آقای تائو می‌گوید وقتی از مدرسه برمی‌گشت، در خانه همسایه‌شان را که هم‌ سن او بود می‌زد تا با هم بازی کنند: «می‌رفتیم دوچرخه‌سواری.» از آن سال‌ها خاطرات خوشی دارد، به‌ جز یک مورد: وقتی در دبیرستان مراسم رقص پایان سال برگزار شد. می‌گوید: «هنوز آن‌قدر کوچک بودم که نمی‌توانستم در آن شرکت کنم و این ناراحتم می‌کرد که همه به جشن می‌رفتند، جز من.» سفر به پرینستون تائو می‌گوید در کودکی به فیزیک هم علاقه زیادی داشت، چون دریافته بود این رشته جنبه‌هایی از جهان را به معادله‌هایی تبدیل می‌کند که می‌توان آن‌ها را حل کرد. «بعضی درس‌های دیگر، مثل زیست‌شناسی و شیمی، برایم دشوار بود. احساس می‌کردم نمی‌توانم مسائل را از اصول پایه حل کنم و اغلب باید حجم زیادی از اطلاعات را حفظ می‌کردم.» با صراحت می‌گوید: «انگلیسی بدترین درس من بود. در کودکی برایم سخت بود منظور واقعی یک سوال را بفهمم و همه چیز را خیلی تحت‌اللفظی تعبیر می‌کردم.» «مثلا در یکی از امتحان‌ها از من خواستند درباره خانه‌ام بنویسم، اما نمی‌فهمیدم دقیقا منظورشان چیست. برای همین فقط فهرستی از همه اتاق‌های خانه و همه وسایلی که در هر کدام بود نوشتم.» ریاضی همیشه درس محبوب او بود. او در ۹ سالگی، دیگر غرق در حل مسائل پیچیده شده بود. در همان سن‌وسال، پدرش او را به موسسه مطالعات پیشرفته در پرینستون آمریکا برد. تائو آن‌جا با دو ریاضی‌دان برجسته، انریکو بومبیری و چارلز ففرمن، دیدار کرد که هر دو برنده مدال فیلدز بودند. پدرش از آن‌ها پرسید: «آیا این کودک واقعا استعداد دارد؟» آن‌ها هم برای ارزیابی خلاقیت تائو، چند مسئله پیش روی او گذاشتند. رادنی دی. پریستلی، رئیس دانشکده تحصیلات تکمیلی دانشگاه پرینستون، در ماه فوریه و هنگام اعطای مدال جیمز مدیسون این دانشگاه به تائو، این ماجرا را بازگو کرد و گفت که عملکرد او چنان بود که چارلز ففرمن بعدها گفته بود: «اگر پاسخ منفی داده بودم، بی‌تردید آن را در فهرست کوتاه احمقانه‌ترین اشتباهات زندگی‌ام قرار می‌دادم.» آقای پریستلی گفت: «درخشش فنی، خلاقیت استثنایی، کنجکاوی گسترده و روحیه همکاری او به کشف‌های متعدد و تحول‌آفرین انجامیده است.» او همچنین گفته است: «کار تائو به شکلی ملموس به بهبود زندگی مردم کمک کرده است» و در این زمینه به بسط الگوریتم‌هایی اشاره کرد که به پیشرفت فناوری تصویربرداری ام‌آرآی کمک کرده‌اند. ورود به دانشگاه تائو در ۱۴ سالگی تحصیل تمام‌‌وقت را در دانشگاه فلیندرز در آدلاید آغاز کرد. این دانشگاه می‌گوید: «او همچنان یکی از کم‌ سن‌‌وسال‌ترین دانشجویانی است که در فلیندرز ثبت‌نام کرده‌ و در ۱۶ سالگی مدرک کارشناسی ارشد گرفته‌ است.» او یک سال بعد بار دیگر راهی آمریکا شد تا دوره دکتری را در دانشگاه پرینستون شروع کند. تائو می‌گوید: «این اولین بار بود که دور از خانه و خانواده زندگی می‌کردم.» ترنس تائو که در ۱۳ سالگی برنده المپیادهای ریاضی شده بود، پیش از آن چند بار برای شرکت در رقابت‌ها سفر رفته بود، اما هیچ‌وقت طولانی‌تر از یک هفته از خانواده‌ دور نمانده بود. پدرش برای کمک به مستقر شدن او در پرینستون همراهش رفت و یک هفته در آنجا ماند. او می‌گوید: «اصول اولیه را به من یاد داد؛ شستن لباس‌ها، کاری که همیشه مادرم انجام می‌داد، باز کردن حساب بانکی و خرید کردن.» دانشجویان دیگری هم مثل او بودند که برای اولین بار دوری از خانواده را تجربه می‌کردند. تائو از آن دوره، خاطرات خوش زیادی با دوستان تازه‌اش دارد؛ از سینما رفتن گرفته تا بازی‌های ویدئویی. در ۲۱ سالگی دکتری‌اش را به پایان رساند و راهی دانشگاه کالیفرنیا در لس‌آنجلس شد. تائو در آنجا به‌عنوان استادیار مشغول به کار شد. سه سال بعد، او را به رتبه استاد تمام ارتقا دادند. او می‌گوید: «تقریبا هم‌ سن‌وسال دانشجوهایم بودم. فکر می‌کنم وقتی دیدند دارم به طرف تخته می‌روم، کمی غافلگیر شدند.» در واقع، تائو جوان‌ترین استاد در تاریخ دانشگاه کالیفرنیا شد. «یک لئوناردو داوینچی» دنیل پرالتا، پژوهشگر موسسه علوم ریاضی در شورای عالی پژوهش‌های علمی اسپانیا، تائو را از نزدیک می‌شناسد. او را «فردی بسیار فروتن» توصیف می‌کند و می‌گوید: «او اصلا شبیه یک ستاره نیست.» آقای پرالتا می‌گوید: «ممکن است تصور شود کسی که این‌ همه دانش و ایده در سر دارد، این همه دستاورد داشته، این‌قدر مهم است و همه جایزه‌ها را برده، دیگر به حرف کسی گوش نمی‌دهد. اما کاملا برعکس، خیلی خوب گوش می‌دهد.» تائو در حوزه‌هایی از ریاضیات کار کرده که در ظاهر بسیار متفاوت‌اند، از نظریه اعداد گرفته تا معادلات دیفرانسیل، تحلیل هارمونیک و در سال‌های اخیر، مسائل مرتبط با رایانش. آقای پرالتا می‌گوید: «به نظرم او از نظر نبوغ زودهنگام، موتسارت دنیای ریاضیات است، اما در عین حال لئوناردو داوینچی هم هست. تائو در شاخه‌های متعدد ریاضیات که در آن‌ها کار کرده، با دید گسترده، دانش عمیق و نبوغش، تاثیری چشمگیر به‌جا گذاشته است.» آقای پرالتا می‌گوید: «داشتن چهره‌ای مانند او در ریاضیات مدرن، استثناست. این‌ که کسی بتواند در این همه حوزه کار کند و اثر بگذارد، عملا ناممکن و بسیار نادر است.» تصویر نابغه ریاضی‌دانی که به‌تنهایی کار می‌کند و خودش از پس حل مسائل بسیار پیچیده برمی‌آید، انگار بیشتر به گذشته تعلق دارد. تائو نه فقط در شیوه کارش این موضوع را نشان می‌دهد، بلکه خودش هم دوست دارد بر آن تاکید کند. می‌گوید: «شاید حدود ۱۰۰ سال پیش، ریاضیات فعالیتی فردی‌تر بود، اما این حوزه خیلی رشد کرده است. حالا، برای نمونه، تعداد زیادی مقاله در ریاضیات منتشر می‌شود.» «این حوزه آن‌قدر گسترده شده است که هیچ‌ کس، هر قدر هم باهوش باشد، نمی‌تواند بر همه روش‌ها و تمام کارهایی که انجام شده احاطه داشته باشد.» می‌گوید: «وقتی جوان‌تر بودم، در مسابقات ریاضی شرکت می‌کردم. چند مسئله می‌دادند، سه ساعت در اتاقی نگه می‌داشتند، اجازه نداشتیم کتاب یا جزوه‌ای را باز کنیم، هیچ‌ چیز، و باید همه را به‌تنهایی حل می‌کردیم. فکر می‌کردم ریاضیات یعنی همین.» «اما حالا، وقتی می‌خواهیم یک مسئله ریاضی را حل کنیم، در بسیاری از موارد، ۹۰ درصد کار این است که بفهمیم دیگران چه کرده‌اند و از همان روش‌ها استفاده کنیم.» او می‌گوید در بسیاری از مواقع، لازم است با کسی کار کنیم که آن روش‌ها را بشناسد. به گفته او، همکاری در هر شاخه‌ای از ریاضیات نقشی اساسی دارد، و این همکاری فقط به «آدم‌های زمان حال» محدود نمی‌شود. می‌گوید: «وقتی همکاری می‌کنیم؛ وقتی از نتیجه‌ای در متون ریاضی استفاده می‌کنیم، انگار که در کنار نیوتون یا کارل فریدریش گاوس، یا کسی ایستاده‌ایم که دهه‌ها پیش زندگی می‌کرده است.» «بهترین ایده‌ها از سراسر جهان می‌آیند» و این همکاری فقط میان ریاضی‌دانان نیست، بلکه بین پژوهشگران رشته‌های دیگر هم شکل می‌گیرد. می‌گوید: «مسائلی که امروز روی آن‌ها کار می‌کنیم، آنقدر پیچیده و میان‌رشته‌ای هستند که عملا هیچ‌ کس به‌تنهایی از عهده همه آن‌ها برنمی‌آید.» تائو در سخنرانی‌های خود می‌کوشد نشان دهد ریاضیات چگونه در بسیاری از ابزارها و خدماتی که هر روز از آن‌ها استفاده می‌کنیم، پنهان شده است. او برای نمونه توضیح می‌دهد که وقتی نسل اول تلفن‌های همراه به بازار آمد، مشکلی به نام تداخل وجود داشت. تداخل زمانی پیش می‌آمد که شمار زیادی از مردم در یک مکان، هم‌زمان با هم تماس می‌گرفتند. اما این مشکل به کمک روش‌های ریاضی حل شد.

۱۴۰۴ شهریور ۳, دوشنبه

روش کلی نصب دو بوت لینوکس با کروم او اس

sudo apt update sudo apt install cgpt sudo apt install pv lsblk -e7 mkdir -p ~/tmpmount sudo mount /dev/sda5 ~/tmpmount sudo bash chromeos-install.sh -src chromeos.bin -dst ~/tmpmount/chromeos.img -s K(حجم کروم او اس هستش) حاصل رو سیو می کنیم بعد این مرحلو رو ادامه می دیم sudo cp /etc/grub.d/40_custom /etc/grub.d/99_brunch sudo apt install nano sudo nano /etc/grub.d/40_custom sudo update-grub sudo unmount -p ~/tmpmount sudo grub2-mkconfig -o /boot/grub2/grub.cfg البته اوپن سوزه جایگزین داره update-bootloader

۱۴۰۴ اردیبهشت ۲, سه‌شنبه

۱۴۰۳ اسفند ۵, یکشنبه

نصب مک او اس ایکس در هر کینوکسی بوسیله QEMU/KVM https://github.com/kholia/OSX-KVM

Requirements A modern Linux distribution. E.g. Ubuntu 24.04 LTS 64-bit or later. QEMU >= 8.2.2 A CPU with Intel VT-x / AMD SVM support is required (grep -e vmx -e svm /proc/cpuinfo) A CPU with SSE4.1 support is required for >= macOS Sierra A CPU with AVX2 support is required for >= macOS Ventura Note: Older AMD CPU(s) are known to be problematic but modern AMD Ryzen processors work just fine (even for macOS Sonoma). Installation Preparation Install QEMU and other packages. sudo apt-get install qemu-system uml-utilities virt-manager git \ wget libguestfs-tools p7zip-full make dmg2img tesseract-ocr \ tesseract-ocr-eng genisoimage vim net-tools screen -y This step may need to be adapted for your Linux distribution. Clone this repository on your QEMU system. Files from this repository are used in the following steps. cd ~ git clone --depth 1 --recursive https://github.com/kholia/OSX-KVM.git cd OSX-KVM Repository updates can be pulled via the following command: git pull --rebase This repository uses rebase based workflows heavily. KVM may need the following tweak on the host machine to work. sudo modprobe kvm; echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs To make this change permanent, you may use the following command. sudo cp kvm.conf /etc/modprobe.d/kvm.conf # for intel boxes only sudo cp kvm_amd.conf /etc/modprobe.d/kvm.conf # for amd boxes only Add user to the kvm and libvirt groups (might be needed). sudo usermod -aG kvm $(whoami) sudo usermod -aG libvirt $(whoami) sudo usermod -aG input $(whoami) Note: Re-login after executing this command. Fetch macOS installer. ./fetch-macOS-v2.py You can choose your desired macOS version here. After executing this step, you should have the BaseSystem.dmg file in the current folder. ATTENTION: Let >= Big Sur setup sit at the Country Selection screen, and other similar places for a while if things are being slow. The initial macOS setup wizard will eventually succeed. Sample run: $ ./fetch-macOS-v2.py 1. High Sierra (10.13) 2. Mojave (10.14) 3. Catalina (10.15) 4. Big Sur (11.7) 5. Monterey (12.6) 6. Ventura (13) - RECOMMENDED 7. Sonoma (14) 8. Sequoia (15) Choose a product to download (1-8): 6 Note: Modern NVIDIA GPUs are supported on HighSierra but not on later versions of macOS. Convert the downloaded BaseSystem.dmg file into the BaseSystem.img file. dmg2img -i BaseSystem.dmg BaseSystem.img Create a virtual HDD image where macOS will be installed. If you change the name of the disk image from mac_hdd_ng.img to something else, the boot scripts will need to be updated to point to the new image name. qemu-img create -f qcow2 mac_hdd_ng.img 256G NOTE: Create this HDD image file on a fast SSD/NVMe disk for best results. Now you are ready to install macOS 🚀 Installation CLI method (primary). Just run the OpenCore-Boot.sh script to start the installation process. ./OpenCore-Boot.sh Note: This same script works for all recent macOS versions. Use the Disk Utility tool within the macOS installer to partition, and format the virtual disk attached to the macOS VM. Use APFS (the default) for modern macOS versions. Go ahead, and install macOS 🙌 (OPTIONAL) Use this macOS VM disk with libvirt (virt-manager / virsh stuff). Edit macOS-libvirt-Catalina.xml file and change the various file paths (search for CHANGEME strings in that file). The following command should do the trick usually. sed "s/CHANGEME/$USER/g" macOS-libvirt-Catalina.xml > macOS.xml virt-xml-validate macOS.xml Create a VM by running the following command. virsh --connect qemu:///system define macOS.xml If needed, grant necessary permissions to libvirt-qemu user, sudo setfacl -m u:libvirt-qemu:rx /home/$USER sudo setfacl -R -m u:libvirt-qemu:rx /home/$USER/OSX-KVM Launch virt-manager and start the macOS virtual machine. Headless macOS Use the provided boot-macOS-headless.sh script. ./boot-macOS-headless.sh Setting Expectations Right Nice job on setting up a Virtual Hackintosh system! Such a system can be used for a variety of purposes (e.g. software builds, testing, reversing work), and it may be all you need, along with some tweaks documented in this repository. However, such a system lacks graphical acceleration, a reliable sound sub-system, USB 3 functionality and other similar things. To enable these things, take a look at our notes. We would like to resume our testing and documentation work around this area. Please reach out to us if you are able to fund this area of work. It is possible to have 'beyond-native-apple-hw' performance but it does require work, patience, and a bit of luck (perhaps?). Post-Installation See networking notes on how to setup networking in your VM, outbound and also inbound for remote access to your VM via SSH, VNC, etc. To passthrough GPUs and other devices, see these notes. Need a different resolution? Check out the notes included in this repository. Trouble with iMessage? Check out the notes included in this repository. Highly recommended macOS tweaks - https://github.com/sickcodes/osx-optimizer Is This Legal? The "secret" Apple OSK string is widely available on the Internet. It is also included in a public court document available here. I am not a lawyer but it seems that Apple's attempt(s) to get the OSK string treated as a trade secret did not work out. Due to these reasons, the OSK string is freely included in this repository. Please review the 'Legality of Hackintoshing' documentation bits from Dortania's OpenCore Install Guide. Gabriel Somlo also has some thoughts on the legal aspects involved in running macOS under QEMU/KVM. You may also find this 'Announcing Amazon EC2 Mac instances for macOS' article interesting. Note: It is your responsibility to understand, and accept (or not accept) the Apple EULA. Note: This is not legal advice, so please make the proper assessments yourself and discuss with your lawyers if you have any concerns (Text credit: Dortania) Motivation My aim is to enable macOS based educational tasks, builds + testing, kernel debugging, reversing, and macOS security research in an easy, reproducible manner without getting 'invested' in Apple's closed ecosystem (too heavily). These Virtual Hackintosh systems are not intended to replace the genuine physical macOS systems. Personally speaking, this repository has been a way for me to 'exit' the Apple ecosystem. It has helped me to test and compare the interoperability of Canon CanoScan LiDE 120 scanner, and Brother HL-2250DN laser printer. And these devices now work decently enough on modern versions of Ubuntu (Yay for free software). Also, a long time back, I had to completely wipe my (then) brand new MacBook Pro (Retina, 15-inch, Late 2013) and install Xubuntu on it - as the OS X kernel kept crashing on it! Backstory: I was a (poor) student in Canada in a previous life and Apple made my work on cracking Apple Keychains a lot harder than it needed to be. This is how I got interested in Hackintosh systems.

راهنمای گام به گام اجرای macOS در Proxmox VE

مفهوم مجازی‌سازی اکنون در همه جا وجود دارد و ابزارهای محبوبی مانند Docker، Virtualbox، Hyper-V و Vmware نقش بسزایی در محبوبیت آن دارند. مجاز...