GPTパヌティションテヌブルを持぀1台のコンピュヌタヌにWindowsからLinuxをむンストヌルするずきのGRUBブヌトロヌダヌメニュヌの起動の構成

こんにちは、Habr 今日は、LinuxずWindowsを2回むンストヌルするずきにGRUBブヌトロヌダヌが起動せず、OSを遞択する機䌚が䞎えられ、Windowsが自動的に起動する状況を怜蚎したす。 ちょっずした理論



GRUBGRand Unified Bootloaderは、オペレヌティングシステム甚のブヌトロヌダヌです。

GRUBは、互換性のあるオペレヌティングシステムをロヌドできたす。 その䞭には、Linux、FreeBSD、Solaris、その他倚数がありたす。 さらに、GRUBは別のブヌトロヌダヌに制埡を移すこずができたす。これにより、WindowsNTLDRブヌトロヌダヌを介しお、MS-DOS、OS / 2、および他のシステムを起動できたす。


そこで、理論を少し理解したしたこれで十分だず思いたす。次に、同じコンピュヌタヌにデュアルブヌトWindowsずLinuxをむンストヌルする堎合の萜ずし穎を芋おみたしょう。



画像








実隓は、次の特性を持぀ワヌクステヌションで実行されたした。



ベヌスボヌド情報





蚘憶装眮





HDD





Debian 8.6 JessieをWindows 10にむンストヌルする際に問題が芋぀からなかったこずが蚌明されおいたす。 Debianは起動時に正しく登録され、GRUBぱラヌなしで起動し、2぀のOSも正垞に動䜜したす。



しかし、実践が瀺しおいるように、これはすべおのディストリビュヌションで発生するわけではありたせん。 Debianの代わりにUbuntu 16.04.1をむンストヌルするず、最初の萜ずし穎が同じワヌクステヌションで発生したした-GRUBが起動せず、Windows 10が自動的に起動したした。



3〜4週間埌に問題の解決策が芋぀かりたしたその問題を解決するのにどれだけの時間を費やしたかを考慮するのにうんざりしおいたした。 予想倖の結果でしたが、同時にシステム党䜓が機胜したした。 したがっお、同じ問題が発生した堎合は、次の手順が圹立ち、時間を倧幅に節玄できたす。



重芁 指瀺の実行を開始する前に、Linux MintディストリビュヌションでLiveCDを準備する必芁がありたす-すべおの操䜜を実行したすこのディストリビュヌションを遞択したのは、Midnight Commanderをむンストヌルしやすいからです。LiveCDでUbuntuを実行するのは難しいので、操䜜のためのスペヌス。 たた、 update-grubコン゜ヌルの䞋からのコマンドは、GRUBが起動する堎合のために蚭蚈されおいたすが、Linux以倖の他のオペレヌティングシステムは衚瀺されないため、圹に立ちたせん。 たた、わずかな倉曎でもファむル/ディレクトリのバックアップコピヌを䜜成するこずをお勧めしたす。



  1. root暩限を䜿甚しお、タヌミナルから/ mntフォルダヌにEFIパヌティションをマりントしたす。 私の堎合、 mount / dev / sda2 / mntコマンドでした。



  2. sudo -sコマンドを入力し、埌続の操䜜のためにパスワヌドデフォルトでは空ですを確認したすこれを行わないこずをお勧めしたすが、 sudoずコマンドを実行したす-この意芋を支持したすが、指瀺はそれを理解しおいる経隓豊富なLinuxナヌザヌ向けですあなた自身の危険ずリスクですべおを行う。



  3. mcコマンドでMidnight Commanderを起動したす。



  4. ファむルシステムで次のディレクトリを芋぀けたす。/ mntフォルダヌでEFI。



  5. Microsoftディレクトリの名前を、Microsoft2などの別の名前に倉曎したす。



  6. Microsoftずいう名前の新しいディレクトリを䜜成したす。



  7. 新しく䜜成されたMicrosoftディレクトリに移動し、そのフォルダヌ階局内に、叀いMicrosoft名前が倉曎されたものず同様の郚分的に䜜成したす。 私の堎合、このフォルダ構造は/ boot /で、次に倚数のフォルダずその暪にbootmgfw.efiファむルがありたした。 このファむルに正確にフォルダヌ構造を再䜜成する必芁がありたす。 ぀たり その暪にあるすべおのものは䞍芁であり、それに来るものすべお぀たり、芪フォルダヌ、隣接するフォルダヌも必芁ありたせんは、新しいMicrosoftフォルダヌに再䜜成されたす。 私の堎合、/ bootフォルダヌのみを䜜成する必芁があり、新しいディレクトリぞの最終パスは次のようになりたした/ EFI / Microsoft / boot。 すべおのフォルダずファむルを単玔にコピヌするこずができたす-チェックされ、動䜜し、すべおを手動で䜜成するこずはできたせん。



  8. ステップ6のディレクトリに、Linuxディストリビュヌションの名前のフォルダヌがありたす。この堎合はUbuntuです。 このフォルダヌのすべおのファむルを、前の手順で䜜成した最終ディレクトリ/ EFI / Microsoft / bootにコピヌしたす念のため元のファむルずubuntuフォルダヌを残したす。



  9. 結果のファむルシステムでは、grubx.efiたたはgrubx64.efiファむルが芋぀かりたすむンストヌルされおいるLinuxの長さに応じお、そのうちの1぀のみが存圚したす。 名前をbootmgfw.efiに倉曎したす。



  10. ファむル/boot/grub/grub.cfgは、むンストヌルされおいるLinuxのファむルシステムにありたす。 線集甚に開きたす。 その䞭に、「chainloader」で始たる行のコンテキストで「Microsoft」ずいう単語を芋぀け、この単語をMicrosoftに名前を倉曎したディレクトリの名前に眮き換えたす1回だけ出珟し、行に「chainloader」があるため、間違えないようにしたす぀たり、この䟋ではMicrosoft2を䜿甚しおいたす。 ファむルぞの倉曎を保存したす。


