एक (U) EFI मैकबुक पर मैक ओएस एक्स के साथ डुअल बूट निक्सोस को कैसे कॉन्फ़िगर करें?


18

मुझे (U) EFI मैकबुक पर निक्सोस और मैक ओएस एक्स के दोहरे बूट को कॉन्फ़िगर करने का कोई विवरण नहीं मिला । मैं प्रयोग करने के लिए तैयार हूं, लेकिन मैं कम से कम यह जानना चाहूंगा कि जो मैं कोशिश करूंगा वह काम करने वाला है, और इसके बाद ओएस एक्स को फिर से स्थापित नहीं करने का मौका होगा।

क्या कोई मुझे बता सकता है कि कृपया मुख्य चरणों को देखें या प्रक्रिया का वर्णन करने वाले पृष्ठ पर एक लिंक दें?

मुझे विशेष रूप से भ्रमित करता है कि निक्स मैनुअल के यूईएफआई इंस्टॉलेशन अनुभाग कहता है कि मुझे एक ईएफआई सिस्टम विभाजन बनाने की आवश्यकता है जिसे / बूट पर माउंट किया जाएगा; हालाँकि, मेरी डिस्क में पहले से ही पहले विभाजन के रूप में एक EFI सिस्टम विभाजन है, और मुझे डर है कि अगर मैं मैक ओएस और निक्सोस दोनों को संशोधित करने की अनुमति देता हूं तो संघर्ष हो सकता है। विकिपीडिया के अनुसार ,

Apple-Intel आर्किटेक्चर Macintosh कंप्यूटर पर, EFI विभाजन प्रारंभ में रिक्त है और बूटिंग के लिए उपयोग नहीं किया जाता है। हालांकि, फर्मवेयर अपडेट के लिए ईएफआई विभाजन एक मचान क्षेत्र के रूप में उपयोग किया जाता है; विशेष रूप से, यह एक निर्देशिका फ्लैश उपयोगिता (ईएफआई बाइनरी) और डेटा फ़ाइल (एफडी - "फ़र्मवेयर डिवाइस") को निर्देशिका ईएफआई / एपीपीएल / एफआईआरएमवेयर में रखता है जो तब "फ्लैश फ़र्मवेयर" मोड में सिस्टम को रिबूट करते समय चलाया जाता है। यदि हटा दिया गया है, तो सिस्टम अभी भी बूट होगा, और बूट प्रबंधक अभी भी उपयोगकर्ताओं को यह चुनने की अनुमति देगा कि बूट शिविर विभाजन शुरू किया जाए या मैक ओएस एक्स को डिफ़ॉल्ट किया जाए, लेकिन फर्मवेयर अपडेट विफल हो जाएंगे।

मुझे लगता है कि इसका मतलब है कि अगर मैं NixOS के लिए समान EFI सिस्टम विभाजन का उपयोग करता हूं, तो यदि मैं Apple फर्मवेयर अपडेट करता हूं तो यह संशोधित हो सकता है। यह भी स्पष्ट नहीं है कि अगर मैं दो EFI सिस्टम विभाजन बनाऊंगा तो क्या होगा। उदाहरण के लिए, boot.loader.efi.efiSysMountPointडिफ़ॉल्ट मान के साथ एक NixOS कॉन्फ़िगरेशन विकल्प (जहां EFI सिस्टम विभाजन माउंट किया गया है) है "/boot", लेकिन यह कैसे पता चलेगा कि किसको माउंट करना है?

PS एक बूट मैनेजर के रूप में मैं rEFInd का उपयोग करने की योजना बना रहा था , लेकिन किसी भी वैकल्पिक सुझाव का स्वागत है।

जवाबों:


16

यह मेरे प्रारंभिक उत्तर का एक अद्यतन संस्करण है, इसे निक्सोस 15.09 के लिए काम करना चाहिए। इसमें प्रारंभिक संस्करण की तुलना में मामूली संशोधन शामिल हैं जो मैं निक्स-देव मेलिंग सूची की कुछ मदद से निक्सोस 14.04 स्थापित करने के लिए उपयोग करता था ।

