{"id":290,"date":"2017-11-10T15:03:42","date_gmt":"2017-11-10T15:03:42","guid":{"rendered":"https:\/\/bootstrap-it.com\/blog\/?p=290"},"modified":"2017-11-10T15:10:16","modified_gmt":"2017-11-10T15:10:16","slug":"the-ubuntu-recovery-menu-demystifying-linux-system-recovery","status":"publish","type":"post","link":"https:\/\/bootstrap-it.com\/blog\/?p=290","title":{"rendered":"The Ubuntu Recovery Menu: demystifying Linux system recovery"},"content":{"rendered":"<div id=\"s-share-buttons\" class=\"horizontal-w-c-circular s-share-w-c\"><a href=\"http:\/\/www.facebook.com\/sharer.php?u=https:\/\/bootstrap-it.com\/blog\/?p=290\" target=\"_blank\" title=\"Share to Facebook\" class=\"s3-facebook hint--top\"><\/a><a href=\"http:\/\/twitter.com\/intent\/tweet?text=The Ubuntu Recovery Menu: demystifying Linux system recovery&url=https:\/\/bootstrap-it.com\/blog\/?p=290\" target=\"_blank\"  title=\"Share to Twitter\" class=\"s3-twitter hint--top\"><\/a><a href=\"http:\/\/reddit.com\/submit?url=https:\/\/bootstrap-it.com\/blog\/?p=290&title=The Ubuntu Recovery Menu: demystifying Linux system recovery\" target=\"_blank\" title=\"Share to Reddit\" class=\"s3-reddit hint--top\"><\/a><a href=\"http:\/\/www.linkedin.com\/shareArticle?mini=true&url=https:\/\/bootstrap-it.com\/blog\/?p=290\" target=\"_blank\" title=\"Share to LinkedIn\" class=\"s3-linkedin hint--top\"><\/a><a href=\"mailto:?Subject=The%20Ubuntu%20Recovery%20Menu:%20demystifying%20Linux%20system%20recovery&Body=Here%20is%20the%20link%20to%20the%20article:%20https:\/\/bootstrap-it.com\/blog\/?p=290\" title=\"Email this article\" class=\"s3-email hint--top\"><\/a><\/div><p id=\"d0dc\" class=\"graf graf--p graf-after--h3\">This article is adapted from the chapter \u201cEmergency tools: build a system recovery device\u201d in my Manning book<strong class=\"markup--strong markup--p-strong\">\u00a0<\/strong><a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/www.manning.com\/books\/linux-in-action?a_aid=bootstrap-it&amp;a_bid=4ca15fc9\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.manning.com\/books\/linux-in-action?a_aid=bootstrap-it&amp;a_bid=4ca15fc9\"><strong class=\"markup--strong markup--p-strong\">Linux in Action<\/strong><\/a><strong class=\"markup--strong markup--p-strong\">\u00a0<\/strong>(use discount code fccclinton3 for 37% off).<\/p>\n<figure id=\"0e03\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"aspectRatioPlaceholder-fill\"><\/div>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*Vf0O0r-mozXQQORL-y39oQ.png\" data-width=\"720\" data-height=\"903\" data-action=\"zoom\" data-action-value=\"1*Vf0O0r-mozXQQORL-y39oQ.png\" data-scroll=\"native\"><canvas class=\"progressiveMedia-canvas js-progressiveMedia-canvas\" width=\"60\" height=\"75\"><\/canvas><img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/cdn-images-1.medium.com\/max\/800\/1*Vf0O0r-mozXQQORL-y39oQ.png\" data-src=\"https:\/\/cdn-images-1.medium.com\/max\/800\/1*Vf0O0r-mozXQQORL-y39oQ.png\" \/><\/div>\n<\/div>\n<\/figure>\n<p id=\"cfa4\" class=\"graf graf--p graf-after--figure\">Don\u2019t try to convince yourself otherwise: along with all the good stuff, you\u2019re going to have bad days with Linux.<\/p>\n<ul class=\"postList\">\n<li id=\"2541\" class=\"graf graf--li graf-after--p\">You (or the users you support) are going to mistype commands and permanently destroy documents.<\/li>\n<li id=\"20cc\" class=\"graf graf--li graf-after--li\">You\u2019re going to experience that sinking feeling when you realize that some really important piece of hardware or software has just gone and failed. That\u2019s gratitude after everything you did for it all those years.<\/li>\n<\/ul>\n<p id=\"8c11\" class=\"graf graf--p graf-after--li\">Being properly backed up means that you can walk away from a non-functioning OS or computer and rebuild it all somewhere else. But that\u2019s always going to be Plan B. Plan A is to recover.<\/p>\n<h4 id=\"d92e\" class=\"graf graf--h4 graf-after--p\">Using recovery mode on\u00a0Ubuntu<\/h4>\n<p id=\"b2e8\" class=\"graf graf--p graf-after--h4\">Linux not letting you log in normally (perhaps the boot process unexpectedly stops before displaying the login screen, for instance)? You\u2019ll want some basic system administration tools.<\/p>\n<p id=\"6a23\" class=\"graf graf--p graf-after--p\">But wait: if Linux won\u2019t load, how are you going to launch those tools? Well, even if Linux won\u2019t load all the way to a normal command prompt, often it\u2019ll get you to the GRUB menu. From there you can use the up and down arrow keys and then Enter to select a Linux kernel running in recovery mode which, as you\u2019ll soon see, will open up a whole bag of tricks.<\/p>\n<figure id=\"5e2d\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"aspectRatioPlaceholder-fill\"><\/div>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*RjY3jvtn6xbAjMpJjWOXZQ.png\" data-width=\"640\" data-height=\"480\" data-scroll=\"native\"><canvas class=\"progressiveMedia-canvas js-progressiveMedia-canvas\" width=\"75\" height=\"55\"><\/canvas><img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/cdn-images-1.medium.com\/max\/800\/1*RjY3jvtn6xbAjMpJjWOXZQ.png\" data-src=\"https:\/\/cdn-images-1.medium.com\/max\/800\/1*RjY3jvtn6xbAjMpJjWOXZQ.png\" \/><\/div>\n<\/div><figcaption class=\"imageCaption\">The GRUB \u201cAdvance options\u201d menu of an Ubuntu installation with links to both current and older kernel versions along with options for launching in recovery\u00a0mode<\/figcaption><\/figure>\n<p id=\"91ad\" class=\"graf graf--p graf-after--figure\">As you can see from the figure below, once Ubuntu is loaded in recovery mode, you\u2019ll be shown a menu of tools that address some common boot-time problems. It\u2019s worth trying each one that seems like it might address your root problem. \u201cClean\u201d, for instance, will remove unused files if you suspect the trouble stems from a full disk. \u201cdpkg\u201d will attempt to fix any broken apt-based software packages that might be gumming things up. (The \u201cdpkg\u201d tool might require that you first enable networking.)<\/p>\n<figure id=\"89d3\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"aspectRatioPlaceholder-fill\"><\/div>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*qm3DD1pRygY9oaPY9jIFoQ.png\" data-width=\"720\" data-height=\"400\" data-is-featured=\"true\" data-action=\"zoom\" data-action-value=\"1*qm3DD1pRygY9oaPY9jIFoQ.png\" data-scroll=\"native\"><canvas class=\"progressiveMedia-canvas js-progressiveMedia-canvas\" width=\"75\" height=\"40\"><\/canvas><img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/cdn-images-1.medium.com\/max\/800\/1*qm3DD1pRygY9oaPY9jIFoQ.png\" data-src=\"https:\/\/cdn-images-1.medium.com\/max\/800\/1*qm3DD1pRygY9oaPY9jIFoQ.png\" \/><\/div>\n<\/div><figcaption class=\"imageCaption\">The Ubuntu Recovery Menu with links to some basic diagnostic and repair tools, along with the option of opening a shell session as\u00a0\u201croot\u201d<\/figcaption><\/figure>\n<p id=\"38ce\" class=\"graf graf--p graf-after--figure\">The \u201croot\u201d option will open a root command line shell session for you where you\u2019ll have Bash at your disposal. In general, using a simple shell session for recovery rather than a full GUI desktop makes a lot of sense, because the fewer complicated services you\u2019ve got running, the more likely it is that you\u2019ll be able to at least get your system running. Once you\u00a0<em class=\"markup--em markup--p-em\">do<\/em>\u00a0manage to get a working command prompt, you can start poking around to see if you can identify and fix the problem.<\/p>\n<p id=\"e2d8\" class=\"graf graf--p graf-after--p\">But at the very least, you\u2019ll look mighty cool doing it.<\/p>\n<p id=\"3469\" class=\"graf graf--p graf-after--p\">But what\u00a0<em class=\"markup--em markup--p-em\">are<\/em>\u00a0those tools? Got an Ubuntu machine running? Go take a look for yourself. The code running the menu must already exist somewhere within an Ubuntu file system. Use \u201clocate\u201d to find it.<\/p>\n<pre id=\"970f\" class=\"graf graf--pre graf-after--p\">$ locate recovery-mode\r\n\/lib\/recovery-mode\r\n\/lib\/recovery-mode\/l10n.sh\r\n\/lib\/recovery-mode\/options\r\n\/lib\/recovery-mode\/recovery-menu\r\n\/lib\/recovery-mode\/options\/apt-snapshots\r\n\/lib\/recovery-mode\/options\/clean\r\n\/lib\/recovery-mode\/options\/dpkg\r\n\/lib\/recovery-mode\/options\/failsafeX\r\n\/lib\/recovery-mode\/options\/fsck\r\n\/lib\/recovery-mode\/options\/grub\r\n\/lib\/recovery-mode\/options\/network\r\n\/lib\/recovery-mode\/options\/root\r\n\/lib\/recovery-mode\/options\/system-summary<\/pre>\n<p id=\"9832\" class=\"graf graf--p graf-after--pre\">Note that the \u201cl10n.sh\u201d script sets appropriate environment variables for the menu. If you navigate over to the \/lib\/recovery-mode\/ directory you\u2019ll see that the \u201crecovery-menu\u201d file is the script that displays the menu interface that you saw above. The \/lib\/recovery-mode\/options\/ directory contains files for executing each of the menu items\u2026like \u201cfsck\u201d that will check and, if possible, fix any broken file systems.<\/p>\n<p id=\"ac88\" class=\"graf graf--p graf-after--p\">Since, based on previous chapters in the book, you\u2019re now an accomplished Bash scripting expert, why not take a look at each of the scripts in the options\/ directory to see if you can figure out how they work. Here are the contents of the \u201cfsck\u201d script to get you going. Note the way the script is nicely documented (using the \u201c#\u201d character) to help you understand what\u2019s going on.<\/p>\n<pre id=\"8e85\" class=\"graf graf--pre graf-after--p\">$ cat \/lib\/recovery-mode\/options\/fsck\r\n#!\/bin\/sh<\/pre>\n<pre id=\"0b33\" class=\"graf graf--pre graf-after--pre\">. \/lib\/recovery-mode\/l10n.sh  &lt;1&gt;<\/pre>\n<pre id=\"5710\" class=\"graf graf--pre graf-after--pre\">if [ \"$1\" = \"test\" ]; then\r\n  echo $(eval_gettext \"Check all file systems\")\r\n  exit 0\r\nfi<\/pre>\n<pre id=\"2b8a\" class=\"graf graf--pre graf-after--pre\"># Actual code is in recovery-menu itself  &lt;2&gt;\r\nexit 0<\/pre>\n<p id=\"0d5a\" class=\"graf graf--p graf-after--pre\">Here are a couple of things you can try on your own:<\/p>\n<ul class=\"postList\">\n<li id=\"9604\" class=\"graf graf--li graf-after--p\">Manually run the \u201cclean\u201d script on a Debian\/Ubuntu machine. What happened?<\/li>\n<li id=\"f52c\" class=\"graf graf--li graf-after--li\">Then try\u00a0<em class=\"markup--em markup--li-em\">carefully<\/em>\u00a0editing the \/lib\/recovery-mode\/recovery-menu script (make a backup copy first). Perhaps just change something simple, like the menu title or one of the script descriptions. Then reboot your machine and, from the GRUB menu, go into Recovery Mode to see what it looks like.<\/li>\n<\/ul>\n<p id=\"ed37\" class=\"graf graf--p graf-after--li\">With some variations and exceptions, you should be able to put those examples to good use elsewhere.<\/p>\n<p id=\"37d9\" class=\"graf graf--p graf-after--p graf--trailing\">This article is adapted from chapter 6 (<em class=\"markup--em markup--p-em\">Emergency tools: build a system recovery device<\/em>) of my\u00a0<a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/www.manning.com\/books\/linux-in-action?a_aid=bootstrap-it&amp;a_bid=4ca15fc9\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.manning.com\/books\/linux-in-action?a_aid=bootstrap-it&amp;a_bid=4ca15fc9\">Manning \u201cLinux in Action\u201d book<\/a>. It was also published on <a href=\"https:\/\/medium.com\/@dbclin\">Medium<\/a>. There\u2019s lots more fun where this came from. Who knows\u2026you might also enjoy my recently published\u00a0<a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/www.manning.com\/books\/learn-amazon-web-services-in-a-month-of-lunches?a_aid=bootstrap-it&amp;amp;a_bid=1c1b5e27\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.manning.com\/books\/learn-amazon-web-services-in-a-month-of-lunches?a_aid=bootstrap-it&amp;amp;a_bid=1c1b5e27\">Learn Amazon Web Services in a Month of Lunches<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is adapted from the chapter \u201cEmergency tools: build a system recovery device\u201d in my Manning book\u00a0Linux in Action\u00a0(use discount code fccclinton3 for 37% off). Don\u2019t try to convince yourself otherwise: along with all the good stuff, you\u2019re going&hellip; <a href=\"https:\/\/bootstrap-it.com\/blog\/?p=290\" class=\"more-link\">Continue Reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":297,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-290","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.2.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Ubuntu Recovery Menu: demystifying Linux system recovery - Bootstrap IT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bootstrap-it.com\/blog\/?p=290\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Ubuntu Recovery Menu: demystifying Linux system recovery - Bootstrap IT\" \/>\n<meta property=\"og:description\" content=\"This article is adapted from the chapter \u201cEmergency tools: build a system recovery device\u201d in my Manning book\u00a0Linux in Action\u00a0(use discount code fccclinton3 for 37% off). Don\u2019t try to convince yourself otherwise: along with all the good stuff, you\u2019re going&hellip; Continue Reading &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bootstrap-it.com\/blog\/?p=290\" \/>\n<meta property=\"og:site_name\" content=\"Bootstrap IT\" \/>\n<meta property=\"article:published_time\" content=\"2017-11-10T15:03:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-11-10T15:10:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bootstrap-it.com\/blog\/wp-content\/uploads\/recover.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"dbclin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@davidbclinton\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"dbclin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/bootstrap-it.com\/blog\/?p=290\",\"url\":\"https:\/\/bootstrap-it.com\/blog\/?p=290\",\"name\":\"The Ubuntu Recovery Menu: demystifying Linux system recovery - Bootstrap IT\",\"isPartOf\":{\"@id\":\"https:\/\/bootstrap-it.com\/blog\/#website\"},\"datePublished\":\"2017-11-10T15:03:42+00:00\",\"dateModified\":\"2017-11-10T15:10:16+00:00\",\"author\":{\"@id\":\"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/ae0fb1d5b3b01558b92b6426d77766ec\"},\"breadcrumb\":{\"@id\":\"https:\/\/bootstrap-it.com\/blog\/?p=290#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/bootstrap-it.com\/blog\/?p=290\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/bootstrap-it.com\/blog\/?p=290#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/bootstrap-it.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Ubuntu Recovery Menu: demystifying Linux system recovery\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/bootstrap-it.com\/blog\/#website\",\"url\":\"https:\/\/bootstrap-it.com\/blog\/\",\"name\":\"Bootstrap IT\",\"description\":\"Learn technology using technology\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/bootstrap-it.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/ae0fb1d5b3b01558b92b6426d77766ec\",\"name\":\"dbclin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a93785d437350478a7f1dfcbec58d26bc28e0124e405179acbe1b4325c09f90a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a93785d437350478a7f1dfcbec58d26bc28e0124e405179acbe1b4325c09f90a?s=96&d=mm&r=g\",\"caption\":\"dbclin\"},\"sameAs\":[\"http:\/\/bootstrap-it.com\/\",\"dbclinton\",\"https:\/\/twitter.com\/davidbclinton\"],\"url\":\"https:\/\/bootstrap-it.com\/blog\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Ubuntu Recovery Menu: demystifying Linux system recovery - Bootstrap IT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bootstrap-it.com\/blog\/?p=290","og_locale":"en_US","og_type":"article","og_title":"The Ubuntu Recovery Menu: demystifying Linux system recovery - Bootstrap IT","og_description":"This article is adapted from the chapter \u201cEmergency tools: build a system recovery device\u201d in my Manning book\u00a0Linux in Action\u00a0(use discount code fccclinton3 for 37% off). Don\u2019t try to convince yourself otherwise: along with all the good stuff, you\u2019re going&hellip; Continue Reading &rarr;","og_url":"https:\/\/bootstrap-it.com\/blog\/?p=290","og_site_name":"Bootstrap IT","article_published_time":"2017-11-10T15:03:42+00:00","article_modified_time":"2017-11-10T15:10:16+00:00","og_image":[{"width":720,"height":400,"url":"https:\/\/bootstrap-it.com\/blog\/wp-content\/uploads\/recover.png","type":"image\/png"}],"author":"dbclin","twitter_card":"summary_large_image","twitter_creator":"@davidbclinton","twitter_misc":{"Written by":"dbclin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bootstrap-it.com\/blog\/?p=290","url":"https:\/\/bootstrap-it.com\/blog\/?p=290","name":"The Ubuntu Recovery Menu: demystifying Linux system recovery - Bootstrap IT","isPartOf":{"@id":"https:\/\/bootstrap-it.com\/blog\/#website"},"datePublished":"2017-11-10T15:03:42+00:00","dateModified":"2017-11-10T15:10:16+00:00","author":{"@id":"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/ae0fb1d5b3b01558b92b6426d77766ec"},"breadcrumb":{"@id":"https:\/\/bootstrap-it.com\/blog\/?p=290#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bootstrap-it.com\/blog\/?p=290"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/bootstrap-it.com\/blog\/?p=290#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bootstrap-it.com\/blog"},{"@type":"ListItem","position":2,"name":"The Ubuntu Recovery Menu: demystifying Linux system recovery"}]},{"@type":"WebSite","@id":"https:\/\/bootstrap-it.com\/blog\/#website","url":"https:\/\/bootstrap-it.com\/blog\/","name":"Bootstrap IT","description":"Learn technology using technology","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bootstrap-it.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/ae0fb1d5b3b01558b92b6426d77766ec","name":"dbclin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a93785d437350478a7f1dfcbec58d26bc28e0124e405179acbe1b4325c09f90a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a93785d437350478a7f1dfcbec58d26bc28e0124e405179acbe1b4325c09f90a?s=96&d=mm&r=g","caption":"dbclin"},"sameAs":["http:\/\/bootstrap-it.com\/","dbclinton","https:\/\/twitter.com\/davidbclinton"],"url":"https:\/\/bootstrap-it.com\/blog\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=290"}],"version-history":[{"count":1,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/290\/revisions"}],"predecessor-version":[{"id":291,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/290\/revisions\/291"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/media\/297"}],"wp:attachment":[{"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}