たた、このファむルでは、GRUBが衚瀺するリスト内の名前を倉曎できたす。 たずえば、コヌド郚分のopenSUSE Leap 42.2 27.01の代わりに



menuentry 'openSUSE Leap 42.2 27.01' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-996b3ed5-150f-4de3-a40c-6d385e27d6de' { load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt6' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6 996b3ed5-150f-4de3-a40c-6d385e27d6de else search --no-floppy --fs-uuid --set=root 996b3ed5-150f-4de3-a40c-6d385e27d6de fi echo ' Linux 4.4.36-8-default 
' linuxefi /boot/vmlinuz-4.4.36-8-default root=UUID=996b3ed5-150f-4de3-a40c-6d385e27d6de ro resume=/dev/sda7 splash=silent quiet showopts echo '    
' initrdefi /boot/initrd-4.4.36-8-default }
      
      





openSUSEを曞くのが最良の遞択です:) 



 menuentry 'openSUSE The best choice!:)' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-996b3ed5-150f-4de3-a40c-6d385e27d6de' { load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt6' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6 996b3ed5-150f-4de3-a40c-6d385e27d6de else search --no-floppy --fs-uuid --set=root 996b3ed5-150f-4de3-a40c-6d385e27d6de fi echo ' Linux 4.4.36-8-default 
' linuxefi /boot/vmlinuz-4.4.36-8-default root=UUID=996b3ed5-150f-4de3-a40c-6d385e27d6de ro resume=/dev/sda7 splash=silent quiet showopts echo '    
' initrdefi /boot/initrd-4.4.36-8-default }
      
      





些现なこずですが、玠晎らしい コヌドの残りの郚分に觊れないこずをお勧めしたす。



Midnight Commanderの管理を理解するのが難しい堎合心配する必芁はありたせん。初めおこのプログラムに問題が発生したした、すべおの操䜜はNautilusファむルマネヌゞャヌでたたは別の問題ではありたせん実行できたすが、最初はrootナヌザヌずしお。



その埌、再起動しお結果を楜しみたす。 しかし、結局のずころ、OpenSUSE Leap 42.2ディストリビュヌションにはこのような問題がありたす。 実践が瀺しおいるように、Windows 10を搭茉したOpenSUSE配垃キットがコンピュヌタヌにむンストヌルされおいる堎合、䞊蚘の指瀺は圹に立ちたせん。 より正確には、それは助けになりたすが、それだけを補う必芁がありたす。 䞻芁郚分を完了したら、次の手順を実行したす。



  1. すべおの操䜜を完了したら、/ EFI / opensuse / x86_64-efi /フォルダヌに移動したす最終的なx86_64-efiフォルダヌの名前は、PCアヌキテクチャによっお異なる堎合がありたす
  2. grub.efiファむルをコピヌしたすセキュアブヌトオプションを有効にしおいる堎合は、shim.efiファむルもありたす。それらを䞀緒にコピヌするこずをお勧めしたす
  3. / EFI / Bootフォルダヌに移動し、そこにあるすべおのファむルを削陀したすブヌトロヌダヌが曎新されるず、それらは再び衚瀺されたすが、心配する必芁はありたせん
  4. コピヌしたファむルを貌り付けお、萜ち着いお再起動したす。

    これが党䜓の指瀺です。 誰かが䟿利になるず思いたす...


PSすべおが順調であれば、OpenSUSEを䜿甚したGRUBが起動したすが、Windowsが衚瀺されないので喜ぶ-問題は1぀のコマンドgrub2-mkconfig -o /boot/grub2/grub.cfgで解決されたす。 update-grub 。



このトピックに興味がある人は、蚘事「GRUB 2ブヌトロヌダヌ-完党なガむド」を読むこずをお勧めしたす 。



All Articles