प्रारंभिक व्यवस्था

  1. मैकबुक 10.1 (2008) के साथ मैक ओएस 10.9 और हार्ड ड्राइव का विभाजन निम्नानुसार है:

    a) 200MB EFI सिस्टम विभाजन "EFI" लेबल।

    बी) मैक ओएस (10.9) द्वारा उपयोग किए जाने वाले दो विभाजन।

    ग) "निकोस" और "होम" लेबल वाले दो खाली ext4 विभाजन, और "स्वैप" लेबल वाले एक लिनक्स स्वैप विभाजन।

    मैंने निम्नलिखित टूल का उपयोग किया:

    • GPT fdisk (Mac OS के अंतर्गत),

    • mkfs.ext4 (बूटेबल USB ड्राइव पर NixOS के नीचे से),

    • mkswap

    यहाँ मेरी विभाजन तालिका के रूप में मुद्रित है gdisk:

    Number  Start (sector)    End (sector)  Size       Code  Name
       1              40          409639   200.0 MiB   EF00  EFI System Partition
       2          409640       104603575   49.7 GiB    AF00  Untitled
       3       104865720       261418767   74.7 GiB    AF00  Untitled
       4       261680912       287071535   12.1 GiB    8302  home
       5       287071536       307888927   9.9 GiB     8300  nixos
       7       307888928       312581774   2.2 GiB     8200  swap
    
  2. केबल ईथरनेट इंटरनेट कनेक्शन।

  3. एक USB ड्राइव को MBR के साथ FAT के रूप में स्वरूपित किया NIXOS_ISOगया है और NixOS 15.09 64-बिट आईएसओ छवि (लाइव सीडी या मिनिमल) की सामग्री की प्रतिलिपि (खींचा और गिरा) के साथ लेबल किया गया है।

    • USB ड्राइव का लेबल होना चाहिए NIXOS_ISO(मैंने FLASHएक बार कोशिश की , यह काम नहीं किया)।

    • ऐसा लगता है कि NixOS 15.09 आईएसओ चित्र मैक ओएस के तहत माउंट नहीं किए जा सकते हैं। यदि छवि को माउंट नहीं किया जा सकता है, तो यह अपनी सामग्री निकालने के लिए पर्याप्त है। मैं केकेए फ़ाइल संग्रहकर्ता के साथ आईएसओ छवि की सामग्री निकाल सकता हूं ।

स्थापना

  1. Alt/Optionरिबूट करते समय और USB EFI बूट का चयन करके कुंजी को दबाकर रखें । "रूट" (पासवर्ड के बिना) के रूप में लॉग इन करें। सुनिश्चित करें कि इंटरनेट कनेक्शन काम कर रहा है। स्थापना के लिए इंटरनेट कनेक्शन आवश्यक है।

  2. निष्पादित

    swapon /dev/disk/by-label/swap
    mount /dev/disk/by-label/nixos /mnt
    mkdir /mnt/boot
    mkdir /mnt/home
    mount /dev/disk/by-label/EFI  /mnt/boot
    mount /dev/disk/by-label/home /mnt/home
    nixos-generate-config --root /mnt
    
  3. जोड़ना

    nixpkgs.config.allowUnfree = true;
    

    जनरेट /mnt/etc/nixos/configuration.nix फ़ाइल में।

  4. निष्पादित

    nixos-install
    
  5. रीबूट:

    reboot
    

बूटिंग

( यह 14.04 के साथ मेरा अनुभव था। )

रिबूट करने के बाद, कंप्यूटर निक्स में बूट हो गया। मैंने फिर से रिबूट किया, इस बार Alt/Optionकुंजी को पकड़े हुए । बूट मेनू में दो पहचान योग्य "ईएफआई बूट" आइटम दिखाई दिए। यह पता चला कि उनमें से एक मैक ओएस है, और दूसरा निक्स है। (अजीब - मैक ओएस के साथ एक से पहले मैक ओएस विभाजन के नाम पर रखा गया था।) ठीक है।

मैंने EFI सिस्टम विभाजन की सामग्री को जिज्ञासा से बाहर रखा और निरीक्षण किया:

