{"id":476,"date":"2016-03-10T10:13:51","date_gmt":"2016-03-10T09:13:51","guid":{"rendered":"https:\/\/blog.mi.hdm-stuttgart.de\/?p=476"},"modified":"2023-08-06T21:55:19","modified_gmt":"2023-08-06T19:55:19","slug":"intel-nuc-and-the-quest-for-the-holy-boot-target","status":"publish","type":"post","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/03\/10\/intel-nuc-and-the-quest-for-the-holy-boot-target\/","title":{"rendered":"Intel NUC and the quest for the holy boot target"},"content":{"rendered":"<p>Do you already have found time to recover from fighting the demons which made it hard&nbsp;to get a Docker cluster up and running on Raspberry Pis? Hopefully &#8211; because the&nbsp;next crusade lies ahead of us! So let&#8217;s dive into the&nbsp;next adventure, &nbsp;watching our heroes &#8211; three greenhorn students&nbsp;&#8211; on their&nbsp;search for their Intel NUC&#8217;s missing boot target.<\/p>\n<p><!--more--><\/p>\n<h2>A new beginning:<\/h2>\n<p>Our story starts&nbsp;at Stuttgart Media University, where three brave students looked forward to putting their brand-new Intel NUC into operation. A <a href=\"http:\/\/www.intel.de\/content\/www\/de\/de\/nuc\/overview.html\">NUC (Next Unit of Computing)<\/a> is a small but fully functional PC developed by Intel. The model that was available to our three fellows was powered by a third-generation i3 processor as well as a 64 GB SSD. Great preconditions for flashing it with the newest Debian OS release and using it for cluster administration by making it the Shipyard host, they thought. Since the students had already figured out how to master Docker orchestration and even retained that in a previous blog post, making this work should not really be a great challenge. Far wrong &#8230;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/6\/60\/Intel_NUC_Haswell_(case_rear_panel).jpg\" alt=\"\" width=\"3264\" height=\"2448\"><\/p>\n<h2>The first rabbit punch:<\/h2>\n<p>After having flashed&nbsp;an USB drive with the latest <a href=\"https:\/\/www.debian.org\/\">Debian 8 release (&#8220;Jessie&#8221;)<\/a>, our&nbsp;three fellows launched the installer. A few minutes and configuration steps later, the installation process had succeeded and they removed the USB drive to boot the freshly installed OS from the NUC for the first time. However, they could hardly believe what they were seeing: The system asked them for the&nbsp;operating system they would like to boot, offering Linux and Windows. Something must have gone terribly wrong &#8230;<\/p>\n<h2>The enemy from the HdM&nbsp;network:<\/h2>\n<p>Finally, our fellows understood what had caused this strange behavior: Because the NUC has been connected to the network of the MI lecture room during the installation process, a configuration concerning this network must have imposed a custom bootloader on their NUC. Most likely, this mechanism was used to setup the room&#8217;s&nbsp;work stations in a comfortable manner. However, for our heroes this proved more as a barrier rather than being helpful.<\/p>\n<p>As a consequence the students decided to re-run the Debain installation routine with the network cable unplugged. Again, they waited for the process to terminate and tried to boot the NUC for the second time, convinced that they will soon be able to get their hands dirty with Docker and Shipyard in an 64 bit environment. Although the disturbing dual bootloader has vanished and the NUC&#8217;s <a href=\"https:\/\/en.wikipedia.org\/wiki\/Unified_Extensible_Firmware_Interface\">EFI<\/a> started as expected, it welcomed our companions with a message that told&nbsp;them something like <em>&#8220;unable to find boot target&#8221;<\/em>&nbsp;&#8230;<\/p>\n<p>Strike a light!<\/p>\n<h2>A fight to the finish:<\/h2>\n<p>One of the students suggested that probably the installation didn&#8217;t work as expected. So they once more plugged in&nbsp;the USB drive, repeating the Debian setup (meanwhile being able to do this blindfolded). Though, the same error raised up again. Actually doing the same steps a fourth and a fifth time didn&#8217;t lead to some kind of improvement.<\/p>\n<p>Another approach which came to their minds was to resign the automatic installer and generate the required partitions by themselves. But not even that helped the companions to bring down this overpowering enemy. The situation seemed to be hopeless &#8230;<\/p>\n<h2>The wise men of Silicon Valley<\/h2>\n<p>Facing a bad defeat, our heroes determined to make use of their last resort. They have heard of two wise men of the Silicon Valley, Larry and Sergey, giving desperate people hope by overflooding them with possible answers to their questions. In fact, this led their attention on&nbsp;<a href=\"http:\/\/arstechnica.com\/gadgets\/2014\/02\/linux-on-the-nuc-using-ubuntu-mint-fedora-and-the-steamos-beta\/\">a prophecy<\/a>&nbsp;of a guy called Andrew Cunningham&nbsp;which seemed to provide a solution to their issue. &nbsp;In short, this prophecy told them the following:<\/p>\n<p>A bug has snuck inside the NUC&#8217;s EFI, which assumes to find a boot target called bootx64.efi inside the \/EFI\/BOOT folder on the corresponding boot partition. However, the Debian Linux&nbsp;distribution places a bootloader called grubx64.efi inside the \/EFI\/Debian directory (Caution: This is true for every Debian-based Linux distribution!). &nbsp;To bypass the NUC&#8217;s faulty behavior, the subsequent workaround can be applied:<\/p>\n<pre class=\"prettyprint lang-sh\" data-start-line=\"1\" data-visibility=\"visible\" data-highlight=\"\" data-caption=\"\"># mount the ssd to the \/mnt directory\n$ sudo mount \/dev\/sda1 \/mnt \n\n# create the folder the NUC EFI expects\n$ sudo mkdir \/mnt\/EFI\/BOOT \n\n# move the bootloader to the new directory\n$ sudo cp \/mnt\/EFI\/debian\/* \/mnt\/EFI\/BOOT \n\n# rename the bootloader (according to NUC's EFI preferences)\n$ sudo mv \/mnt\/EFI\/BOOT\/grubx64.efi \/mnt\/EFI\/BOOT\/bootx64.efi<\/pre>\n<p>Our companions created a bootable Ubuntu USB drive and followed the steps the prophecy suggested them. Indeed, after having applied the changes everything worked well as soon as they gave the boot process&nbsp;another try.<\/p>\n<h2>Conclusion:<\/h2>\n<p>Finally, it has been a bug in the Intel NUC&#8217;s EFI implementation which brought heavy headache to our three heroes. But in the end, their strong will as well as a&nbsp;hint of the two wise men of the Silicon Valley helped them to master all the challenges on their road to getting Debian to work on a NUC.<\/p>\n<p>And the moral of the story: <del>Shit<\/del>&nbsp;Failure happens, even at Intel \ud83d\ude09<\/p>\n<p>&nbsp;<\/p>\n<p>Benjamin Binder, Jonathan Peter, Patrick Kleindienst<\/p>\n<p>&nbsp;<\/p>\n<h5><strong>Image sources:<\/strong><\/h5>\n<p>https:\/\/upload.wikimedia.org\/wikipedia\/commons\/6\/60\/<br \/>\nIntel_NUC_Haswell_(case_rear_panel).jpg<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Do you already have found time to recover from fighting the demons which made it hard&nbsp;to get a Docker cluster up and running on Raspberry Pis? Hopefully &#8211; because the&nbsp;next crusade lies ahead of us! So let&#8217;s dive into the&nbsp;next adventure, &nbsp;watching our heroes &#8211; three greenhorn students&nbsp;&#8211; on their&nbsp;search for their Intel NUC&#8217;s missing [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[651,2,223],"tags":[20,19,18],"ppma_author":[694],"class_list":["post-476","post","type-post","status-publish","format-standard","hentry","category-system-designs","category-system-engineering","category-ultra-large-scale-systems","tag-debian","tag-intel","tag-nuc"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":3084,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2017\/09\/05\/cloud-security-part-2-the-vulnerabilities-and-threats-of-the-cloud-current-scientific-work-on-cloud-security-conclusion-and-outlook\/","url_meta":{"origin":476,"position":0},"title":"Cloud Security \u2013 Part 2: The vulnerabilities and threats of the cloud, current scientific work on cloud security, conclusion and outlook","author":"Andreas Fliehr","date":"5. September 2017","format":false,"excerpt":"The second of two blog posts about cloud security. This post covers the vulnerabilities and threats of the cloud, the current scientific work on cloud security and a conclusion and an outlook.","rel":"","context":"In &quot;Cloud Technologies&quot;","block_context":{"text":"Cloud Technologies","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/scalable-systems\/cloud-technologies\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/09\/Structure-of-Nexen.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/09\/Structure-of-Nexen.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/09\/Structure-of-Nexen.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":24936,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/07\/17\/security-knockout-how-capcoms-street-fighter-5-punched-a-hole-in-intels-security-system\/","url_meta":{"origin":476,"position":1},"title":"Security Knockout: How Capcom&#8217;s Street Fighter 5 punched a hole in Intel&#8217;s security system","author":"Frederik Omlor","date":"17. July 2023","format":false,"excerpt":"Games are usually built in order to optimize performance, not security. Nevertheless, they can be responsible for security vulnerabilities as well. This article shows how anti-cheat software, cheaters themselves and finally also game developers can cause harm to users systems.","rel":"","context":"In &quot;Secure Systems&quot;","block_context":{"text":"Secure Systems","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/system-designs\/secure-systems\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":308,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/03\/10\/more-is-always-better-building-a-cluster-with-pies\/","url_meta":{"origin":476,"position":2},"title":"More is always better: building a cluster with Pies","author":"Benjamin Binder","date":"10. March 2016","format":false,"excerpt":"So you have written the uber-pro-web-application with a bazillion of active users. But your requests start to get out of hand and the Raspberry Pi under your desk can't handle all the pressure on its own. Finally,\u00a0the time for rapid expansion has come! If you have already containerized your application,\u2026","rel":"","context":"In &quot;Scalable Systems&quot;","block_context":{"text":"Scalable Systems","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/scalable-systems\/"},"img":{"alt_text":"Raspberry Pi 2","src":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/3\/3d\/Raspberry_PI.jpeg","width":350,"height":200,"srcset":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/3\/3d\/Raspberry_PI.jpeg 1x, https:\/\/upload.wikimedia.org\/wikipedia\/commons\/3\/3d\/Raspberry_PI.jpeg 1.5x, https:\/\/upload.wikimedia.org\/wikipedia\/commons\/3\/3d\/Raspberry_PI.jpeg 2x, https:\/\/upload.wikimedia.org\/wikipedia\/commons\/3\/3d\/Raspberry_PI.jpeg 3x, https:\/\/upload.wikimedia.org\/wikipedia\/commons\/3\/3d\/Raspberry_PI.jpeg 4x"},"classes":[]},{"id":24485,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/03\/05\/amd-epyc-9004-a-small-scale-supercomputer\/","url_meta":{"origin":476,"position":3},"title":"AMD EPYC 9004 \u2013 a small scale supercomputer?","author":"Maximilian von Detten","date":"5. March 2023","format":false,"excerpt":"For a long time the server and desktop space was dominated by intel CPUs. AMD lacked severely behind the competition with its processors but changed everything up, when they launched their ZEN architecture processors in February 2017. Suddenly they started to compete on the consumer side of processors again and\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10943,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2020\/09\/11\/behind-the-scenes-of-modern-operating-systems-security-through-isolation-part-1\/","url_meta":{"origin":476,"position":4},"title":"Behind the scenes of modern operating systems \u2014 Security through isolation (Part 1)","author":"Leon Klingele","date":"11. September 2020","format":false,"excerpt":"In recent years, since the Internet has become available to almost anyone, application and runtime security is important more than ever. Be it an (unknown) application you download and run from the Internet or some server application you expose to the Internet, it's almost certainly a bad idea to run\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":282,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/03\/10\/docker-running-on-a-raspberry-pi-hypriot\/","url_meta":{"origin":476,"position":5},"title":"Docker on a Raspberry Pi: Hypriot","author":"Jonathan Peter","date":"10. March 2016","format":false,"excerpt":"Raspberry Pis are small, cheap\u00a0and easy to come by. But what if you want to use Docker on them? Our goal was to run Docker on several Raspberry Pis and combine them to a cluster with Docker Swarm. To achieve this, we first\u00a0needed to get Docker running on the Pi.\u2026","rel":"","context":"In &quot;System Designs&quot;","block_context":{"text":"System Designs","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/system-designs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"authors":[{"term_id":694,"user_id":4,"is_guest":0,"slug":"pk070","display_name":"Patrick Kleindienst","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/d0135b87f4c61a26c5a66f7a2ed6c5c65e24a27662ff67c06a36af82b702336f?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/comments?post=476"}],"version-history":[{"count":36,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/476\/revisions"}],"predecessor-version":[{"id":24663,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/476\/revisions\/24663"}],"wp:attachment":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/media?parent=476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/categories?post=476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/tags?post=476"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/ppma_author?post=476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}