§ tree /Volumes/EFI/
.
├── EFI
│   ├── APPLE
│   │   ├── EXTENSIONS
│   │   │   └── Firmware.scap
│   │   └── FIRMWARE
│   │       └── MB51_007D_03B_LOCKED.scap
│   ├── Boot
│   │   └── BOOTX64.EFI
│   ├── gummiboot
│   │   └── gummibootx64.efi
│   └── nixos
│       ├── 5683z247xmsrh4lyr2hgpxwlb9gg5wyl-linux-3.12.20-bzImage.efi
│       └── mmjxbf6vwp5mwb384yfd6c8vkhd19gx8-initrd-initrd.efi
└── loader
    ├── entries
    │   └── nixos-generation-1.conf
    └── loader.conf

वहाँ सब कुछ लेकिन / EFI / APPLE और इसकी सामग्री निक्सोस इंस्टॉलेशन द्वारा बनाई गई है।

मैक ओएस को फिर से डिफ़ॉल्ट बनाना

( यह 14.04 के साथ मेरा अनुभव था। )

मैक OS को फिर से डिफ़ॉल्ट बनाने के लिए Optionऔर मैक ओएस विभाजन के नाम पर इन-बूट बूट मेनू में संबंधित आइटम बनाने के लिए , यह मैक ओएस के तहत सिस्टम प्राथमिकता ...> स्टार्टअप डिस्क पर जाने और मैक ओएस के साथ विभाजन का चयन करने के लिए पर्याप्त था । अजीब बात है, यह दो बार व्यवस्थापक पासवर्ड दर्ज करने की आवश्यकता है, और विभाजन अभी भी चयनित के रूप में नहीं दिखाया गया था, लेकिन अन्यथा यह काम किया।

अन्य निर्देश

  • हमेशा गमिबूट मेनू देखने के लिए , यह configuration.nixboot.loader.gummiboot.timeout में सेट करने के लिए पर्याप्त है ।

  • मेरे nVidia ग्राफिक्स कार्ड को ठीक से कॉन्फ़िगर करने के लिए , मैंने ओपन-सोर्स nouveau ड्राइवर का उपयोग करके समाप्त किया :

    services.xserver.videoDrivers = [ "nouveau" ];
    

    मुझे इसकी कोई शिकायत नहीं है। यदि मैं "nvidia"इसके बजाय मालिकाना का उपयोग करता हूं , तो टेक्स्ट कंसोल काम नहीं करता है।

    NixOS के लिए अपडेट 16.09 । मैंने देखा कि निक्सओएस 16.09 के साथ मेरी मशीन पर, सब कुछ अच्छी तरह से काम करने के लिए कॉन्फ़िगरेशन। एनिक्स में विकल्प services.xserver.videoDriversकी आवश्यकता नहीं है , और वास्तव में यह स्पष्ट रूप से ग्राफिकल प्रदर्शन को कुछ परीक्षणों के अनुसार नीचा दिखाता है, जो मैंने ग्लोमेरो ओपन 2 जी बेंचमार्क के साथ किया था । मैंने यह भी देखा कि चित्रमय विधा का चयन करना लेकिन टेक्स्ट कंसोल को छोड़ देता है, इसके विपरीत जो मैंने निक्स ओएस 14.04 के साथ देखा था। यह सब मुझे थोड़ा अजीब लगता है, लेकिन यह वही है जो मैंने देखा है, इसलिए मैंने अपने कॉन्फ़िगरेशन से इस विकल्प को हटा दिया । निक्स"nvidia"

  • लोड करने के लिए applesmc के लिए निम्न जोड़ने के लिए यह मेरे लिए सुझाव दिया गया था (उदाहरण के लिए, अचानक गति संवेदक के लिए) मॉड्यूल configuration.nix :

    boot.kernelModules = [ "applesmc" ];
    

रिमार्क्स और अवलोकन

मेरे मैकबुक पर निक्सोस के साथ एकमात्र "समस्या" जो मैंने अब तक देखी है, वह यह है कि निक्सोस मेरे लैपटॉप को चलाने पर आमतौर पर मैक ओएस 10.9 की तुलना में 5-10 डिग्री सेल्सियस अधिक गर्म हो जाता है। यह एक मैक पर लिनक्स के लिए एक सामान्य समस्या हो सकती है ।

वैकल्पिक स्थापना निर्देशों के लिए लिंक


धन्यवाद @Alexey अच्छे राइटअप के लिए! मुझे केवल एक ही संदेह है। यदि आप पहले से मौजूद EFI पार्टीशन (Apple द्वारा बनाया गया) का उपयोग कर या यदि आपने एक अतिरिक्त बनाया है तो यह अस्पष्ट है। मैंने बाद की कोशिश की, लेकिन स्थापना "... फाइल सिस्टम एक वैध ईएफआई नहीं है" के साथ असफल हो रही है, इसलिए मुझे संदेह है कि मुझे मैक के ईएफआई विभाजन का उपयोग करने की आवश्यकता है। क्या आप पुष्टि करते हैं? धन्यवाद!
अल्फ्रेडो डि नापोली

अल्फ्रेडो, आप सही हैं, मैंने यह नहीं बताया कि मुझे शुरुआती सेटअप कैसे मिला। मेरे पास पहले से ही Apple EFI सिस्टम विभाजन था, जो, मेरा मानना ​​है कि मेरे जैसे सभी कंप्यूटर पहले से इंस्टॉल हैं। मुझे आश्चर्य होगा, हालांकि, अगर यह मायने रखता है कि विभाजन कैसे बना है। क्या आप वाकई सही विभाजन कोड सेट कर चुके हैं EF00? मैंने अपने नए विभाजन को प्रबंधित करने के लिए gdisk का उपयोग किया । मैंने अपनी विभाजन तालिका दिखाने के लिए एक संपादन किया है।
एलेक्सी

हाय @ एसेक्स, उत्तर के लिए धन्यवाद। इस बीच मैं पूर्व में स्थापित EFI विभाजन का पुन: उपयोग करने के लिए पर्याप्त रूप से बोल्ड था, जाहिर है, यह है कि हमें कैसे आगे बढ़ना चाहिए। संभवत: दो विभाजन बनाना संभव है (और मैंने वास्तव में ईएफ़ -00 का उपयोग किया है जो मैंने बनाया था), लेकिन अंततः पुन: उपयोग कर रहे Apple ने पहले से काम किया। मैं निक्सोस से टाइप कर रहा हूं जैसा कि हम बोलते हैं :)
अल्फ्रेडो डि नापोली

मेरा मानना ​​है कि मैंने कहीं पढ़ा है कि यह अनुशंसित नहीं है या किसी भी तरह से एक से अधिक EFI सिस्टम विभाजन के लिए समर्थित नहीं है।
एलेक्सी

मैकबुक पर NixOS डिबगिंग के साथ शुभकामनाएँ :)। यदि आपके पास एसएसडी नहीं है और अचानक मोशन सेंसर को कॉन्फ़िगर करने का तरीका जानें, तो कृपया मुझे बताएं। (मैंने अपने उत्तर में इस बारे में एक टिप्पणी जोड़ दी है।) मुझे सीपीयू आवृत्ति को कॉन्फ़िगर करने में भी कठिनाई हो रही है: powersaveराज्यपाल के साथ भी यह बिना किसी स्पष्ट कारण के काफी गर्म हो जाता है।
एलेक्सी

2

कुछ अतिरिक्त सुझाव:

यदि आप अपने बैकलाइट को काम करना चाहते हैं और ढक्कन बंद होने के दौरान अपने लैपटॉप को अनायास फिर से चालू करने से रोकते हैं, तो आप निम्न में से कुछ का उपयोग कर सकते हैं configuration.nix:

  # Enable the backlight control on rMBP 
  # Disable USB-based wakeup
  # see: https://wiki.archlinux.org/index.php/MacBookPro11,x
  powerManagement.powerUpCommands = ''
    if [[ "$(cat /sys/class/dmi/id/product_name)" == "MacBookPro11,3" ]]; then
      ${pkgs.pciutils}/bin/setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0

      if cat /proc/acpi/wakeup | grep XHC1 | grep -q enabled; then
        echo XHC1 > /proc/acpi/wakeup
      fi
    fi
  '';

अपने मैकबुक संस्करण के आधार पर, आपको उपरोक्त आदेशों को मोड़ने की आवश्यकता हो सकती है, इसलिए कृपया आँख बंद करके कॉपी-पेस्ट न करें।


1

रिपॉजिटरी की मास्टर शाखा में कुछ अद्यतन किए गए निर्देश हैं: इंस्टॉल करना-uefi.xml


जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो यहां उत्तर के आवश्यक भागों को शामिल करना बेहतर होगा , और संदर्भ के लिए लिंक प्रदान करना होगा।
डांटे.इगलोर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.