<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://infotechpedia.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TomHutchison</id>
	<title>InfoTechPedia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://infotechpedia.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TomHutchison"/>
	<link rel="alternate" type="text/html" href="https://infotechpedia.org/wiki/Special:Contributions/TomHutchison"/>
	<updated>2026-06-04T01:46:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=MediaWiki:Pivot.css&amp;diff=206</id>
		<title>MediaWiki:Pivot.css</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=MediaWiki:Pivot.css&amp;diff=206"/>
		<updated>2021-04-14T20:57:05Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Column-output Home Page */&lt;br /&gt;
.column-output {&lt;br /&gt;
    -webkit-columns: 16em 2;&lt;br /&gt;
    -moz-columns: 16em 2;&lt;br /&gt;
    columns: 16em 2;&lt;br /&gt;
    margin:0 1.5em&lt;br /&gt;
}&lt;br /&gt;
/* Icons */&lt;br /&gt;
#n-Contact-us a:before {&lt;br /&gt;
    content: &amp;quot;\f003&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
/* Custom colors - top bar*/&lt;br /&gt;
.tab-bar {&lt;br /&gt;
    background: #2f3f4f&lt;br /&gt;
}&lt;br /&gt;
/* style the labels */&lt;br /&gt;
ul.side-nav label {&lt;br /&gt;
    background: #2f3f4f;&lt;br /&gt;
    color: #fff;&lt;br /&gt;
    padding: .25em .5em;&lt;br /&gt;
}&lt;br /&gt;
/* sidebar background color and font-family */&lt;br /&gt;
body {&lt;br /&gt;
    background-color: #bad6d6;&lt;br /&gt;
    font-family: -apple-system,BlinkMacSystemFont,&amp;quot;Segoe UI&amp;quot;,Helvetica,Arial,sans-serif,&amp;quot;Apple Color Emoji&amp;quot;,&amp;quot;Segoe UI Emoji&amp;quot;,&amp;quot;Segoe UI Symbol&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.side-nav {&lt;br /&gt;
    font-family: -apple-system,BlinkMacSystemFont,&amp;quot;Segoe UI&amp;quot;,Helvetica,Arial,sans-serif,&amp;quot;Apple Color Emoji&amp;quot;,&amp;quot;Segoe UI Emoji&amp;quot;,&amp;quot;Segoe UI Symbol&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
/* Pre tags */&lt;br /&gt;
pre {&lt;br /&gt;
    background: darkslategrey;&lt;br /&gt;
    color: #D1F8D1;&lt;br /&gt;
    padding: 10px 10px;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    margin: 1em 3em 1em 4em;&lt;br /&gt;
    font-family: Consolas,&amp;quot;Liberation Mono&amp;quot;,Courier,monospace;&lt;br /&gt;
}&lt;br /&gt;
/* Pre tags in MediaWiki Namespace */&lt;br /&gt;
.ns-8 pre {&lt;br /&gt;
    background: #efefee;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    color: #483d8b;&lt;br /&gt;
}&lt;br /&gt;
/* Pre tags plain */&lt;br /&gt;
pre.code {&lt;br /&gt;
    color: #555;&lt;br /&gt;
    background: #f8f8f8;&lt;br /&gt;
    border: 1px solid #dfdfdf;&lt;br /&gt;
    margin: 1em 0;&lt;br /&gt;
}&lt;br /&gt;
/* Image classes */&lt;br /&gt;
.center {&lt;br /&gt;
    text-align:  center;&lt;br /&gt;
}&lt;br /&gt;
img {&lt;br /&gt;
    margin-bottom:  1em;&lt;br /&gt;
}&lt;br /&gt;
/* Nested UL and OL */&lt;br /&gt;
.mw-content-ltr ul&amp;gt;li&amp;gt;ul {&lt;br /&gt;
    margin: .25em 0 .25em 1.25em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    margin: .25em 0 .25em 1.25em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: upper-alpha;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: lower-alpha;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: lower-roman;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: decimal;&lt;br /&gt;
}&lt;br /&gt;
dl, dd, dl dd {&lt;br /&gt;
    margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Override MW legacy.module for all skins styling of ul and ol */&lt;br /&gt;
.mw-content-ltr ul,&lt;br /&gt;
.mw-content-rtl .mw-content-ltr ul {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 0 0.5em 3.2em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.mw-content-rtl ul,&lt;br /&gt;
.mw-content-ltr .mw-content-rtl ul {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 3.2em 0 0.5em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.mw-content-ltr ol,&lt;br /&gt;
.mw-content-rtl .mw-content-ltr ol {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 0 0.5em 3.2em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.mw-content-rtl ol,&lt;br /&gt;
.mw-content-ltr .mw-content-rtl ol {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 3.2em 0 0.5em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
/* @noflip */&lt;br /&gt;
.mw-content-ltr dd,&lt;br /&gt;
.mw-content-rtl .mw-content-ltr dd {&lt;br /&gt;
	margin-left: 1.6em;&lt;br /&gt;
	margin-right: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
/* @noflip */&lt;br /&gt;
.mw-content-rtl dd,&lt;br /&gt;
.mw-content-ltr .mw-content-rtl dd {&lt;br /&gt;
	margin-right: 1.6em;&lt;br /&gt;
	margin-left: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Notice Boxes */&lt;br /&gt;
.dablink {&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
    padding-bottom: 0.5em;&lt;br /&gt;
    padding-left: 0;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
    color: #555;&lt;br /&gt;
    border-bottom: 1px solid #ccc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div[class*=&amp;quot;panel radius notice-&amp;quot;] {&lt;br /&gt;
    -webkit-box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.75);&lt;br /&gt;
    -moz-box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.75);&lt;br /&gt;
    box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-note {&lt;br /&gt;
    background: lightgray;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-warning {&lt;br /&gt;
    background: rgba(255, 0, 0, 0.85);&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: white;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-hint {&lt;br /&gt;
    background: mediumseagreen;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-see-also {&lt;br /&gt;
    background: lightgoldenrodyellow;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: #191970;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-info {&lt;br /&gt;
    background: aliceblue;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: #191970;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notice {&lt;br /&gt;
    margin: .5em 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notice-title {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    border-bottom:1px solid;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    font-size: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.notice {&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    font-size: 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Category links */&lt;br /&gt;
#mw-normal-catlinks li {&lt;br /&gt;
    background: #2f3f4f;&lt;br /&gt;
    margin: 5px;&lt;br /&gt;
    padding: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#catlinks ul li a {&lt;br /&gt;
    color: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Screen width styles 60em and under */&lt;br /&gt;
&lt;br /&gt;
@media screen and (max-width: 60em) {&lt;br /&gt;
    .notice-icon {&lt;br /&gt;
        font-size: .65em;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (max-width: 60em) {&lt;br /&gt;
    pre {&lt;br /&gt;
        margin-left:0px;&lt;br /&gt;
        margin-right:0px;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Main_Page&amp;diff=205</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Main_Page&amp;diff=205"/>
		<updated>2021-04-14T20:38:32Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: /* Contents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-12 columns&amp;gt;&lt;br /&gt;
[[File:SiteHeader.png]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Contents ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;column-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dpl&amp;gt;&lt;br /&gt;
namespace=&lt;br /&gt;
ordermethod=category,title&lt;br /&gt;
headingmode=h4&lt;br /&gt;
mode=unordered&lt;br /&gt;
&amp;lt;/dpl&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{keywords|Info Tech,Information,Techonology,System Admin,Developer,Support,Linux,Git,CLI}}&lt;br /&gt;
{{description|A scratchpad of everything to do with being a System's Admin, Developer or an IT Support Specialist.}}&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Virtualmin&amp;diff=202</id>
		<title>Category:Virtualmin</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Virtualmin&amp;diff=202"/>
		<updated>2020-11-03T17:02:43Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Virtualmin-logo.svg|right|100px]]&lt;br /&gt;
&lt;br /&gt;
Pages in the &amp;lt;code&amp;gt;{{PAGENAME}}&amp;lt;/code&amp;gt; category.&lt;br /&gt;
{{-}}&lt;br /&gt;
[[Category:All Categories]]{{ogmeta}}&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Template:Ogmeta&amp;diff=201</id>
		<title>Template:Ogmeta</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Template:Ogmeta&amp;diff=201"/>
		<updated>2020-11-03T17:01:38Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#set:&lt;br /&gt;
   |Meta element og-image={{filepath:{{#sub:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA |?Height }}&lt;br /&gt;
  }}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template automatically adds the og meta tags, og:image, og:image-type, og:image-height, and og:image-width.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{#set:&lt;br /&gt;
   |Meta element og-image={{filepath:{{#sub:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA|?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA|?Height }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:PHP&amp;diff=200</id>
		<title>Category:PHP</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:PHP&amp;diff=200"/>
		<updated>2020-11-03T17:00:08Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PHP-logo.svg|right|100px]]&lt;br /&gt;
&lt;br /&gt;
Pages in the &amp;lt;code&amp;gt;{{PAGENAME}}&amp;lt;/code&amp;gt; category.&lt;br /&gt;
{{-}}&lt;br /&gt;
[[Category:All Categories]]{{ogmeta}}&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image-height&amp;diff=199</id>
		<title>Property:Meta element og-image-height</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image-height&amp;diff=199"/>
		<updated>2020-11-03T16:30:23Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Has type::Text]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image-width&amp;diff=198</id>
		<title>Property:Meta element og-image-width</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image-width&amp;diff=198"/>
		<updated>2020-11-03T16:29:56Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Has type::Text]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Property:Has_meta_description&amp;diff=197</id>
		<title>Property:Has meta description</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Property:Has_meta_description&amp;diff=197"/>
		<updated>2020-11-03T16:26:08Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;Has type::Text&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Has type::Text]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Template:Ogmeta&amp;diff=196</id>
		<title>Template:Ogmeta</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Template:Ogmeta&amp;diff=196"/>
		<updated>2020-11-03T16:19:01Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#set:&lt;br /&gt;
   |Meta element og-image=https:{{filepath:{{#sub:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA |?Height }}&lt;br /&gt;
  }}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template automatically adds the og meta tags, og:image, og:image-type, og:image-height, and og:image-width.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{#set:&lt;br /&gt;
   |Meta element og-image=https:{{filepath:{{#sub:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA|?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA|?Height }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Template:Ogmeta&amp;diff=195</id>
		<title>Template:Ogmeta</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Template:Ogmeta&amp;diff=195"/>
		<updated>2020-11-03T16:10:42Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#set:&lt;br /&gt;
   |Meta element og-image=https:{{filepath:{{#sub:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA |?Height }}&lt;br /&gt;
  }}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template automatically adds the og meta tags, og:image, og:image-type, og:image-height, and og:image-width.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{#set:&lt;br /&gt;
   |Meta element og-image=https:{{filepath:{{#sub:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}#_EXIFDATA |?Height }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Pure_Linux_iMac_Boot&amp;diff=194</id>
		<title>Pure Linux iMac Boot</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Pure_Linux_iMac_Boot&amp;diff=194"/>
		<updated>2020-11-03T16:07:13Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: /* Zeroing the Hard Drive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I recently bought a Mac Mini 6,1 (late 2012 model) to replace the giant tower PC &lt;br /&gt;
I was using as a household server. Oddly enough for an Apple product, out of all &lt;br /&gt;
the small-form-factor PCs around with a decent amount of power, it was by far &lt;br /&gt;
the cheapest.&lt;br /&gt;
When I installed Ubuntu Saucy (13.10), I was initially faced with an unbootable &lt;br /&gt;
system, which I eventually got to work. When Ubunty Trusty (14.04) came out I &lt;br /&gt;
was hoping things would go better. Sure enough, there was a &amp;lt;code&amp;gt;+mac&amp;lt;/code&amp;gt; variant &lt;br /&gt;
installer available (buried behind several download pages), but ths used legacy &lt;br /&gt;
BIOS booting. The non &amp;lt;code&amp;gt;+mac&amp;lt;/code&amp;gt; variant simply gave me an unbootable system again.&lt;br /&gt;
This wasn’t good enough for me! I used [http://glandium.org/blog/?p=2830 Mike Hommey’s Debian EFI boot instructions], &lt;br /&gt;
and adapted them for recent Ubuntu systems. The result was a Mac Mini that would &lt;br /&gt;
boot Ubuntu Trusty in pure EFI mode, with no rEFInd and no OS X, and with an &lt;br /&gt;
Ubuntu entry in the Mac’s bootloader menu.&lt;br /&gt;
Thank you Mike. They were excellent instructions.&lt;br /&gt;
Note that I’ve only applied this process to my situation: single-booting Ubuntu &lt;br /&gt;
Trusty (14.04.1) on a Mac Mini 6,1. If you’re knowledgeable enough, you should &lt;br /&gt;
be able to use this to dual/multi-boot, or boot other Linux distros, or use &lt;br /&gt;
other Mac devices. But I haven’t tried any of that myself, so be prepared for &lt;br /&gt;
some surprises.&lt;br /&gt;
&lt;br /&gt;
==Why EFI? Why Not rEFInd?==&lt;br /&gt;
Because I can. Because of aesthetics. Because I’m an engineer, and if there’s a &lt;br /&gt;
simpler way to make something work, I’ll try to find it.&lt;br /&gt;
If the legacy BIOS boot mode works for you, and you don’t want any fuss, use it! &lt;br /&gt;
If rEFInd works for you, use it! These instructions are for people who just want &lt;br /&gt;
to try it out, or perhaps for installer developers who want a starting point for &lt;br /&gt;
a more general process.&lt;br /&gt;
Are there any benefits at all then? Sure:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;I couldn’t actually figure out how to install rEFInd without keeping OS X &lt;br /&gt;
installed, which meant giving over about 100GB of my 500GB drive to it. No &lt;br /&gt;
thanks.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Mac bootloader firmware seems to boot about 30s faster.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You have access to various EFI-related utilities.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You can make yourself a pretty Ubuntu entry in the bootloader menu!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;!--more--&amp;gt;&lt;br /&gt;
==Equipment==&lt;br /&gt;
&lt;br /&gt;
* A Mac that uses EFI to boot. It is helpful, but not essential, to have OS X still installed.&lt;br /&gt;
* Two USB sticks, with at least 2GB capacity. One is for the OS X recovery disk, the other is for the Ubuntu installer.&lt;br /&gt;
* The Ubuntu 14.04 installer ISO image (both desktop and server installers should work, but I only tried the server installer). &amp;lt;strong&amp;gt;Do not use the &amp;lt;code&amp;gt;+mac&amp;lt;/code&amp;gt; variant.&amp;lt;/strong&amp;gt;&lt;br /&gt;
* Another machine, preferably also Ubuntu, from which you can &lt;br /&gt;
** make the installer USB drive,&lt;br /&gt;
** SSH into the new system, and&lt;br /&gt;
** ask for help if things go wrong.&lt;br /&gt;
* A monitor, keyboard and mouse (ie. don’t try for a headless install).&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;An internet connection for the new machine (preferably ethernet, not WiFi).&lt;br /&gt;
&lt;br /&gt;
==Disclaimer. Warning. Caution. Caveat.==&lt;br /&gt;
&lt;br /&gt;
{{warning|This process will wipe OS X and any other data you have on the machine. All of it! That’s the whole point. Make backups.}}&lt;br /&gt;
&lt;br /&gt;
I’m pretty sure this won’t brick a machine (ie. break it irrepairably). But only pretty sure. If all else fails, you should always be able to reinstall OS X from a recovery disk. But there might be subtle differences between machines that make it harder for you to back out if something goes wrong. Therefore, I really don’t recommend trying this unless you’re reasonably proficient with this sort of thing in general. So as a parallel to the equipment list above, here’s a checklist of concepts that shouldn’t phase you:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You should absolutely be comfortable working from a command line.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You should not be afraid to work from a GRUB command line.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You should understand how to identify disks on a live/installer system (ie. &lt;br /&gt;
be able to answer the question “is the internal hard drive &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt;?”)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You should understand disk partitioning (not the low level details, just that the general idea is).&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You should understand that when I use device names or numbers, such as &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;UUID=whatever&amp;lt;/code&amp;gt;, these may be different for your system.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, even though this process only takes a couple of hours, it took me &lt;br /&gt;
&amp;lt;em&amp;gt;weeks&amp;lt;/em&amp;gt; to figure it out. This means that if your system is different, you might &lt;br /&gt;
require a lot more time too. So you should be doing this on a machine that you &lt;br /&gt;
can afford to have out of action for a couple of days.&lt;br /&gt;
&lt;br /&gt;
==Preliminary Work in OS X==&lt;br /&gt;
&lt;br /&gt;
{{hint|If you still have OS X installed, this is a good time to create a [http://support.apple.com/kb/HT4848 recovery disk]. And also make those backups &lt;br /&gt;
I told you to make.}}&lt;br /&gt;
&lt;br /&gt;
===That Stupid Startup Noise===&lt;br /&gt;
&lt;br /&gt;
There is only one part of this process that requires starting from scratch if you forget it, and it’s this: turning off that stupid noise that the Mac makes &lt;br /&gt;
upon booting. Despite what you may read, on some systems it is impossible to adjust without OS X installed. Impossible. No, &amp;lt;code&amp;gt;nvram&amp;lt;/code&amp;gt; utilities won’t work. No, &amp;lt;code&amp;gt;efibootmgr&amp;lt;/code&amp;gt; won’t work. No, the OS X recovery disk won’t help. There is some extra, magical, inaccessible bit of state somewhere that keeps the stupid thing alive that &amp;lt;em&amp;gt;you can only control via a full install of OS X&amp;lt;/em&amp;gt;. So if you still have OS X installed, or you don’t mind reinstalling it just for this, do this:&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Open the &amp;lt;strong&amp;gt;System Settings&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Click on &amp;lt;strong&amp;gt;Sound&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Click on &amp;lt;strong&amp;gt;Output&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Select &amp;lt;strong&amp;gt;Internal Speakers&amp;lt;/strong&amp;gt; (“Type: Built-in”).&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Drag the slider all the way to the left.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;figure&amp;gt;&amp;lt;a href=&amp;quot;/trinkets/MacOSXVolume.png&amp;quot;&amp;gt;&amp;lt;img alt=&amp;quot;OS X Internal Speaker Volume&amp;quot; src=&amp;quot;/trinkets/MacOSXVolume.png&amp;quot; width=&amp;quot;670&amp;quot; height=&amp;quot;489&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
If you’re a real optimist, you could open a terminal, run &amp;lt;code&amp;gt;nvram -p&amp;lt;/code&amp;gt; and note &lt;br /&gt;
the value for &amp;lt;code&amp;gt;SystemAudioVolume&amp;lt;/code&amp;gt;. Mine was this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SystemAudioVolume       %80 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How To Boot From USB==&lt;br /&gt;
&lt;br /&gt;
This isn’t really a step, but it’s complicated enough to warrant its own section. You may need to refer to this a few times. The trick to booting from USB on Macs is to hold down the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; key while you press the power button to turn it on. Don’t have an &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; key? Use &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; &lt;br /&gt;
instead. &amp;lt;strong&amp;gt;Note:&amp;lt;/strong&amp;gt; I found that on some keyboards (eg. my non-bluetooth wireless keyboard), I needed to repeatedly tap the key until I saw the boot menu. Sometimes it was hit-and-miss, but it never took more than three power cycles to get it.&lt;br /&gt;
&lt;br /&gt;
Doing this should bring up the boot menu. Note that when I say “boot menu,” I don’t mean the GRUB/syslinux boot menu. I mean the Mac’s internal bootloader: it has a grey background, a drop-down menu at the bottom for configuring your internet connection, and a horizontal list of OS logos and descriptions.&lt;br /&gt;
&lt;br /&gt;
[[File:MacBootloader.jpg|center|800|I forgot to take a picture, so this is actually from a completely different machine than mine (hence the blurring of the hard drive label). But your Mac bootloader should look pretty much the same.]]&lt;br /&gt;
&lt;br /&gt;
If your USB drive is bootable, you’ll see one or two orange icons with the USB logo on them. For the Ubuntu installer they will probably be labelled “Windows” (just because) and “EFI boot”. You can use &amp;lt;code&amp;gt;→&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;←&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt; to select the thing to boot, or just click with the mouse.&lt;br /&gt;
&lt;br /&gt;
==Starting the Installer==&lt;br /&gt;
Create the installer USB drive using &amp;lt;strong&amp;gt;Startup Disk Creator&amp;lt;/strong&amp;gt;. You shouldn’t need extra (persistent) space on it. I used the server edition installer because I use my machine as a server. You might want to use the desktop installer. These instructions should work for either. Please leave a comment below if there are any discrepancies. &lt;br /&gt;
&lt;br /&gt;
Insert the installer USB drive, and power on the machine while holding &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;, as per the &amp;lt;a href=&amp;quot;#boot-from-usb&amp;quot;&amp;gt;boot from USB instructions&amp;lt;/a&amp;gt;. The grey screen of the bootloader might stay there for a while (perhaps 30s to a &lt;br /&gt;
minute) before it loads the available boot options. You should see the following options:&lt;br /&gt;
&lt;br /&gt;
* Macintosh HD (unless you’ve already wiped OS X)&lt;br /&gt;
* Windows&lt;br /&gt;
*EFI boot&lt;br /&gt;
&lt;br /&gt;
Use the arrow keys to select &amp;lt;strong&amp;gt;EFI boot&amp;lt;/strong&amp;gt; and press &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Installing Ubuntu==&lt;br /&gt;
For the server installer, you will be presented with a GRUB bootloader menu:&lt;br /&gt;
&lt;br /&gt;
[[File:Server-grub.png|center]]&lt;br /&gt;
&lt;br /&gt;
The desktop installer might not show you this; you might instead see a prettier menu with the option to '''Try Ubuntu''' or '''Install Ubuntu'''. In either case, select the '''Install''' option.&lt;br /&gt;
&lt;br /&gt;
You can breeze through the first few steps of the installer, the ones that just configure the installer environment and basic setup. However, you should '''stop when you get to partitioning.'''&lt;br /&gt;
&lt;br /&gt;
Specifically, the steps you can treat as normal are:&lt;br /&gt;
*Language/region/keyboard layout.&lt;br /&gt;
*Hardware detection, disk detection, loading installer components.&lt;br /&gt;
*Network detection and configuration.&lt;br /&gt;
*Hostname and user account setup.&lt;br /&gt;
*Home directory encryption (in case it wasn’t clear, you can enable this if you like, it won’t affect anything here).&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Time, date and time zone.&lt;br /&gt;
&lt;br /&gt;
Around this point, you should be expecting to see the partitioning menu. This is &lt;br /&gt;
where it can get a bit tricky.&lt;br /&gt;
&lt;br /&gt;
==Partitioning==&lt;br /&gt;
&lt;br /&gt;
As far as I can tell, you should actually be able to let this step go as per the defaults too. But I’ll tell you exactly what I did, just in case the defaults don’t allow you to follow the remaining steps.&lt;br /&gt;
&lt;br /&gt;
I got to a screen titled '''Partition disks''', which presented me with these &lt;br /&gt;
options:&lt;br /&gt;
*Guided - use entire disk&lt;br /&gt;
*Guided - use entire disk and set up LVM&lt;br /&gt;
*Guided - use entire disk and set up encrypted LVM&lt;br /&gt;
*Manual&lt;br /&gt;
&lt;br /&gt;
I selected '''Guided - use entire disk'''. When asked which disk I wanted to partition, I selected the only one available:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SCSI (0,0,0) (sda) - 500.1 GB ATA APPLE HDD HTS545 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Yours might be different, but it should be obvious which it is. Incidentally, this might be a good point to note down whether the installer sees your disk as &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; or some other &amp;lt;code&amp;gt;sdX&amp;lt;/code&amp;gt;. When you proceed, you’ll be shown the changes that will be made:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The partition tables of the following devices are changed: &lt;br /&gt;
SCSI (0,0,0) (sda) &lt;br /&gt;
&lt;br /&gt;
The following partitions are going to be formatted: &lt;br /&gt;
partition #1 of SCSI (0,0,0) (sda) as EFIboot &lt;br /&gt;
partition #2 of SCSI (0,0,0) (sda) as ext4 &lt;br /&gt;
partition #3 of SCSI (0,0,0) (sda) as swap &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This is the important thing:''' at the end of this step, there must be a partition that is listed as &amp;lt;code&amp;gt;EFIboot&amp;lt;/code&amp;gt;. As long as that exists, you should be fine to continue. The others probably don’t matter. If you see any partition labelled anything like '''BIOS legacy boot''' or '''bios-grub''', you might have missed a vital part of these instructions and are using the &amp;lt;code&amp;gt;+mac&amp;lt;/code&amp;gt; variant of the installer.&lt;br /&gt;
&lt;br /&gt;
Because I was doing this over and over again, I occasionally encountered a problem where the installer would be unable to format the EFIboot partition. If &lt;br /&gt;
this happens, try &amp;lt;a href=&amp;quot;#zero-the-drive&amp;quot;&amp;gt;zeroing the drive&amp;lt;/a&amp;gt; and start over. You may now proceed with the rest of the installation as usual. If you’re &lt;br /&gt;
installing a server, I strongly recommend installing the '''OpenSSH server''' task so that you can do the next few steps remotely.&lt;br /&gt;
Congratulations! You now have an unbootable Ubuntu system! Hooray!&lt;br /&gt;
&lt;br /&gt;
==The Manual Boot==&lt;br /&gt;
&lt;br /&gt;
Your new system is unbootable, but don’t despair! We’ll repair it and make it better than it would have been!&lt;br /&gt;
Firstly, when you reboot/power on your Mac, here’s what will probably happen: you will see the grey screen of the Mac bootloader for about 30s, and then a &lt;br /&gt;
gently flashing folder with a &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; inside. If you insert the installer USB now, it should boot. If not, try holding the power button to force the power off, and then follow the &amp;lt;a href=&amp;quot;#boot-from-usb&amp;quot;&amp;gt;USB booting instructions&amp;lt;/a&amp;gt; to bring it up. If you’re using the desktop installer, hold the shift key to bring up the GRUB bootloader menu. For the server installer, it should just come up automatically. &lt;br /&gt;
&lt;br /&gt;
To be absolutely clear, for &amp;lt;strong&amp;gt;both&amp;lt;/strong&amp;gt; the server and the desktop installer, you want to bring up a menu that looks like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Server-grub.png&amp;quot;|center]]&lt;br /&gt;
&lt;br /&gt;
The entries may be different, but that’s what the GRUB menu looks like. Don’t select any of the entries; instead, press &amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; to bring up the GRUB console. Now you should be looking at a GRUB console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Finding Your Installation’s Drive===&lt;br /&gt;
&lt;br /&gt;
At the GRUB console, do:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; ls &lt;br /&gt;
(memdisk) (hd0) (hd0,msdos) (hd1) (hd2) (hd2,gpt3) (hd2,gpt2) (hd2,gpt1) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may not get exactly the same results as this, but you’ll have some similar options. You want to look for your new installation, &amp;lt;strong&amp;gt;not&amp;lt;/strong&amp;gt; the installer/live system. I suggest finding a partition with your new user’s home directory on it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; ls (hd2,gpt2)/home&lt;br /&gt;
jason/ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keep trying this pattern until you find it.&lt;br /&gt;
&lt;br /&gt;
===Finding Your Installation’s Boot Partition===&lt;br /&gt;
&lt;br /&gt;
The result from the last step has two parts: &amp;lt;code&amp;gt;(hdX,gptY)&amp;lt;/code&amp;gt;. You need to keep the &lt;br /&gt;
&amp;lt;code&amp;gt;hdX&amp;lt;/code&amp;gt; part, but go through all the &amp;lt;code&amp;gt;gptY&amp;lt;/code&amp;gt; options looking for a &amp;lt;code&amp;gt;/boot/grub&amp;lt;/code&amp;gt; &lt;br /&gt;
directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; ls (hd2,gpt1)/boot/grub &lt;br /&gt;
error: file `/boot/grub' not found.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nope, not that one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; ls (hd2,gpt2)/boot/grub &lt;br /&gt;
unicode.pf2 [...] grub.cfg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Found it!&lt;br /&gt;
Now you want to set this as your root for further commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; set root=(hd2,gpt2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Figuring Out the Boot Command===&lt;br /&gt;
&lt;br /&gt;
I found that the &amp;lt;em&amp;gt;only&amp;lt;/em&amp;gt; way to boot properly was to use the UUID of the drive (ie. no shortcuts with &amp;lt;code&amp;gt;/dev/sdaX&amp;lt;/code&amp;gt;!) - so let’s get that:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; ls -l (hd2,gpt2) &lt;br /&gt;
Partition hd2,gpt2: Filesystem type ext* 〈...snip...〉 UUID e86c20b9-83e1-447d-a3be-d1ddaad6c4c6 - Partition start at [...] &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Note the UUID string!&amp;lt;/strong&amp;gt; Yours will be different. Now tell GRUB where Linux is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; linux /boot/vmlinuz〈...tab here!...〉.efi.signed root=UUID=〈the UUID from above〉&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The GRUB console can do &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt; completion, so if you just type out the &amp;lt;code&amp;gt;vmlinuz&amp;lt;/code&amp;gt; part and hit &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, then hit &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt; again… you won’t have to type out the whole filename. But do make sure the &amp;lt;code&amp;gt;.efi.signed&amp;lt;/code&amp;gt; bit is there! And yes, you will have to type out that whole UUID.&lt;br /&gt;
&lt;br /&gt;
Now set the &amp;lt;code&amp;gt;initrd&amp;lt;/code&amp;gt; (initial RAM disk):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; initrd /boot/initrd〈...tab here!...〉 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Booting===&lt;br /&gt;
Type:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; boot &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should find yourself booted into your installation!&lt;br /&gt;
&lt;br /&gt;
==Fixing the EFI Partition==&lt;br /&gt;
So why is the system unbootable? The problem is that the Mac bootloader expects &lt;br /&gt;
the EFI partition to be formatted as HFS+, the typical Mac filesystem. It also &lt;br /&gt;
expects certain files to be present. The Ubuntu installer actually formats it as &lt;br /&gt;
VFAT and doesn’t create the files that are necessary for booting on a Mac.&lt;br /&gt;
&lt;br /&gt;
===Install Extra Packages===&lt;br /&gt;
&lt;br /&gt;
The first thing you’ll need to do is add my PPA and install some extra utilities. Fire up a command line and enter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo add-apt-repository ppa:detly/mactel-utils &lt;br /&gt;
[...] &lt;br /&gt;
Utilities for Intel based Macs (eg. recent MacBooks, Mac Minis). Includes a &lt;br /&gt;
fan control (macfanctld) and the HFS &amp;quot;bless&amp;quot; utility. &lt;br /&gt;
More info: &lt;br /&gt;
https://launchpad.net/~detly/+archive/ubuntu/mactel-utils&lt;br /&gt;
Press [ENTER] to continue or ctrl-c to cancel adding it &lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;ref&amp;gt;[https://launchpad.net/~detly/+archive/ubuntu/mactel-utils Reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt; to add the PPA. Then update your package list and install the &lt;br /&gt;
necessary utilities:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get update &lt;br /&gt;
$ sudo apt-get install mactel-boot hfsprogs gdisk grub-efi-amd64 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reformatting the EFI Partition===&lt;br /&gt;
Firstly, make sure you’ve actually got an EFI partition. Run &amp;lt;code&amp;gt;mount&amp;lt;/code&amp;gt; to get a list of mounted filesystems, and look for anything mounted at &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mount &lt;br /&gt;
[...] &lt;br /&gt;
/dev/sda1 on /boot/efi type vfat (rw) &lt;br /&gt;
[...] &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For me, it’s &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt;. If there is no entry for &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt; by &lt;br /&gt;
itself doesn’t count), you are probably running in legacy BIOS mode. So, let’s unmount it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo umount /dev/sda1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now use &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; to delete the VFAT partition and create an HFS+ one. &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; &lt;br /&gt;
is interactive, and doesn’t write changes to the disk until you tell it to, so &lt;br /&gt;
don’t panic if you make a mistake.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo gdisk /dev/sda &lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8 &lt;br /&gt;
&lt;br /&gt;
Partition table scan: &lt;br /&gt;
MBR: hybrid &lt;br /&gt;
BSD: not present &lt;br /&gt;
APM: not present &lt;br /&gt;
GPT: present &lt;br /&gt;
&lt;br /&gt;
Found valid GPT with hybrid MBR; using GPT. &lt;br /&gt;
&lt;br /&gt;
Command (? for help): &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You &amp;lt;strong&amp;gt;must&amp;lt;/strong&amp;gt; see the &amp;lt;code&amp;gt;GPT: present&amp;lt;/code&amp;gt; line. The &amp;lt;code&amp;gt;MBR: hybrid&amp;lt;/code&amp;gt; line is optional. If you’re not using a &amp;lt;code&amp;gt;GPT&amp;lt;/code&amp;gt; (GUID partition table)… well, I don’t know what kind of machine you’re using there. Print the partition table and confirm that the first partition has type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command (? for help): p &lt;br /&gt;
Disk /dev/sda: 976773168 sectors, 465.8 GiB &lt;br /&gt;
Logical sector size: 512 bytes &lt;br /&gt;
Disk identifier (GUID): 717BD65E-A514-4FD9-A4A7-1BE01C2F31E0 &lt;br /&gt;
Partition table holds up to 128 entries &lt;br /&gt;
First usable sector is 34, last usable sector is 976773134 &lt;br /&gt;
Partitions will be aligned on 2048-sector boundaries &lt;br /&gt;
Total free space is 4077 sectors (2.0 MiB) &lt;br /&gt;
&lt;br /&gt;
Number  Start (sector)    End (sector)  Size       Code  Name &lt;br /&gt;
1            2048          194559   94.0 MiB    EF00 &lt;br /&gt;
2          194560       968574975   461.8 GiB   8300 &lt;br /&gt;
3       968574976       976771071   3.9 GiB     8200 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The other details aren’t really important, but we definitely expect the device &lt;br /&gt;
associated with &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; (from the output of &amp;lt;code&amp;gt;mount&amp;lt;/code&amp;gt;) to match the numbering &lt;br /&gt;
here (ie. if &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; was &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt;, the &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt; partition should be #1).&lt;br /&gt;
Now we delete that &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt; partition:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command (? for help): d &lt;br /&gt;
Partition number (1-3): 1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
…and create a new HFS+ one in its place:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command (? for help): n &lt;br /&gt;
Partition number (1-128, default 1): 1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just press &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt; for the first and last sector options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
First sector (34-976773134, default = 2048) or {+-}size{KMGTP}: &lt;br /&gt;
Last sector (2048-194559, default = 194559) or {+-}size{KMGTP}: &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
…but enter &amp;lt;code&amp;gt;AF00&amp;lt;/code&amp;gt; for the filesystem code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Current type is 'Linux filesystem' &lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): AF00 &lt;br /&gt;
Changed type of partition to 'Apple HFS/HFS+' &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we’re ready to write the changes. Use the &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; command to double-check your &lt;br /&gt;
changes, and then &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; to write:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command (? for help): w &lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING &lt;br /&gt;
PARTITIONS!! &lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): Y &lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sda. &lt;br /&gt;
Warning: The kernel is still using the old partition table. &lt;br /&gt;
The new table will be used at the next reboot. &lt;br /&gt;
The operation has completed successfully. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have an unformatted HFS+ partition. We can format it with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkfs.hfsplus /dev/sda1 -v Ubuntu &lt;br /&gt;
Initialized /dev/sda1 as a 94 MB HFS Plus volume &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating the Filesystem Table===&lt;br /&gt;
&lt;br /&gt;
For system partitions (eg. &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;) Ubuntu uses the UUID &lt;br /&gt;
(universally unique identifier) of a disk partition to mount it (rather than &lt;br /&gt;
the device node, eg. &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt;). This means we need to update &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;$ sudoedit /etc/fstab &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will launch the &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt; text editor. Look the two lines that &lt;br /&gt;
refers to &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;# /boot/efi was on /dev/sda1 during installation &lt;br /&gt;
UUID=C59D-1B30  /boot/efi       vfat    defaults        0       1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;↓&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;↑&amp;lt;/code&amp;gt; to position the cursor at the start of these lines and hit &lt;br /&gt;
&amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; to delete them. Run this to add the necessary entries:&amp;lt;pre&amp;gt;$ sudo bash -c 'echo $(blkid -o export -s UUID /dev/sda1) /boot/efi auto defaults 0 0 &amp;gt;&amp;gt; /etc/fstab' &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Test it out by remounting &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;$ sudo mount /boot/efi &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you shouldn’t use extra options here. If it doesn’t work from that &lt;br /&gt;
command alone, it means your &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; entry is wrong.&lt;br /&gt;
&lt;br /&gt;
===Installing GRUB===&lt;br /&gt;
&lt;br /&gt;
Now we’ll reinstall GRUB so it can use the newly formatted HFS+ partition for &lt;br /&gt;
its EFI data. Since Mike Hommey wrote his instructions, GRUB has actually been &lt;br /&gt;
updated to work with HFS+ partitions, so there’s no need to hack the installer &lt;br /&gt;
any more (good thing too, since it’s now a C program, not a shell script).&lt;br /&gt;
First, create the necessary directory on the EFI partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkdir -p &amp;quot;/boot/efi/EFI/$(lsb_release -ds)/&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$(lsb_release -ds)&amp;lt;/code&amp;gt; part automatically produces a label for the &lt;br /&gt;
distribution like &amp;lt;code&amp;gt;Ubuntu 14.04.1 LTS&amp;lt;/code&amp;gt;.&lt;br /&gt;
Now, there’s a &amp;lt;a href=&amp;quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=716927#20&amp;quot;&amp;gt;bug in GRUB&amp;lt;/a&amp;gt; &lt;br /&gt;
that means that on HFS+ it requires a file named &amp;lt;code&amp;gt;mach_kernel&amp;lt;/code&amp;gt; to exist in a &lt;br /&gt;
particular place before it runs. In fact, it’s really the Mac bootloader that &lt;br /&gt;
requires this file, but GRUB seems to look for it in the wrong place and refuses &lt;br /&gt;
to run if it’s not there, so we need to create it twice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo bash -c 'echo &amp;quot;This file is required for booting&amp;quot; &amp;gt; &amp;quot;/boot/efi/EFI/$(lsb_release -ds)/mach_kernel&amp;quot;' &lt;br /&gt;
$ sudo bash -c 'echo &amp;quot;This file is required for booting&amp;quot; &amp;gt; /boot/efi/mach_kernel' &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to install GRUB, and we need to be a bit explicit about where it &lt;br /&gt;
should put its files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo grub-install --target x86_64-efi --boot-directory=/boot --efi-directory=/boot/efi --bootloader-id=&amp;quot;$(lsb_release -ds)&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final step is to “bless” the bootloader code, so that the Mac bootloader &lt;br /&gt;
will boot it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo hfs-bless &amp;quot;/boot/efi/EFI/$(lsb_release -ds)/System/Library/CoreServices/boot.efi&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;The system should now be bootable!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should reboot your system (&amp;lt;code&amp;gt;sudo reboot&amp;lt;/code&amp;gt;) to see if it boots straight into your new Ubuntu installation. '''Note''' that there will still be that delay at the Mac boot screen (the light grey one). But the system will still boot, and we can get rid of that delay later. You might also like to &amp;lt;a href=&amp;quot;#boot-from-usb&amp;quot;&amp;gt;bring up the boot menu&amp;lt;/a&amp;gt; to see what the Ubuntu entry looks like. At this point it should have the correct label (“Ubuntu &lt;br /&gt;
14.04.1 LTS…”), but the icon will be a plain grey hard drive.&lt;br /&gt;
&lt;br /&gt;
===Replacing the Bootloader Icon===&lt;br /&gt;
&lt;br /&gt;
Simply do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install mactel-boot-logo &lt;br /&gt;
$ sudo cp /usr/share/mactel-boot-logo/ubuntu.icns /boot/efi/.VolumeIcon.icns &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now when you reboot, if you bring up the Mac boot menu, you should see the familiar Ubuntu logo!&amp;lt;figure&amp;gt;&amp;lt;a href=&amp;quot;/trinkets/MacBootloaderUbuntu.jpg&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;/trinkets/MacBootloaderUbuntu.jpg&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;438&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Removing the Boot Delay==&lt;br /&gt;
&lt;br /&gt;
The boot delay is caused by a couple of things:&lt;br /&gt;
&lt;br /&gt;
* The bootloader firmware might still have old entries in it, with the default set to something that doesn’t exist.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The bootloader itself has a timeout that can be changed, and it defaults to 5s.&lt;br /&gt;
&lt;br /&gt;
This can be managed with the &amp;lt;code&amp;gt;efibootmgr&amp;lt;/code&amp;gt; utility. If you run it without arguments, you’ll see all the settings I mentioned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo efibootmgr &lt;br /&gt;
BootCurrent: 0000 &lt;br /&gt;
Timeout: 5 seconds &lt;br /&gt;
BootOrder: 0080 &lt;br /&gt;
Boot0000* ubuntu &lt;br /&gt;
Boot0001* Ubuntu 14.04.1 LTS &lt;br /&gt;
Boot0080* Mac OS X &lt;br /&gt;
BootFFFF* &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In my case, the timeout was set to 5s, the default boot was set to an entry that no longer exists, and there was still an old OS X entry. This will get rid of the built-in timeout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo efibootmgr -t 0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This gets rid of the extra entries (&amp;lt;em&amp;gt;note that your numbers might be different!&amp;lt;/em&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo efibootmgr -b 0000 -B &lt;br /&gt;
$ sudo efibootmgr -b 0080 -B &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets the default entry (&amp;lt;em&amp;gt;again, the number here might be different for you&amp;lt;/em&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo efibootmgr -o 0001 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
…and now, when you reboot, it should be significantly faster.&lt;br /&gt;
&lt;br /&gt;
{{note|When I initially searched for a fix for this, I read a lot of posts claiming that using the OS X recovery disk to bless the partition would do the trick. But as far as I can tell, this has no effect, so don’t panic if you don’t have a recovery disk.|subject=Note #1}}&lt;br /&gt;
&lt;br /&gt;
{{note|I am not talking about the usual GRUB delay here. In theory, this can be changed by editing &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt; and setting all the timeout values to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;. However, [https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1273764 bug #1273764] stops this from working, so use [https://gist.github.com/LeahCim/9332432 LeahCim’s extra GRUB scripts] to fix it.|subject=Note #2}}&lt;br /&gt;
&lt;br /&gt;
==You’re Done!==&lt;br /&gt;
&lt;br /&gt;
That should be it. You should now have a system that boots straight into Ubuntu, &lt;br /&gt;
no delay, giving you access to all the EFI goodness.&lt;br /&gt;
&lt;br /&gt;
==Zeroing the Hard Drive==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;This is not a step!&amp;lt;/strong&amp;gt; It’s just here in case things go so wrong you don’t know what to do. Hopefully you won’t need this bit, but you may find that the installer partitioner isn’t working as expected, or maybe you’ve tried a load of different things and you want a clean slate. You could reinstall OS X, but that takes time and data. In most cases, I found that zeroing out the start of the drive was enough to get rid of any bad state &lt;br /&gt;
that was interfering with the process.&lt;br /&gt;
&lt;br /&gt;
Boot off the Ubuntu installer USB drive, but don’t select &amp;lt;strong&amp;gt;Install Ubuntu&amp;lt;/strong&amp;gt;. Instead, use the &amp;lt;strong&amp;gt;Rescue a broken system&amp;lt;/strong&amp;gt; option.&lt;br /&gt;
Go through the keyboard detection, but don’t bother with anything else — as soon as you see a &amp;lt;code&amp;gt;&amp;lt;go back&amp;gt;&amp;lt;/code&amp;gt; option, use that to get to the rescue menu. Select &amp;lt;strong&amp;gt;Execute a shell in the installer environment&amp;lt;/strong&amp;gt;, and you’ll be presented with a prompt that’s just a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; (ie. root access). Assuming your hard drive is &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt;, this command will zero out the first GB of the hard drive. That should cover the master boot record (MBR), the GUID partition table (GPT), and any other magic that interferes with partition/OS detection:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dd if=/dev/zero of=/dev/sda bs=16M count=64 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will &amp;lt;strong&amp;gt;not&amp;lt;/strong&amp;gt; touch the Mac’s internal bootloader firmware, nor will it reset any nvram variables such as the internal speaker volume.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]][[Category:iMac]][[Category:EFI Boot]]{{keywords|linux,iMac,boot,partitioning,EFI boot}}{{description}}{{ogmeta}}&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image-width&amp;diff=193</id>
		<title>Property:Meta element og-image-width</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image-width&amp;diff=193"/>
		<updated>2020-11-03T16:06:46Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;Has type::Number&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Has type::Number]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image-height&amp;diff=192</id>
		<title>Property:Meta element og-image-height</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image-height&amp;diff=192"/>
		<updated>2020-11-03T16:06:15Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;Has type::Number&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Has type::Number]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Pure_Linux_iMac_Boot&amp;diff=191</id>
		<title>Pure Linux iMac Boot</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Pure_Linux_iMac_Boot&amp;diff=191"/>
		<updated>2020-11-03T16:02:49Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: /* Zeroing the Hard Drive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I recently bought a Mac Mini 6,1 (late 2012 model) to replace the giant tower PC &lt;br /&gt;
I was using as a household server. Oddly enough for an Apple product, out of all &lt;br /&gt;
the small-form-factor PCs around with a decent amount of power, it was by far &lt;br /&gt;
the cheapest.&lt;br /&gt;
When I installed Ubuntu Saucy (13.10), I was initially faced with an unbootable &lt;br /&gt;
system, which I eventually got to work. When Ubunty Trusty (14.04) came out I &lt;br /&gt;
was hoping things would go better. Sure enough, there was a &amp;lt;code&amp;gt;+mac&amp;lt;/code&amp;gt; variant &lt;br /&gt;
installer available (buried behind several download pages), but ths used legacy &lt;br /&gt;
BIOS booting. The non &amp;lt;code&amp;gt;+mac&amp;lt;/code&amp;gt; variant simply gave me an unbootable system again.&lt;br /&gt;
This wasn’t good enough for me! I used [http://glandium.org/blog/?p=2830 Mike Hommey’s Debian EFI boot instructions], &lt;br /&gt;
and adapted them for recent Ubuntu systems. The result was a Mac Mini that would &lt;br /&gt;
boot Ubuntu Trusty in pure EFI mode, with no rEFInd and no OS X, and with an &lt;br /&gt;
Ubuntu entry in the Mac’s bootloader menu.&lt;br /&gt;
Thank you Mike. They were excellent instructions.&lt;br /&gt;
Note that I’ve only applied this process to my situation: single-booting Ubuntu &lt;br /&gt;
Trusty (14.04.1) on a Mac Mini 6,1. If you’re knowledgeable enough, you should &lt;br /&gt;
be able to use this to dual/multi-boot, or boot other Linux distros, or use &lt;br /&gt;
other Mac devices. But I haven’t tried any of that myself, so be prepared for &lt;br /&gt;
some surprises.&lt;br /&gt;
&lt;br /&gt;
==Why EFI? Why Not rEFInd?==&lt;br /&gt;
Because I can. Because of aesthetics. Because I’m an engineer, and if there’s a &lt;br /&gt;
simpler way to make something work, I’ll try to find it.&lt;br /&gt;
If the legacy BIOS boot mode works for you, and you don’t want any fuss, use it! &lt;br /&gt;
If rEFInd works for you, use it! These instructions are for people who just want &lt;br /&gt;
to try it out, or perhaps for installer developers who want a starting point for &lt;br /&gt;
a more general process.&lt;br /&gt;
Are there any benefits at all then? Sure:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;I couldn’t actually figure out how to install rEFInd without keeping OS X &lt;br /&gt;
installed, which meant giving over about 100GB of my 500GB drive to it. No &lt;br /&gt;
thanks.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Mac bootloader firmware seems to boot about 30s faster.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You have access to various EFI-related utilities.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You can make yourself a pretty Ubuntu entry in the bootloader menu!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;!--more--&amp;gt;&lt;br /&gt;
==Equipment==&lt;br /&gt;
&lt;br /&gt;
* A Mac that uses EFI to boot. It is helpful, but not essential, to have OS X still installed.&lt;br /&gt;
* Two USB sticks, with at least 2GB capacity. One is for the OS X recovery disk, the other is for the Ubuntu installer.&lt;br /&gt;
* The Ubuntu 14.04 installer ISO image (both desktop and server installers should work, but I only tried the server installer). &amp;lt;strong&amp;gt;Do not use the &amp;lt;code&amp;gt;+mac&amp;lt;/code&amp;gt; variant.&amp;lt;/strong&amp;gt;&lt;br /&gt;
* Another machine, preferably also Ubuntu, from which you can &lt;br /&gt;
** make the installer USB drive,&lt;br /&gt;
** SSH into the new system, and&lt;br /&gt;
** ask for help if things go wrong.&lt;br /&gt;
* A monitor, keyboard and mouse (ie. don’t try for a headless install).&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;An internet connection for the new machine (preferably ethernet, not WiFi).&lt;br /&gt;
&lt;br /&gt;
==Disclaimer. Warning. Caution. Caveat.==&lt;br /&gt;
&lt;br /&gt;
{{warning|This process will wipe OS X and any other data you have on the machine. All of it! That’s the whole point. Make backups.}}&lt;br /&gt;
&lt;br /&gt;
I’m pretty sure this won’t brick a machine (ie. break it irrepairably). But only pretty sure. If all else fails, you should always be able to reinstall OS X from a recovery disk. But there might be subtle differences between machines that make it harder for you to back out if something goes wrong. Therefore, I really don’t recommend trying this unless you’re reasonably proficient with this sort of thing in general. So as a parallel to the equipment list above, here’s a checklist of concepts that shouldn’t phase you:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You should absolutely be comfortable working from a command line.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You should not be afraid to work from a GRUB command line.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You should understand how to identify disks on a live/installer system (ie. &lt;br /&gt;
be able to answer the question “is the internal hard drive &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt;?”)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You should understand disk partitioning (not the low level details, just that the general idea is).&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You should understand that when I use device names or numbers, such as &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;UUID=whatever&amp;lt;/code&amp;gt;, these may be different for your system.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, even though this process only takes a couple of hours, it took me &lt;br /&gt;
&amp;lt;em&amp;gt;weeks&amp;lt;/em&amp;gt; to figure it out. This means that if your system is different, you might &lt;br /&gt;
require a lot more time too. So you should be doing this on a machine that you &lt;br /&gt;
can afford to have out of action for a couple of days.&lt;br /&gt;
&lt;br /&gt;
==Preliminary Work in OS X==&lt;br /&gt;
&lt;br /&gt;
{{hint|If you still have OS X installed, this is a good time to create a [http://support.apple.com/kb/HT4848 recovery disk]. And also make those backups &lt;br /&gt;
I told you to make.}}&lt;br /&gt;
&lt;br /&gt;
===That Stupid Startup Noise===&lt;br /&gt;
&lt;br /&gt;
There is only one part of this process that requires starting from scratch if you forget it, and it’s this: turning off that stupid noise that the Mac makes &lt;br /&gt;
upon booting. Despite what you may read, on some systems it is impossible to adjust without OS X installed. Impossible. No, &amp;lt;code&amp;gt;nvram&amp;lt;/code&amp;gt; utilities won’t work. No, &amp;lt;code&amp;gt;efibootmgr&amp;lt;/code&amp;gt; won’t work. No, the OS X recovery disk won’t help. There is some extra, magical, inaccessible bit of state somewhere that keeps the stupid thing alive that &amp;lt;em&amp;gt;you can only control via a full install of OS X&amp;lt;/em&amp;gt;. So if you still have OS X installed, or you don’t mind reinstalling it just for this, do this:&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Open the &amp;lt;strong&amp;gt;System Settings&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Click on &amp;lt;strong&amp;gt;Sound&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Click on &amp;lt;strong&amp;gt;Output&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Select &amp;lt;strong&amp;gt;Internal Speakers&amp;lt;/strong&amp;gt; (“Type: Built-in”).&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Drag the slider all the way to the left.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;figure&amp;gt;&amp;lt;a href=&amp;quot;/trinkets/MacOSXVolume.png&amp;quot;&amp;gt;&amp;lt;img alt=&amp;quot;OS X Internal Speaker Volume&amp;quot; src=&amp;quot;/trinkets/MacOSXVolume.png&amp;quot; width=&amp;quot;670&amp;quot; height=&amp;quot;489&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
If you’re a real optimist, you could open a terminal, run &amp;lt;code&amp;gt;nvram -p&amp;lt;/code&amp;gt; and note &lt;br /&gt;
the value for &amp;lt;code&amp;gt;SystemAudioVolume&amp;lt;/code&amp;gt;. Mine was this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SystemAudioVolume       %80 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How To Boot From USB==&lt;br /&gt;
&lt;br /&gt;
This isn’t really a step, but it’s complicated enough to warrant its own section. You may need to refer to this a few times. The trick to booting from USB on Macs is to hold down the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; key while you press the power button to turn it on. Don’t have an &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; key? Use &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; &lt;br /&gt;
instead. &amp;lt;strong&amp;gt;Note:&amp;lt;/strong&amp;gt; I found that on some keyboards (eg. my non-bluetooth wireless keyboard), I needed to repeatedly tap the key until I saw the boot menu. Sometimes it was hit-and-miss, but it never took more than three power cycles to get it.&lt;br /&gt;
&lt;br /&gt;
Doing this should bring up the boot menu. Note that when I say “boot menu,” I don’t mean the GRUB/syslinux boot menu. I mean the Mac’s internal bootloader: it has a grey background, a drop-down menu at the bottom for configuring your internet connection, and a horizontal list of OS logos and descriptions.&lt;br /&gt;
&lt;br /&gt;
[[File:MacBootloader.jpg|center|800|I forgot to take a picture, so this is actually from a completely different machine than mine (hence the blurring of the hard drive label). But your Mac bootloader should look pretty much the same.]]&lt;br /&gt;
&lt;br /&gt;
If your USB drive is bootable, you’ll see one or two orange icons with the USB logo on them. For the Ubuntu installer they will probably be labelled “Windows” (just because) and “EFI boot”. You can use &amp;lt;code&amp;gt;→&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;←&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt; to select the thing to boot, or just click with the mouse.&lt;br /&gt;
&lt;br /&gt;
==Starting the Installer==&lt;br /&gt;
Create the installer USB drive using &amp;lt;strong&amp;gt;Startup Disk Creator&amp;lt;/strong&amp;gt;. You shouldn’t need extra (persistent) space on it. I used the server edition installer because I use my machine as a server. You might want to use the desktop installer. These instructions should work for either. Please leave a comment below if there are any discrepancies. &lt;br /&gt;
&lt;br /&gt;
Insert the installer USB drive, and power on the machine while holding &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;, as per the &amp;lt;a href=&amp;quot;#boot-from-usb&amp;quot;&amp;gt;boot from USB instructions&amp;lt;/a&amp;gt;. The grey screen of the bootloader might stay there for a while (perhaps 30s to a &lt;br /&gt;
minute) before it loads the available boot options. You should see the following options:&lt;br /&gt;
&lt;br /&gt;
* Macintosh HD (unless you’ve already wiped OS X)&lt;br /&gt;
* Windows&lt;br /&gt;
*EFI boot&lt;br /&gt;
&lt;br /&gt;
Use the arrow keys to select &amp;lt;strong&amp;gt;EFI boot&amp;lt;/strong&amp;gt; and press &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Installing Ubuntu==&lt;br /&gt;
For the server installer, you will be presented with a GRUB bootloader menu:&lt;br /&gt;
&lt;br /&gt;
[[File:Server-grub.png|center]]&lt;br /&gt;
&lt;br /&gt;
The desktop installer might not show you this; you might instead see a prettier menu with the option to '''Try Ubuntu''' or '''Install Ubuntu'''. In either case, select the '''Install''' option.&lt;br /&gt;
&lt;br /&gt;
You can breeze through the first few steps of the installer, the ones that just configure the installer environment and basic setup. However, you should '''stop when you get to partitioning.'''&lt;br /&gt;
&lt;br /&gt;
Specifically, the steps you can treat as normal are:&lt;br /&gt;
*Language/region/keyboard layout.&lt;br /&gt;
*Hardware detection, disk detection, loading installer components.&lt;br /&gt;
*Network detection and configuration.&lt;br /&gt;
*Hostname and user account setup.&lt;br /&gt;
*Home directory encryption (in case it wasn’t clear, you can enable this if you like, it won’t affect anything here).&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Time, date and time zone.&lt;br /&gt;
&lt;br /&gt;
Around this point, you should be expecting to see the partitioning menu. This is &lt;br /&gt;
where it can get a bit tricky.&lt;br /&gt;
&lt;br /&gt;
==Partitioning==&lt;br /&gt;
&lt;br /&gt;
As far as I can tell, you should actually be able to let this step go as per the defaults too. But I’ll tell you exactly what I did, just in case the defaults don’t allow you to follow the remaining steps.&lt;br /&gt;
&lt;br /&gt;
I got to a screen titled '''Partition disks''', which presented me with these &lt;br /&gt;
options:&lt;br /&gt;
*Guided - use entire disk&lt;br /&gt;
*Guided - use entire disk and set up LVM&lt;br /&gt;
*Guided - use entire disk and set up encrypted LVM&lt;br /&gt;
*Manual&lt;br /&gt;
&lt;br /&gt;
I selected '''Guided - use entire disk'''. When asked which disk I wanted to partition, I selected the only one available:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SCSI (0,0,0) (sda) - 500.1 GB ATA APPLE HDD HTS545 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Yours might be different, but it should be obvious which it is. Incidentally, this might be a good point to note down whether the installer sees your disk as &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; or some other &amp;lt;code&amp;gt;sdX&amp;lt;/code&amp;gt;. When you proceed, you’ll be shown the changes that will be made:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The partition tables of the following devices are changed: &lt;br /&gt;
SCSI (0,0,0) (sda) &lt;br /&gt;
&lt;br /&gt;
The following partitions are going to be formatted: &lt;br /&gt;
partition #1 of SCSI (0,0,0) (sda) as EFIboot &lt;br /&gt;
partition #2 of SCSI (0,0,0) (sda) as ext4 &lt;br /&gt;
partition #3 of SCSI (0,0,0) (sda) as swap &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This is the important thing:''' at the end of this step, there must be a partition that is listed as &amp;lt;code&amp;gt;EFIboot&amp;lt;/code&amp;gt;. As long as that exists, you should be fine to continue. The others probably don’t matter. If you see any partition labelled anything like '''BIOS legacy boot''' or '''bios-grub''', you might have missed a vital part of these instructions and are using the &amp;lt;code&amp;gt;+mac&amp;lt;/code&amp;gt; variant of the installer.&lt;br /&gt;
&lt;br /&gt;
Because I was doing this over and over again, I occasionally encountered a problem where the installer would be unable to format the EFIboot partition. If &lt;br /&gt;
this happens, try &amp;lt;a href=&amp;quot;#zero-the-drive&amp;quot;&amp;gt;zeroing the drive&amp;lt;/a&amp;gt; and start over. You may now proceed with the rest of the installation as usual. If you’re &lt;br /&gt;
installing a server, I strongly recommend installing the '''OpenSSH server''' task so that you can do the next few steps remotely.&lt;br /&gt;
Congratulations! You now have an unbootable Ubuntu system! Hooray!&lt;br /&gt;
&lt;br /&gt;
==The Manual Boot==&lt;br /&gt;
&lt;br /&gt;
Your new system is unbootable, but don’t despair! We’ll repair it and make it better than it would have been!&lt;br /&gt;
Firstly, when you reboot/power on your Mac, here’s what will probably happen: you will see the grey screen of the Mac bootloader for about 30s, and then a &lt;br /&gt;
gently flashing folder with a &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; inside. If you insert the installer USB now, it should boot. If not, try holding the power button to force the power off, and then follow the &amp;lt;a href=&amp;quot;#boot-from-usb&amp;quot;&amp;gt;USB booting instructions&amp;lt;/a&amp;gt; to bring it up. If you’re using the desktop installer, hold the shift key to bring up the GRUB bootloader menu. For the server installer, it should just come up automatically. &lt;br /&gt;
&lt;br /&gt;
To be absolutely clear, for &amp;lt;strong&amp;gt;both&amp;lt;/strong&amp;gt; the server and the desktop installer, you want to bring up a menu that looks like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Server-grub.png&amp;quot;|center]]&lt;br /&gt;
&lt;br /&gt;
The entries may be different, but that’s what the GRUB menu looks like. Don’t select any of the entries; instead, press &amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; to bring up the GRUB console. Now you should be looking at a GRUB console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Finding Your Installation’s Drive===&lt;br /&gt;
&lt;br /&gt;
At the GRUB console, do:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; ls &lt;br /&gt;
(memdisk) (hd0) (hd0,msdos) (hd1) (hd2) (hd2,gpt3) (hd2,gpt2) (hd2,gpt1) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may not get exactly the same results as this, but you’ll have some similar options. You want to look for your new installation, &amp;lt;strong&amp;gt;not&amp;lt;/strong&amp;gt; the installer/live system. I suggest finding a partition with your new user’s home directory on it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; ls (hd2,gpt2)/home&lt;br /&gt;
jason/ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keep trying this pattern until you find it.&lt;br /&gt;
&lt;br /&gt;
===Finding Your Installation’s Boot Partition===&lt;br /&gt;
&lt;br /&gt;
The result from the last step has two parts: &amp;lt;code&amp;gt;(hdX,gptY)&amp;lt;/code&amp;gt;. You need to keep the &lt;br /&gt;
&amp;lt;code&amp;gt;hdX&amp;lt;/code&amp;gt; part, but go through all the &amp;lt;code&amp;gt;gptY&amp;lt;/code&amp;gt; options looking for a &amp;lt;code&amp;gt;/boot/grub&amp;lt;/code&amp;gt; &lt;br /&gt;
directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; ls (hd2,gpt1)/boot/grub &lt;br /&gt;
error: file `/boot/grub' not found.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nope, not that one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; ls (hd2,gpt2)/boot/grub &lt;br /&gt;
unicode.pf2 [...] grub.cfg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Found it!&lt;br /&gt;
Now you want to set this as your root for further commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; set root=(hd2,gpt2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Figuring Out the Boot Command===&lt;br /&gt;
&lt;br /&gt;
I found that the &amp;lt;em&amp;gt;only&amp;lt;/em&amp;gt; way to boot properly was to use the UUID of the drive (ie. no shortcuts with &amp;lt;code&amp;gt;/dev/sdaX&amp;lt;/code&amp;gt;!) - so let’s get that:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; ls -l (hd2,gpt2) &lt;br /&gt;
Partition hd2,gpt2: Filesystem type ext* 〈...snip...〉 UUID e86c20b9-83e1-447d-a3be-d1ddaad6c4c6 - Partition start at [...] &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Note the UUID string!&amp;lt;/strong&amp;gt; Yours will be different. Now tell GRUB where Linux is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; linux /boot/vmlinuz〈...tab here!...〉.efi.signed root=UUID=〈the UUID from above〉&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The GRUB console can do &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt; completion, so if you just type out the &amp;lt;code&amp;gt;vmlinuz&amp;lt;/code&amp;gt; part and hit &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;, then hit &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt; again… you won’t have to type out the whole filename. But do make sure the &amp;lt;code&amp;gt;.efi.signed&amp;lt;/code&amp;gt; bit is there! And yes, you will have to type out that whole UUID.&lt;br /&gt;
&lt;br /&gt;
Now set the &amp;lt;code&amp;gt;initrd&amp;lt;/code&amp;gt; (initial RAM disk):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; initrd /boot/initrd〈...tab here!...〉 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Booting===&lt;br /&gt;
Type:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub&amp;gt; boot &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should find yourself booted into your installation!&lt;br /&gt;
&lt;br /&gt;
==Fixing the EFI Partition==&lt;br /&gt;
So why is the system unbootable? The problem is that the Mac bootloader expects &lt;br /&gt;
the EFI partition to be formatted as HFS+, the typical Mac filesystem. It also &lt;br /&gt;
expects certain files to be present. The Ubuntu installer actually formats it as &lt;br /&gt;
VFAT and doesn’t create the files that are necessary for booting on a Mac.&lt;br /&gt;
&lt;br /&gt;
===Install Extra Packages===&lt;br /&gt;
&lt;br /&gt;
The first thing you’ll need to do is add my PPA and install some extra utilities. Fire up a command line and enter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo add-apt-repository ppa:detly/mactel-utils &lt;br /&gt;
[...] &lt;br /&gt;
Utilities for Intel based Macs (eg. recent MacBooks, Mac Minis). Includes a &lt;br /&gt;
fan control (macfanctld) and the HFS &amp;quot;bless&amp;quot; utility. &lt;br /&gt;
More info: &lt;br /&gt;
https://launchpad.net/~detly/+archive/ubuntu/mactel-utils&lt;br /&gt;
Press [ENTER] to continue or ctrl-c to cancel adding it &lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;ref&amp;gt;[https://launchpad.net/~detly/+archive/ubuntu/mactel-utils Reference]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt; to add the PPA. Then update your package list and install the &lt;br /&gt;
necessary utilities:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get update &lt;br /&gt;
$ sudo apt-get install mactel-boot hfsprogs gdisk grub-efi-amd64 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reformatting the EFI Partition===&lt;br /&gt;
Firstly, make sure you’ve actually got an EFI partition. Run &amp;lt;code&amp;gt;mount&amp;lt;/code&amp;gt; to get a list of mounted filesystems, and look for anything mounted at &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mount &lt;br /&gt;
[...] &lt;br /&gt;
/dev/sda1 on /boot/efi type vfat (rw) &lt;br /&gt;
[...] &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For me, it’s &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt;. If there is no entry for &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt; by &lt;br /&gt;
itself doesn’t count), you are probably running in legacy BIOS mode. So, let’s unmount it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo umount /dev/sda1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now use &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; to delete the VFAT partition and create an HFS+ one. &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; &lt;br /&gt;
is interactive, and doesn’t write changes to the disk until you tell it to, so &lt;br /&gt;
don’t panic if you make a mistake.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo gdisk /dev/sda &lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8 &lt;br /&gt;
&lt;br /&gt;
Partition table scan: &lt;br /&gt;
MBR: hybrid &lt;br /&gt;
BSD: not present &lt;br /&gt;
APM: not present &lt;br /&gt;
GPT: present &lt;br /&gt;
&lt;br /&gt;
Found valid GPT with hybrid MBR; using GPT. &lt;br /&gt;
&lt;br /&gt;
Command (? for help): &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You &amp;lt;strong&amp;gt;must&amp;lt;/strong&amp;gt; see the &amp;lt;code&amp;gt;GPT: present&amp;lt;/code&amp;gt; line. The &amp;lt;code&amp;gt;MBR: hybrid&amp;lt;/code&amp;gt; line is optional. If you’re not using a &amp;lt;code&amp;gt;GPT&amp;lt;/code&amp;gt; (GUID partition table)… well, I don’t know what kind of machine you’re using there. Print the partition table and confirm that the first partition has type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command (? for help): p &lt;br /&gt;
Disk /dev/sda: 976773168 sectors, 465.8 GiB &lt;br /&gt;
Logical sector size: 512 bytes &lt;br /&gt;
Disk identifier (GUID): 717BD65E-A514-4FD9-A4A7-1BE01C2F31E0 &lt;br /&gt;
Partition table holds up to 128 entries &lt;br /&gt;
First usable sector is 34, last usable sector is 976773134 &lt;br /&gt;
Partitions will be aligned on 2048-sector boundaries &lt;br /&gt;
Total free space is 4077 sectors (2.0 MiB) &lt;br /&gt;
&lt;br /&gt;
Number  Start (sector)    End (sector)  Size       Code  Name &lt;br /&gt;
1            2048          194559   94.0 MiB    EF00 &lt;br /&gt;
2          194560       968574975   461.8 GiB   8300 &lt;br /&gt;
3       968574976       976771071   3.9 GiB     8200 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The other details aren’t really important, but we definitely expect the device &lt;br /&gt;
associated with &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; (from the output of &amp;lt;code&amp;gt;mount&amp;lt;/code&amp;gt;) to match the numbering &lt;br /&gt;
here (ie. if &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; was &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt;, the &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt; partition should be #1).&lt;br /&gt;
Now we delete that &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt; partition:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command (? for help): d &lt;br /&gt;
Partition number (1-3): 1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
…and create a new HFS+ one in its place:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command (? for help): n &lt;br /&gt;
Partition number (1-128, default 1): 1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just press &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt; for the first and last sector options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
First sector (34-976773134, default = 2048) or {+-}size{KMGTP}: &lt;br /&gt;
Last sector (2048-194559, default = 194559) or {+-}size{KMGTP}: &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
…but enter &amp;lt;code&amp;gt;AF00&amp;lt;/code&amp;gt; for the filesystem code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Current type is 'Linux filesystem' &lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): AF00 &lt;br /&gt;
Changed type of partition to 'Apple HFS/HFS+' &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we’re ready to write the changes. Use the &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; command to double-check your &lt;br /&gt;
changes, and then &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; to write:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command (? for help): w &lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING &lt;br /&gt;
PARTITIONS!! &lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): Y &lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sda. &lt;br /&gt;
Warning: The kernel is still using the old partition table. &lt;br /&gt;
The new table will be used at the next reboot. &lt;br /&gt;
The operation has completed successfully. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have an unformatted HFS+ partition. We can format it with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkfs.hfsplus /dev/sda1 -v Ubuntu &lt;br /&gt;
Initialized /dev/sda1 as a 94 MB HFS Plus volume &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating the Filesystem Table===&lt;br /&gt;
&lt;br /&gt;
For system partitions (eg. &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;) Ubuntu uses the UUID &lt;br /&gt;
(universally unique identifier) of a disk partition to mount it (rather than &lt;br /&gt;
the device node, eg. &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt;). This means we need to update &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;$ sudoedit /etc/fstab &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will launch the &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt; text editor. Look the two lines that &lt;br /&gt;
refers to &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;# /boot/efi was on /dev/sda1 during installation &lt;br /&gt;
UUID=C59D-1B30  /boot/efi       vfat    defaults        0       1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;↓&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;↑&amp;lt;/code&amp;gt; to position the cursor at the start of these lines and hit &lt;br /&gt;
&amp;lt;code&amp;gt;ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; to delete them. Run this to add the necessary entries:&amp;lt;pre&amp;gt;$ sudo bash -c 'echo $(blkid -o export -s UUID /dev/sda1) /boot/efi auto defaults 0 0 &amp;gt;&amp;gt; /etc/fstab' &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Test it out by remounting &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;$ sudo mount /boot/efi &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you shouldn’t use extra options here. If it doesn’t work from that &lt;br /&gt;
command alone, it means your &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; entry is wrong.&lt;br /&gt;
&lt;br /&gt;
===Installing GRUB===&lt;br /&gt;
&lt;br /&gt;
Now we’ll reinstall GRUB so it can use the newly formatted HFS+ partition for &lt;br /&gt;
its EFI data. Since Mike Hommey wrote his instructions, GRUB has actually been &lt;br /&gt;
updated to work with HFS+ partitions, so there’s no need to hack the installer &lt;br /&gt;
any more (good thing too, since it’s now a C program, not a shell script).&lt;br /&gt;
First, create the necessary directory on the EFI partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkdir -p &amp;quot;/boot/efi/EFI/$(lsb_release -ds)/&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$(lsb_release -ds)&amp;lt;/code&amp;gt; part automatically produces a label for the &lt;br /&gt;
distribution like &amp;lt;code&amp;gt;Ubuntu 14.04.1 LTS&amp;lt;/code&amp;gt;.&lt;br /&gt;
Now, there’s a &amp;lt;a href=&amp;quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=716927#20&amp;quot;&amp;gt;bug in GRUB&amp;lt;/a&amp;gt; &lt;br /&gt;
that means that on HFS+ it requires a file named &amp;lt;code&amp;gt;mach_kernel&amp;lt;/code&amp;gt; to exist in a &lt;br /&gt;
particular place before it runs. In fact, it’s really the Mac bootloader that &lt;br /&gt;
requires this file, but GRUB seems to look for it in the wrong place and refuses &lt;br /&gt;
to run if it’s not there, so we need to create it twice:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo bash -c 'echo &amp;quot;This file is required for booting&amp;quot; &amp;gt; &amp;quot;/boot/efi/EFI/$(lsb_release -ds)/mach_kernel&amp;quot;' &lt;br /&gt;
$ sudo bash -c 'echo &amp;quot;This file is required for booting&amp;quot; &amp;gt; /boot/efi/mach_kernel' &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to install GRUB, and we need to be a bit explicit about where it &lt;br /&gt;
should put its files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo grub-install --target x86_64-efi --boot-directory=/boot --efi-directory=/boot/efi --bootloader-id=&amp;quot;$(lsb_release -ds)&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final step is to “bless” the bootloader code, so that the Mac bootloader &lt;br /&gt;
will boot it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo hfs-bless &amp;quot;/boot/efi/EFI/$(lsb_release -ds)/System/Library/CoreServices/boot.efi&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;The system should now be bootable!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should reboot your system (&amp;lt;code&amp;gt;sudo reboot&amp;lt;/code&amp;gt;) to see if it boots straight into your new Ubuntu installation. '''Note''' that there will still be that delay at the Mac boot screen (the light grey one). But the system will still boot, and we can get rid of that delay later. You might also like to &amp;lt;a href=&amp;quot;#boot-from-usb&amp;quot;&amp;gt;bring up the boot menu&amp;lt;/a&amp;gt; to see what the Ubuntu entry looks like. At this point it should have the correct label (“Ubuntu &lt;br /&gt;
14.04.1 LTS…”), but the icon will be a plain grey hard drive.&lt;br /&gt;
&lt;br /&gt;
===Replacing the Bootloader Icon===&lt;br /&gt;
&lt;br /&gt;
Simply do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install mactel-boot-logo &lt;br /&gt;
$ sudo cp /usr/share/mactel-boot-logo/ubuntu.icns /boot/efi/.VolumeIcon.icns &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now when you reboot, if you bring up the Mac boot menu, you should see the familiar Ubuntu logo!&amp;lt;figure&amp;gt;&amp;lt;a href=&amp;quot;/trinkets/MacBootloaderUbuntu.jpg&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;/trinkets/MacBootloaderUbuntu.jpg&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;438&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Removing the Boot Delay==&lt;br /&gt;
&lt;br /&gt;
The boot delay is caused by a couple of things:&lt;br /&gt;
&lt;br /&gt;
* The bootloader firmware might still have old entries in it, with the default set to something that doesn’t exist.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The bootloader itself has a timeout that can be changed, and it defaults to 5s.&lt;br /&gt;
&lt;br /&gt;
This can be managed with the &amp;lt;code&amp;gt;efibootmgr&amp;lt;/code&amp;gt; utility. If you run it without arguments, you’ll see all the settings I mentioned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo efibootmgr &lt;br /&gt;
BootCurrent: 0000 &lt;br /&gt;
Timeout: 5 seconds &lt;br /&gt;
BootOrder: 0080 &lt;br /&gt;
Boot0000* ubuntu &lt;br /&gt;
Boot0001* Ubuntu 14.04.1 LTS &lt;br /&gt;
Boot0080* Mac OS X &lt;br /&gt;
BootFFFF* &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In my case, the timeout was set to 5s, the default boot was set to an entry that no longer exists, and there was still an old OS X entry. This will get rid of the built-in timeout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo efibootmgr -t 0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This gets rid of the extra entries (&amp;lt;em&amp;gt;note that your numbers might be different!&amp;lt;/em&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo efibootmgr -b 0000 -B &lt;br /&gt;
$ sudo efibootmgr -b 0080 -B &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets the default entry (&amp;lt;em&amp;gt;again, the number here might be different for you&amp;lt;/em&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo efibootmgr -o 0001 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
…and now, when you reboot, it should be significantly faster.&lt;br /&gt;
&lt;br /&gt;
{{note|When I initially searched for a fix for this, I read a lot of posts claiming that using the OS X recovery disk to bless the partition would do the trick. But as far as I can tell, this has no effect, so don’t panic if you don’t have a recovery disk.|subject=Note #1}}&lt;br /&gt;
&lt;br /&gt;
{{note|I am not talking about the usual GRUB delay here. In theory, this can be changed by editing &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt; and setting all the timeout values to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;. However, [https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1273764 bug #1273764] stops this from working, so use [https://gist.github.com/LeahCim/9332432 LeahCim’s extra GRUB scripts] to fix it.|subject=Note #2}}&lt;br /&gt;
&lt;br /&gt;
==You’re Done!==&lt;br /&gt;
&lt;br /&gt;
That should be it. You should now have a system that boots straight into Ubuntu, &lt;br /&gt;
no delay, giving you access to all the EFI goodness.&lt;br /&gt;
&lt;br /&gt;
==Zeroing the Hard Drive==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;This is not a step!&amp;lt;/strong&amp;gt; It’s just here in case things go so wrong you don’t know what to do. Hopefully you won’t need this bit, but you may find that the installer partitioner isn’t working as expected, or maybe you’ve tried a load of different things and you want a clean slate. You could reinstall OS X, but that takes time and data. In most cases, I found that zeroing out the start of the drive was enough to get rid of any bad state &lt;br /&gt;
that was interfering with the process.&lt;br /&gt;
&lt;br /&gt;
Boot off the Ubuntu installer USB drive, but don’t select &amp;lt;strong&amp;gt;Install Ubuntu&amp;lt;/strong&amp;gt;. Instead, use the &amp;lt;strong&amp;gt;Rescue a broken system&amp;lt;/strong&amp;gt; option.&lt;br /&gt;
Go through the keyboard detection, but don’t bother with anything else — as soon as you see a &amp;lt;code&amp;gt;&amp;lt;go back&amp;gt;&amp;lt;/code&amp;gt; option, use that to get to the rescue menu. Select &amp;lt;strong&amp;gt;Execute a shell in the installer environment&amp;lt;/strong&amp;gt;, and you’ll be presented with a prompt that’s just a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; (ie. root access). Assuming your hard drive is &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt;, this command will zero out the first GB of the hard drive. That should cover the master boot record (MBR), the GUID partition table (GPT), and any other magic that interferes with partition/OS detection:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dd if=/dev/zero of=/dev/sda bs=16M count=64 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will &amp;lt;strong&amp;gt;not&amp;lt;/strong&amp;gt; touch the Mac’s internal bootloader firmware, nor will it reset any nvram variables such as the internal speaker volume.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]][[Category:iMac]][[Category:EFI Boot]]{{keywords|linux,iMac,boot,partitioning,EFI boot}}{{description}}[{ogmeta}}&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=190</id>
		<title>Category:Linux</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=190"/>
		<updated>2020-11-03T16:01:59Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tux.png|right|100px]]&lt;br /&gt;
&lt;br /&gt;
{{cat}}{{ogmeta}}&lt;br /&gt;
{{-}}&lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Template:Ogmeta&amp;diff=189</id>
		<title>Template:Ogmeta</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Template:Ogmeta&amp;diff=189"/>
		<updated>2020-11-03T16:01:37Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;{{#set:    |Meta element og-image=https:{{filepath:{{#sub:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}|5}}}}    |Meta el...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#set:&lt;br /&gt;
   |Meta element og-image=https:{{filepath:{{#sub:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}#_EXIFDATA |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}#_EXIFDATA |?Height }}&lt;br /&gt;
  }}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template automatically adds the og meta tags, og:image, og:image-type, og:image-height, and og:image-width.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{#set:&lt;br /&gt;
   |Meta element og-image=https:{{filepath:{{#sub:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}#_EXIFDATA |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}#_EXIFDATA |?Height }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=188</id>
		<title>Category:Linux</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=188"/>
		<updated>2020-11-03T15:58:33Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tux.png|right|100px]]&lt;br /&gt;
&lt;br /&gt;
{{cat}}{{#set:&lt;br /&gt;
   |Meta element og-image=https:{{filepath:{{#sub:{{#explode:&amp;lt;MANY&amp;gt;{{#show: {{FULLPAGENAME}} |?Attachment_link|format=array}}|&amp;lt;MANY&amp;gt;|1}}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}#_EXIFDATA |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}#_EXIFDATA |?Height }}&lt;br /&gt;
  }}&lt;br /&gt;
{{-}}&lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=187</id>
		<title>Category:Linux</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=187"/>
		<updated>2020-11-03T15:02:50Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tux.png|right|100px]]&lt;br /&gt;
&lt;br /&gt;
{{cat}}{{#set:&lt;br /&gt;
   |Meta element og-image=https:{{filepath:{{#sub:{{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}#_EXIFDATA |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}#_EXIFDATA |?Height }}&lt;br /&gt;
  }}&lt;br /&gt;
{{-}}&lt;br /&gt;
   &lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=186</id>
		<title>Category:Linux</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=186"/>
		<updated>2020-11-03T15:02:28Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tux.png|right|100px]]&lt;br /&gt;
{{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?MIME type|link=none}}{{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}&lt;br /&gt;
{{#show: File:Tux.png#_EXIFDATA |?Width }}{{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}#_EXIFDATA |?Height }}&lt;br /&gt;
{{cat}}{{#set:&lt;br /&gt;
   |Meta element og-image=https:{{filepath:{{#sub:{{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}#_EXIFDATA |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}#_EXIFDATA |?Height }}&lt;br /&gt;
  }}&lt;br /&gt;
{{-}}&lt;br /&gt;
   &lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image&amp;diff=185</id>
		<title>Property:Meta element og-image</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image&amp;diff=185"/>
		<updated>2020-11-03T14:24:08Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;Has type::Text&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Has type::Text]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image-type&amp;diff=184</id>
		<title>Property:Meta element og-image-type</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Property:Meta_element_og-image-type&amp;diff=184"/>
		<updated>2020-11-03T14:22:39Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;Has type::Text&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Has type::Text]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=183</id>
		<title>Category:Linux</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=183"/>
		<updated>2020-11-03T14:21:40Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Undo revision 182 by TomHutchison (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tux.png|right|100px]]&lt;br /&gt;
&lt;br /&gt;
{{cat}}{{#set:&lt;br /&gt;
   |Meta element og-image=https:{{filepath:{{#sub:{{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?Height }}&lt;br /&gt;
  }}&lt;br /&gt;
{{-}}&lt;br /&gt;
   &lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=182</id>
		<title>Category:Linux</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=182"/>
		<updated>2020-11-03T14:19:52Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tux.png|right|100px]]&lt;br /&gt;
&lt;br /&gt;
{{cat}}{{#set:&lt;br /&gt;
   |Has meta tag image=https:{{filepath:{{#sub:{{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?Height }}&lt;br /&gt;
  }}&lt;br /&gt;
{{-}}&lt;br /&gt;
   &lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=181</id>
		<title>Category:Linux</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=181"/>
		<updated>2020-11-03T14:15:31Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tux.png|right|100px]]&lt;br /&gt;
&lt;br /&gt;
{{cat}}{{#set:&lt;br /&gt;
   |Meta element og-image=https:{{filepath:{{#sub:{{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }}|5}}}}&lt;br /&gt;
   |Meta element og-image-type={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?MIME type }}&lt;br /&gt;
   |Meta element og-image-width={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?Width }}&lt;br /&gt;
   |Meta element og-image-height={{#show: {{#show: {{FULLPAGENAME}} |?Attachment_link|link=none }} |?Height }}&lt;br /&gt;
  }}&lt;br /&gt;
{{-}}&lt;br /&gt;
   &lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=180</id>
		<title>Category:Linux</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=180"/>
		<updated>2020-11-03T13:40:55Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tux.png|right|100px]]&lt;br /&gt;
&lt;br /&gt;
{{cat}}&lt;br /&gt;
{{-}}&lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=File:Tux.png&amp;diff=179</id>
		<title>File:Tux.png</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=File:Tux.png&amp;diff=179"/>
		<updated>2020-11-03T13:37:26Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Identity image for Linux logo.&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=File:Tux.png&amp;diff=178</id>
		<title>File:Tux.png</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=File:Tux.png&amp;diff=178"/>
		<updated>2020-11-03T13:37:05Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Identity image for Linux logo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Identity image for Linux logo&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=File:Virtualmin-logo.svg&amp;diff=176</id>
		<title>File:Virtualmin-logo.svg</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=File:Virtualmin-logo.svg&amp;diff=176"/>
		<updated>2020-11-03T13:14:33Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Minimal Logo use for identity of organization.&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Patch_Command&amp;diff=175</id>
		<title>Patch Command</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Patch_Command&amp;diff=175"/>
		<updated>2020-08-15T12:56:13Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows how to use the patch command in CLI &lt;br /&gt;
&lt;br /&gt;
Example using MediaWiki patch files to update minor versions of MediaWiki.&lt;br /&gt;
&lt;br /&gt;
A small patch file is usually made available for a minor version upgrade. Manually download and extract the patch file from the dumps site or follow the directions with wget below. Patches are incremental, you can not skip a version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:cd to your main MediaWiki directory (the one with LocalSettings.php)&lt;br /&gt;
:Download the patch file and gunzip it. &amp;lt;code&amp;gt;gunzip mediawiki-x.xx.x.patch.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
:Use patch &amp;lt;code&amp;gt;-p1 --dry-run&amp;lt;/code&amp;gt; to check what will be changed (e.g., &amp;lt;code&amp;gt;patch -p1 --dry-run -i mediawiki-x.xx.x.patch&amp;lt;/code&amp;gt;)&lt;br /&gt;
:If all is well, run patch again without --dry-run.&lt;br /&gt;
:Check your Special:Version and you should see the new version number in place.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]][[Category:Command Line]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:All_Categories&amp;diff=174</id>
		<title>Category:All Categories</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:All_Categories&amp;diff=174"/>
		<updated>2020-08-15T03:22:25Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the top level of all categories. &lt;br /&gt;
&lt;br /&gt;
{{note|This category should only contain sub categories.}}&lt;br /&gt;
&lt;br /&gt;
Categories in the &amp;lt;code&amp;gt;{{PAGENAME}}&amp;lt;/code&amp;gt; category. To add categories to this category, please add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:&amp;lt;/nowiki&amp;gt;{{PAGENAME}}&amp;lt;nowiki&amp;gt;]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to the bottom of a category page.&lt;br /&gt;
{{-}}&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=File:CLI.png&amp;diff=173</id>
		<title>File:CLI.png</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=File:CLI.png&amp;diff=173"/>
		<updated>2020-08-15T03:21:45Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Command_Line&amp;diff=172</id>
		<title>Category:Command Line</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Command_Line&amp;diff=172"/>
		<updated>2020-08-15T03:21:30Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;100px  {{cat}}  Category:All Categories&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:CLI.png|right|100px]]&lt;br /&gt;
&lt;br /&gt;
{{cat}}&lt;br /&gt;
&lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=171</id>
		<title>Category:Linux</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Linux&amp;diff=171"/>
		<updated>2020-08-15T03:19:01Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tux.svg|right|100px]]&lt;br /&gt;
&lt;br /&gt;
{{cat}}&lt;br /&gt;
{{-}}&lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=File:Virtualmin-logo.svg&amp;diff=170</id>
		<title>File:Virtualmin-logo.svg</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=File:Virtualmin-logo.svg&amp;diff=170"/>
		<updated>2020-08-15T03:15:36Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Minimal Logo use for identity of organization&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Minimal Logo use for identity of organization&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:Virtualmin&amp;diff=169</id>
		<title>Category:Virtualmin</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:Virtualmin&amp;diff=169"/>
		<updated>2020-08-15T03:12:04Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;100px  Pages in the &amp;lt;code&amp;gt;{{PAGENAME}}&amp;lt;/code&amp;gt; category. {{-}} Category:All Categories&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Virtualmin-logo.svg|right|100px]]&lt;br /&gt;
&lt;br /&gt;
Pages in the &amp;lt;code&amp;gt;{{PAGENAME}}&amp;lt;/code&amp;gt; category.&lt;br /&gt;
{{-}}&lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Category:PHP&amp;diff=168</id>
		<title>Category:PHP</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Category:PHP&amp;diff=168"/>
		<updated>2020-08-15T03:07:53Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;100px  Pages in the &amp;lt;code&amp;gt;{{PAGENAME}}&amp;lt;/code&amp;gt; category. {{-}} Category:All Categories&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PHP-logo.svg|right|100px]]&lt;br /&gt;
&lt;br /&gt;
Pages in the &amp;lt;code&amp;gt;{{PAGENAME}}&amp;lt;/code&amp;gt; category.&lt;br /&gt;
{{-}}&lt;br /&gt;
[[Category:All Categories]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Install_Different_Version_of_PHP_on_Ubuntu&amp;diff=167</id>
		<title>Install Different Version of PHP on Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Install_Different_Version_of_PHP_on_Ubuntu&amp;diff=167"/>
		<updated>2020-08-15T03:04:36Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can install different versions of PHP on Ubuntu. This will also show how to install the versions and use them on Virtualmin for different virtual servers on a Virtualmin/Webmin install.&lt;br /&gt;
&lt;br /&gt;
== Add the Repository ==&lt;br /&gt;
=== Ubuntu 16.06 ===&lt;br /&gt;
Use the following on the command line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 18.04 ===&lt;br /&gt;
Use the following on the command line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Info ===&lt;br /&gt;
&lt;br /&gt;
After the updates you can use &amp;lt;code&amp;gt;sudo apt-get upgrade&amp;lt;/code&amp;gt; for Ubuntu 16.04 or &amp;lt;code&amp;gt;sudo apt upgrade&amp;lt;/code&amp;gt; for Ubuntu 18.04. This should pull down the very latest version of PHP from the &amp;lt;code&amp;gt;ondrej/php&amp;lt;/code&amp;gt; repository. Currently, as of this writing is PHP 7.4.&lt;br /&gt;
&lt;br /&gt;
== Install Specific Versions &amp;amp; Modules ==&lt;br /&gt;
Right now I am using the following. You can substitute &amp;lt;code&amp;gt;7.3&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;7.2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;7.4&amp;lt;/code&amp;gt;. Just check the modules available per PHP version noted below.&lt;br /&gt;
&lt;br /&gt;
Time to install.&lt;br /&gt;
=== Ubuntu 16.04 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php7.4 php7.4-cli php7.4-common php7.4-cgi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the following modules (these are the ones I generally install):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-dba php7.4-enchant php7.4-gd&lt;br /&gt;
php7.4-gmp php7.4-imap php7.4-interbase php7.4-intl php7.4-ldap php7.4-mbstring php7.4-mysql&lt;br /&gt;
php7.4-odbc php7.4-pgsql php7.4-pspell php7.4-snmp php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc &lt;br /&gt;
php7.4-xsl php7.4-zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 18.04 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install php7.4 php7.4-cli php7.4-common php7.4-cgi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then I add the following modules as a start:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt  install php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-dba php7.4-enchant php7.4-gd&lt;br /&gt;
php7.4-gmp php7.4-imap php7.4-interbase php7.4-intl php7.4-ldap php7.4-mbstring php7.4-mysql&lt;br /&gt;
php7.4-odbc php7.4-pgsql php7.4-pspell php7.4-snmp php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc &lt;br /&gt;
php7.4-xsl php7.4-zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Version Check ===&lt;br /&gt;
Check your version. Usually, the highest version is available with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ php -v&lt;br /&gt;
PHP 7.4.9 (cli) (built: Aug  7 2020 14:29:10) ( NTS )&lt;br /&gt;
Copyright (c) The PHP Group&lt;br /&gt;
Zend Engine v3.4.0, Copyright (c) Zend Technologies&lt;br /&gt;
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies&lt;br /&gt;
user@YourServer:~$ php7.3 -v&lt;br /&gt;
PHP 7.3.21-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug  7 2020 14:43:42) ( NTS )&lt;br /&gt;
Copyright (c) 1997-2018 The PHP Group&lt;br /&gt;
Zend Engine v3.3.21, Copyright (c) 1998-2018 Zend Technologies&lt;br /&gt;
    with Zend OPcache v7.3.21-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies&lt;br /&gt;
user@YourServer:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Adding Modules ===&lt;br /&gt;
&lt;br /&gt;
Check what modules are installed.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ php7.4 -m&lt;br /&gt;
[PHP Modules]&lt;br /&gt;
apc&lt;br /&gt;
apcu&lt;br /&gt;
bcmath&lt;br /&gt;
bz2&lt;br /&gt;
calendar&lt;br /&gt;
Core&lt;br /&gt;
...truncated...&lt;br /&gt;
exif&lt;br /&gt;
fileinfo&lt;br /&gt;
filter&lt;br /&gt;
ftp&lt;br /&gt;
gd&lt;br /&gt;
gettext&lt;br /&gt;
gmp&lt;br /&gt;
hash&lt;br /&gt;
iconv&lt;br /&gt;
imagick&lt;br /&gt;
imap&lt;br /&gt;
interbase&lt;br /&gt;
intl&lt;br /&gt;
json&lt;br /&gt;
ldap&lt;br /&gt;
libxml&lt;br /&gt;
mbstring&lt;br /&gt;
mcrypt&lt;br /&gt;
mysqli&lt;br /&gt;
mysqlnd&lt;br /&gt;
...truncated...&lt;br /&gt;
xml&lt;br /&gt;
xmlreader&lt;br /&gt;
xmlrpc&lt;br /&gt;
xmlwriter&lt;br /&gt;
xsl&lt;br /&gt;
Zend OPcache&lt;br /&gt;
zip&lt;br /&gt;
zlib&lt;br /&gt;
&lt;br /&gt;
[Zend Modules]&lt;br /&gt;
Zend OPcache&lt;br /&gt;
&lt;br /&gt;
user@YourServer:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now check what modules are available in your apt-cache for the specific PHP version, 7.4 or 7.3 or 7.2, etc.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt-cache search php7.4&lt;br /&gt;
php-amqp - AMQP extension for PHP&lt;br /&gt;
php-apcu - APC User Cache for PHP&lt;br /&gt;
php-geoip - GeoIP module for PHP&lt;br /&gt;
php-igbinary - igbinary PHP serializer&lt;br /&gt;
php-imagick - Provides a wrapper to the ImageMagick library&lt;br /&gt;
php-mongodb - MongoDB driver for PHP&lt;br /&gt;
php-msgpack - PHP extension for interfacing with MessagePack&lt;br /&gt;
php-oauth - OAuth 1.0 consumer and provider extension&lt;br /&gt;
php-redis - PHP extension for interfacing with Redis &lt;br /&gt;
...truncated...&lt;br /&gt;
php7.4-soap - SOAP module for PHP&lt;br /&gt;
php7.4-sqlite3 - SQLite3 module for PHP&lt;br /&gt;
php7.4-sybase - Sybase module for PHP&lt;br /&gt;
php7.4-tidy - tidy module for PHP&lt;br /&gt;
php7.4-xml - DOM, SimpleXML, XML, and XSL module for PHP&lt;br /&gt;
php7.4-xmlrpc - XMLRPC-EPI module for PHP&lt;br /&gt;
php7.4-xsl - XSL module for PHP (dummy)&lt;br /&gt;
php7.4-zip - Zip module for PHP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need a module? From the list what is available in your apt-cache:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt-get install php7.4-tidy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu 18.04&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt install php7.4-tidy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you have multiple versions of PHP installed on your server.&lt;br /&gt;
&lt;br /&gt;
== Virtualmin ==&lt;br /&gt;
&lt;br /&gt;
If you are running Webmin w/Virtualmin it is pretty easy to make the versions available for specific virtual hosts (websites) on your Virtualmin Install. This pertains to the latest Webmin 1.954 w/Virtualmin 6.11.&lt;br /&gt;
&lt;br /&gt;
*Log on to the Webmin admin &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://yourserver.com:10000&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*'''System Settings''' -&amp;gt; '''Re-check configuration'''&lt;br /&gt;
*All installed versions of PHP should be found.&lt;br /&gt;
*Manage each Virtual Server -&amp;gt; select the proper Virtual Server from Dropdown list at top of Navigation Menu, example, yourdomain.org, you want to manage.&lt;br /&gt;
*Then select '''Server Configuration''' -&amp;gt; '''PHP Versions'''&lt;br /&gt;
*Select the version of PHP for the Virtual Server. Then &amp;quot;Save Versions&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
All the correct php.ini files and directories should be created in your &amp;lt;code&amp;gt;/home/{username}/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]][[Category:PHP]][[Category:Virtualmin]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Install_Different_Version_of_PHP_on_Ubuntu&amp;diff=166</id>
		<title>Install Different Version of PHP on Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Install_Different_Version_of_PHP_on_Ubuntu&amp;diff=166"/>
		<updated>2020-08-15T03:03:42Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: /* Virtualmin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can install different versions of PHP on Ubuntu. This will also show how to install the versions and use them on Virtualmin for different virtual servers on a Virtualmin/Webmin install.&lt;br /&gt;
&lt;br /&gt;
== Add the Repository ==&lt;br /&gt;
=== Ubuntu 16.06 ===&lt;br /&gt;
Use the following on the command line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 18.04 ===&lt;br /&gt;
Use the following on the command line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Info ===&lt;br /&gt;
&lt;br /&gt;
After the updates you can use &amp;lt;code&amp;gt;sudo apt-get upgrade&amp;lt;/code&amp;gt; for Ubuntu 16.04 or &amp;lt;code&amp;gt;sudo apt upgrade&amp;lt;/code&amp;gt; for Ubuntu 18.04. This should pull down the very latest version of PHP from the &amp;lt;code&amp;gt;ondrej/php&amp;lt;/code&amp;gt; repository. Currently, as of this writing is PHP 7.4.&lt;br /&gt;
&lt;br /&gt;
== Install Specific Versions &amp;amp; Modules ==&lt;br /&gt;
Right now I am using the following. You can substitute &amp;lt;code&amp;gt;7.3&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;7.2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;7.4&amp;lt;/code&amp;gt;. Just check the modules available per PHP version noted below.&lt;br /&gt;
&lt;br /&gt;
Time to install.&lt;br /&gt;
=== Ubuntu 16.04 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php7.4 php7.4-cli php7.4-common php7.4-cgi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the following modules (these are the ones I generally install):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-dba php7.4-enchant php7.4-gd&lt;br /&gt;
php7.4-gmp php7.4-imap php7.4-interbase php7.4-intl php7.4-ldap php7.4-mbstring php7.4-mysql&lt;br /&gt;
php7.4-odbc php7.4-pgsql php7.4-pspell php7.4-snmp php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc &lt;br /&gt;
php7.4-xsl php7.4-zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 18.04 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install php7.4 php7.4-cli php7.4-common php7.4-cgi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then I add the following modules as a start:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt  install php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-dba php7.4-enchant php7.4-gd&lt;br /&gt;
php7.4-gmp php7.4-imap php7.4-interbase php7.4-intl php7.4-ldap php7.4-mbstring php7.4-mysql&lt;br /&gt;
php7.4-odbc php7.4-pgsql php7.4-pspell php7.4-snmp php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc &lt;br /&gt;
php7.4-xsl php7.4-zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Version Check ===&lt;br /&gt;
Check your version. Usually, the highest version is available with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ php -v&lt;br /&gt;
PHP 7.4.9 (cli) (built: Aug  7 2020 14:29:10) ( NTS )&lt;br /&gt;
Copyright (c) The PHP Group&lt;br /&gt;
Zend Engine v3.4.0, Copyright (c) Zend Technologies&lt;br /&gt;
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies&lt;br /&gt;
user@YourServer:~$ php7.3 -v&lt;br /&gt;
PHP 7.3.21-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug  7 2020 14:43:42) ( NTS )&lt;br /&gt;
Copyright (c) 1997-2018 The PHP Group&lt;br /&gt;
Zend Engine v3.3.21, Copyright (c) 1998-2018 Zend Technologies&lt;br /&gt;
    with Zend OPcache v7.3.21-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies&lt;br /&gt;
user@YourServer:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Adding Modules ===&lt;br /&gt;
&lt;br /&gt;
Check what modules are installed.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ php7.4 -m&lt;br /&gt;
[PHP Modules]&lt;br /&gt;
apc&lt;br /&gt;
apcu&lt;br /&gt;
bcmath&lt;br /&gt;
bz2&lt;br /&gt;
calendar&lt;br /&gt;
Core&lt;br /&gt;
...truncated...&lt;br /&gt;
exif&lt;br /&gt;
fileinfo&lt;br /&gt;
filter&lt;br /&gt;
ftp&lt;br /&gt;
gd&lt;br /&gt;
gettext&lt;br /&gt;
gmp&lt;br /&gt;
hash&lt;br /&gt;
iconv&lt;br /&gt;
imagick&lt;br /&gt;
imap&lt;br /&gt;
interbase&lt;br /&gt;
intl&lt;br /&gt;
json&lt;br /&gt;
ldap&lt;br /&gt;
libxml&lt;br /&gt;
mbstring&lt;br /&gt;
mcrypt&lt;br /&gt;
mysqli&lt;br /&gt;
mysqlnd&lt;br /&gt;
...truncated...&lt;br /&gt;
xml&lt;br /&gt;
xmlreader&lt;br /&gt;
xmlrpc&lt;br /&gt;
xmlwriter&lt;br /&gt;
xsl&lt;br /&gt;
Zend OPcache&lt;br /&gt;
zip&lt;br /&gt;
zlib&lt;br /&gt;
&lt;br /&gt;
[Zend Modules]&lt;br /&gt;
Zend OPcache&lt;br /&gt;
&lt;br /&gt;
user@YourServer:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now check what modules are available in your apt-cache for the specific PHP version, 7.4 or 7.3 or 7.2, etc.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt-cache search php7.4&lt;br /&gt;
php-amqp - AMQP extension for PHP&lt;br /&gt;
php-apcu - APC User Cache for PHP&lt;br /&gt;
php-geoip - GeoIP module for PHP&lt;br /&gt;
php-igbinary - igbinary PHP serializer&lt;br /&gt;
php-imagick - Provides a wrapper to the ImageMagick library&lt;br /&gt;
php-mongodb - MongoDB driver for PHP&lt;br /&gt;
php-msgpack - PHP extension for interfacing with MessagePack&lt;br /&gt;
php-oauth - OAuth 1.0 consumer and provider extension&lt;br /&gt;
php-redis - PHP extension for interfacing with Redis &lt;br /&gt;
...truncated...&lt;br /&gt;
php7.4-soap - SOAP module for PHP&lt;br /&gt;
php7.4-sqlite3 - SQLite3 module for PHP&lt;br /&gt;
php7.4-sybase - Sybase module for PHP&lt;br /&gt;
php7.4-tidy - tidy module for PHP&lt;br /&gt;
php7.4-xml - DOM, SimpleXML, XML, and XSL module for PHP&lt;br /&gt;
php7.4-xmlrpc - XMLRPC-EPI module for PHP&lt;br /&gt;
php7.4-xsl - XSL module for PHP (dummy)&lt;br /&gt;
php7.4-zip - Zip module for PHP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need a module? From the list what is available in your apt-cache:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt-get install php7.4-tidy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu 18.04&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt install php7.4-tidy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you have multiple versions of PHP installed on your server.&lt;br /&gt;
&lt;br /&gt;
== Virtualmin ==&lt;br /&gt;
&lt;br /&gt;
If you are running Webmin w/Virtualmin it is pretty easy to make the versions available for specific virtual hosts (websites) on your Virtualmin Install. This pertains to the latest Webmin 1.954 w/Virtualmin 6.11.&lt;br /&gt;
&lt;br /&gt;
*Log on to the Webmin admin &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://yourserver.com:10000&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*'''System Settings''' -&amp;gt; '''Re-check configuration'''&lt;br /&gt;
*All installed versions of PHP should be found.&lt;br /&gt;
*Manage each Virtual Server -&amp;gt; select the proper Virtual Server from Dropdown list at top of Navigation Menu, example, yourdomain.org, you want to manage.&lt;br /&gt;
*Then select '''Server Configuration''' -&amp;gt; '''PHP Versions'''&lt;br /&gt;
*Select the version of PHP for the Virtual Server. Then &amp;quot;Save Versions&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
All the correct php.ini files and directories should be created in your &amp;lt;code&amp;gt;/home/{username}/&amp;lt;/code&amp;gt; directory.&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Install_Different_Version_of_PHP_on_Ubuntu&amp;diff=165</id>
		<title>Install Different Version of PHP on Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Install_Different_Version_of_PHP_on_Ubuntu&amp;diff=165"/>
		<updated>2020-08-15T03:02:48Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: /* Virtualmin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can install different versions of PHP on Ubuntu. This will also show how to install the versions and use them on Virtualmin for different virtual servers on a Virtualmin/Webmin install.&lt;br /&gt;
&lt;br /&gt;
== Add the Repository ==&lt;br /&gt;
=== Ubuntu 16.06 ===&lt;br /&gt;
Use the following on the command line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 18.04 ===&lt;br /&gt;
Use the following on the command line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Info ===&lt;br /&gt;
&lt;br /&gt;
After the updates you can use &amp;lt;code&amp;gt;sudo apt-get upgrade&amp;lt;/code&amp;gt; for Ubuntu 16.04 or &amp;lt;code&amp;gt;sudo apt upgrade&amp;lt;/code&amp;gt; for Ubuntu 18.04. This should pull down the very latest version of PHP from the &amp;lt;code&amp;gt;ondrej/php&amp;lt;/code&amp;gt; repository. Currently, as of this writing is PHP 7.4.&lt;br /&gt;
&lt;br /&gt;
== Install Specific Versions &amp;amp; Modules ==&lt;br /&gt;
Right now I am using the following. You can substitute &amp;lt;code&amp;gt;7.3&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;7.2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;7.4&amp;lt;/code&amp;gt;. Just check the modules available per PHP version noted below.&lt;br /&gt;
&lt;br /&gt;
Time to install.&lt;br /&gt;
=== Ubuntu 16.04 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php7.4 php7.4-cli php7.4-common php7.4-cgi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the following modules (these are the ones I generally install):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-dba php7.4-enchant php7.4-gd&lt;br /&gt;
php7.4-gmp php7.4-imap php7.4-interbase php7.4-intl php7.4-ldap php7.4-mbstring php7.4-mysql&lt;br /&gt;
php7.4-odbc php7.4-pgsql php7.4-pspell php7.4-snmp php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc &lt;br /&gt;
php7.4-xsl php7.4-zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 18.04 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install php7.4 php7.4-cli php7.4-common php7.4-cgi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then I add the following modules as a start:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt  install php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-dba php7.4-enchant php7.4-gd&lt;br /&gt;
php7.4-gmp php7.4-imap php7.4-interbase php7.4-intl php7.4-ldap php7.4-mbstring php7.4-mysql&lt;br /&gt;
php7.4-odbc php7.4-pgsql php7.4-pspell php7.4-snmp php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc &lt;br /&gt;
php7.4-xsl php7.4-zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Version Check ===&lt;br /&gt;
Check your version. Usually, the highest version is available with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ php -v&lt;br /&gt;
PHP 7.4.9 (cli) (built: Aug  7 2020 14:29:10) ( NTS )&lt;br /&gt;
Copyright (c) The PHP Group&lt;br /&gt;
Zend Engine v3.4.0, Copyright (c) Zend Technologies&lt;br /&gt;
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies&lt;br /&gt;
user@YourServer:~$ php7.3 -v&lt;br /&gt;
PHP 7.3.21-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug  7 2020 14:43:42) ( NTS )&lt;br /&gt;
Copyright (c) 1997-2018 The PHP Group&lt;br /&gt;
Zend Engine v3.3.21, Copyright (c) 1998-2018 Zend Technologies&lt;br /&gt;
    with Zend OPcache v7.3.21-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies&lt;br /&gt;
user@YourServer:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Adding Modules ===&lt;br /&gt;
&lt;br /&gt;
Check what modules are installed.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ php7.4 -m&lt;br /&gt;
[PHP Modules]&lt;br /&gt;
apc&lt;br /&gt;
apcu&lt;br /&gt;
bcmath&lt;br /&gt;
bz2&lt;br /&gt;
calendar&lt;br /&gt;
Core&lt;br /&gt;
...truncated...&lt;br /&gt;
exif&lt;br /&gt;
fileinfo&lt;br /&gt;
filter&lt;br /&gt;
ftp&lt;br /&gt;
gd&lt;br /&gt;
gettext&lt;br /&gt;
gmp&lt;br /&gt;
hash&lt;br /&gt;
iconv&lt;br /&gt;
imagick&lt;br /&gt;
imap&lt;br /&gt;
interbase&lt;br /&gt;
intl&lt;br /&gt;
json&lt;br /&gt;
ldap&lt;br /&gt;
libxml&lt;br /&gt;
mbstring&lt;br /&gt;
mcrypt&lt;br /&gt;
mysqli&lt;br /&gt;
mysqlnd&lt;br /&gt;
...truncated...&lt;br /&gt;
xml&lt;br /&gt;
xmlreader&lt;br /&gt;
xmlrpc&lt;br /&gt;
xmlwriter&lt;br /&gt;
xsl&lt;br /&gt;
Zend OPcache&lt;br /&gt;
zip&lt;br /&gt;
zlib&lt;br /&gt;
&lt;br /&gt;
[Zend Modules]&lt;br /&gt;
Zend OPcache&lt;br /&gt;
&lt;br /&gt;
user@YourServer:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now check what modules are available in your apt-cache for the specific PHP version, 7.4 or 7.3 or 7.2, etc.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt-cache search php7.4&lt;br /&gt;
php-amqp - AMQP extension for PHP&lt;br /&gt;
php-apcu - APC User Cache for PHP&lt;br /&gt;
php-geoip - GeoIP module for PHP&lt;br /&gt;
php-igbinary - igbinary PHP serializer&lt;br /&gt;
php-imagick - Provides a wrapper to the ImageMagick library&lt;br /&gt;
php-mongodb - MongoDB driver for PHP&lt;br /&gt;
php-msgpack - PHP extension for interfacing with MessagePack&lt;br /&gt;
php-oauth - OAuth 1.0 consumer and provider extension&lt;br /&gt;
php-redis - PHP extension for interfacing with Redis &lt;br /&gt;
...truncated...&lt;br /&gt;
php7.4-soap - SOAP module for PHP&lt;br /&gt;
php7.4-sqlite3 - SQLite3 module for PHP&lt;br /&gt;
php7.4-sybase - Sybase module for PHP&lt;br /&gt;
php7.4-tidy - tidy module for PHP&lt;br /&gt;
php7.4-xml - DOM, SimpleXML, XML, and XSL module for PHP&lt;br /&gt;
php7.4-xmlrpc - XMLRPC-EPI module for PHP&lt;br /&gt;
php7.4-xsl - XSL module for PHP (dummy)&lt;br /&gt;
php7.4-zip - Zip module for PHP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need a module? From the list what is available in your apt-cache:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt-get install php7.4-tidy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu 18.04&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt install php7.4-tidy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you have multiple versions of PHP installed on your server.&lt;br /&gt;
&lt;br /&gt;
== Virtualmin ==&lt;br /&gt;
&lt;br /&gt;
If you are running Webmin w/Virtualmin it is pretty easy to make the versions available for specific virtual hosts (websites) on your Virtualmin Install. This pertains to the latest Webmin 1.954 w/Virtualmin 6.11.&lt;br /&gt;
&lt;br /&gt;
*Log on to the Webmin admin &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://yourserver.com:10000&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*'''System Settings''' -&amp;gt; '''Re-check configuration'''&lt;br /&gt;
*All installed versions of PHP should be found.&lt;br /&gt;
*Manage each Virtual Server -&amp;gt; select Virtual Server from Dropdown list at top of Navigation Menu, example, yourdomain.org&lt;br /&gt;
*Then select '''Server Configuration''' -&amp;gt; '''PHP Versions'''&lt;br /&gt;
*Select the version of PHP for the Virtual Server. Then &amp;quot;Save Versions&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
All the correct php.ini files and directories should be created in your &amp;lt;code&amp;gt;/home/{username}/&amp;lt;/code&amp;gt; directory.&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Install_Different_Version_of_PHP_on_Ubuntu&amp;diff=164</id>
		<title>Install Different Version of PHP on Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Install_Different_Version_of_PHP_on_Ubuntu&amp;diff=164"/>
		<updated>2020-08-15T03:02:04Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: /* Install Specific Versions &amp;amp; Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can install different versions of PHP on Ubuntu. This will also show how to install the versions and use them on Virtualmin for different virtual servers on a Virtualmin/Webmin install.&lt;br /&gt;
&lt;br /&gt;
== Add the Repository ==&lt;br /&gt;
=== Ubuntu 16.06 ===&lt;br /&gt;
Use the following on the command line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 18.04 ===&lt;br /&gt;
Use the following on the command line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Info ===&lt;br /&gt;
&lt;br /&gt;
After the updates you can use &amp;lt;code&amp;gt;sudo apt-get upgrade&amp;lt;/code&amp;gt; for Ubuntu 16.04 or &amp;lt;code&amp;gt;sudo apt upgrade&amp;lt;/code&amp;gt; for Ubuntu 18.04. This should pull down the very latest version of PHP from the &amp;lt;code&amp;gt;ondrej/php&amp;lt;/code&amp;gt; repository. Currently, as of this writing is PHP 7.4.&lt;br /&gt;
&lt;br /&gt;
== Install Specific Versions &amp;amp; Modules ==&lt;br /&gt;
Right now I am using the following. You can substitute &amp;lt;code&amp;gt;7.3&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;7.2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;7.4&amp;lt;/code&amp;gt;. Just check the modules available per PHP version noted below.&lt;br /&gt;
&lt;br /&gt;
Time to install.&lt;br /&gt;
=== Ubuntu 16.04 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php7.4 php7.4-cli php7.4-common php7.4-cgi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the following modules (these are the ones I generally install):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-dba php7.4-enchant php7.4-gd&lt;br /&gt;
php7.4-gmp php7.4-imap php7.4-interbase php7.4-intl php7.4-ldap php7.4-mbstring php7.4-mysql&lt;br /&gt;
php7.4-odbc php7.4-pgsql php7.4-pspell php7.4-snmp php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc &lt;br /&gt;
php7.4-xsl php7.4-zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 18.04 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install php7.4 php7.4-cli php7.4-common php7.4-cgi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then I add the following modules as a start:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt  install php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-dba php7.4-enchant php7.4-gd&lt;br /&gt;
php7.4-gmp php7.4-imap php7.4-interbase php7.4-intl php7.4-ldap php7.4-mbstring php7.4-mysql&lt;br /&gt;
php7.4-odbc php7.4-pgsql php7.4-pspell php7.4-snmp php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc &lt;br /&gt;
php7.4-xsl php7.4-zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Version Check ===&lt;br /&gt;
Check your version. Usually, the highest version is available with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ php -v&lt;br /&gt;
PHP 7.4.9 (cli) (built: Aug  7 2020 14:29:10) ( NTS )&lt;br /&gt;
Copyright (c) The PHP Group&lt;br /&gt;
Zend Engine v3.4.0, Copyright (c) Zend Technologies&lt;br /&gt;
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies&lt;br /&gt;
user@YourServer:~$ php7.3 -v&lt;br /&gt;
PHP 7.3.21-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug  7 2020 14:43:42) ( NTS )&lt;br /&gt;
Copyright (c) 1997-2018 The PHP Group&lt;br /&gt;
Zend Engine v3.3.21, Copyright (c) 1998-2018 Zend Technologies&lt;br /&gt;
    with Zend OPcache v7.3.21-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies&lt;br /&gt;
user@YourServer:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Adding Modules ===&lt;br /&gt;
&lt;br /&gt;
Check what modules are installed.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ php7.4 -m&lt;br /&gt;
[PHP Modules]&lt;br /&gt;
apc&lt;br /&gt;
apcu&lt;br /&gt;
bcmath&lt;br /&gt;
bz2&lt;br /&gt;
calendar&lt;br /&gt;
Core&lt;br /&gt;
...truncated...&lt;br /&gt;
exif&lt;br /&gt;
fileinfo&lt;br /&gt;
filter&lt;br /&gt;
ftp&lt;br /&gt;
gd&lt;br /&gt;
gettext&lt;br /&gt;
gmp&lt;br /&gt;
hash&lt;br /&gt;
iconv&lt;br /&gt;
imagick&lt;br /&gt;
imap&lt;br /&gt;
interbase&lt;br /&gt;
intl&lt;br /&gt;
json&lt;br /&gt;
ldap&lt;br /&gt;
libxml&lt;br /&gt;
mbstring&lt;br /&gt;
mcrypt&lt;br /&gt;
mysqli&lt;br /&gt;
mysqlnd&lt;br /&gt;
...truncated...&lt;br /&gt;
xml&lt;br /&gt;
xmlreader&lt;br /&gt;
xmlrpc&lt;br /&gt;
xmlwriter&lt;br /&gt;
xsl&lt;br /&gt;
Zend OPcache&lt;br /&gt;
zip&lt;br /&gt;
zlib&lt;br /&gt;
&lt;br /&gt;
[Zend Modules]&lt;br /&gt;
Zend OPcache&lt;br /&gt;
&lt;br /&gt;
user@YourServer:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now check what modules are available in your apt-cache for the specific PHP version, 7.4 or 7.3 or 7.2, etc.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt-cache search php7.4&lt;br /&gt;
php-amqp - AMQP extension for PHP&lt;br /&gt;
php-apcu - APC User Cache for PHP&lt;br /&gt;
php-geoip - GeoIP module for PHP&lt;br /&gt;
php-igbinary - igbinary PHP serializer&lt;br /&gt;
php-imagick - Provides a wrapper to the ImageMagick library&lt;br /&gt;
php-mongodb - MongoDB driver for PHP&lt;br /&gt;
php-msgpack - PHP extension for interfacing with MessagePack&lt;br /&gt;
php-oauth - OAuth 1.0 consumer and provider extension&lt;br /&gt;
php-redis - PHP extension for interfacing with Redis &lt;br /&gt;
...truncated...&lt;br /&gt;
php7.4-soap - SOAP module for PHP&lt;br /&gt;
php7.4-sqlite3 - SQLite3 module for PHP&lt;br /&gt;
php7.4-sybase - Sybase module for PHP&lt;br /&gt;
php7.4-tidy - tidy module for PHP&lt;br /&gt;
php7.4-xml - DOM, SimpleXML, XML, and XSL module for PHP&lt;br /&gt;
php7.4-xmlrpc - XMLRPC-EPI module for PHP&lt;br /&gt;
php7.4-xsl - XSL module for PHP (dummy)&lt;br /&gt;
php7.4-zip - Zip module for PHP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need a module? From the list what is available in your apt-cache:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt-get install php7.4-tidy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu 18.04&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt install php7.4-tidy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you have multiple versions of PHP installed on your server.&lt;br /&gt;
&lt;br /&gt;
== Virtualmin ==&lt;br /&gt;
&lt;br /&gt;
If you are running Webmin w/Virtualmin it is pretty easy to make the versions available for specific virtual hosts (websites) on your Virtualmin Install. This pertains to the latest Webmin 1.954 w/Virtualmin 6.11.&lt;br /&gt;
&lt;br /&gt;
*Log on to the Webmin admin &amp;lt;code&amp;gt;https://yourserver.com:10000&amp;lt;/code&amp;gt;&lt;br /&gt;
*'''System Settings''' -&amp;gt; '''Re-check configuration'''&lt;br /&gt;
*All installed versions of PHP should be found.&lt;br /&gt;
*Manage each Virtual Server -&amp;gt; select Virtual Server from Dropdown list at top of Navigation Menu, example, yourdomain.org&lt;br /&gt;
*Then select '''Server Configuration''' -&amp;gt; '''PHP Versions'''&lt;br /&gt;
*Select the version of PHP for the Virtual Server. Then &amp;quot;Save Versions&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
All the correct php.ini files and directories should be created in your &amp;lt;code&amp;gt;/home/{username}/&amp;lt;/code&amp;gt; directory.&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Install_Different_Version_of_PHP_on_Ubuntu&amp;diff=163</id>
		<title>Install Different Version of PHP on Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Install_Different_Version_of_PHP_on_Ubuntu&amp;diff=163"/>
		<updated>2020-08-15T02:33:17Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;You can install different versions of PHP on Ubuntu. This will also show how to install the versions and use them on Virtualmin for different virtual servers on a Virtualmin/W...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can install different versions of PHP on Ubuntu. This will also show how to install the versions and use them on Virtualmin for different virtual servers on a Virtualmin/Webmin install.&lt;br /&gt;
&lt;br /&gt;
== Add the Repository ==&lt;br /&gt;
=== Ubuntu 16.06 ===&lt;br /&gt;
Use the following on the command line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 18.04 ===&lt;br /&gt;
Use the following on the command line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Info ===&lt;br /&gt;
&lt;br /&gt;
After the updates you can use &amp;lt;code&amp;gt;sudo apt-get upgrade&amp;lt;/code&amp;gt; for Ubuntu 16.04 or &amp;lt;code&amp;gt;sudo apt upgrade&amp;lt;/code&amp;gt; for Ubuntu 18.04. This should pull down the very latest version of PHP from the &amp;lt;code&amp;gt;ondrej/php&amp;lt;/code&amp;gt; repository. Currently, as of this writing is PHP 7.4.&lt;br /&gt;
&lt;br /&gt;
== Install Specific Versions &amp;amp; Modules ==&lt;br /&gt;
Right now I am using the following. You can substitute &amp;lt;code&amp;gt;7.3&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;7.2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;7.4&amp;lt;/code&amp;gt;. Just check the modules available per PHP version noted below.&lt;br /&gt;
&lt;br /&gt;
Time to install.&lt;br /&gt;
=== Ubuntu 16.04 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php7.4 php7.4-cli php7.4-common php7.4-cgi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the following modules (these are the ones I generally install):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-dba php7.4-enchant php7.4-gd&lt;br /&gt;
php7.4-gmp php7.4-imap php7.4-interbase php7.4-intl php7.4-ldap php7.4-mbstring php7.4-mysql&lt;br /&gt;
php7.4-odbc php7.4-pgsql php7.4-pspell php7.4-snmp php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc &lt;br /&gt;
php7.4-xsl php7.4-zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check your version. Usually, the highest version is available with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ php -v&lt;br /&gt;
PHP 7.4.9 (cli) (built: Aug  7 2020 14:29:10) ( NTS )&lt;br /&gt;
Copyright (c) The PHP Group&lt;br /&gt;
Zend Engine v3.4.0, Copyright (c) Zend Technologies&lt;br /&gt;
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies&lt;br /&gt;
user@YourServer:~$ php7.3 -v&lt;br /&gt;
PHP 7.3.21-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug  7 2020 14:43:42) ( NTS )&lt;br /&gt;
Copyright (c) 1997-2018 The PHP Group&lt;br /&gt;
Zend Engine v3.3.21, Copyright (c) 1998-2018 Zend Technologies&lt;br /&gt;
    with Zend OPcache v7.3.21-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies&lt;br /&gt;
user@YourServer:~$ &lt;br /&gt;
&lt;br /&gt;
Check what modules are installed.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ php7.2 -m&lt;br /&gt;
[PHP Modules]&lt;br /&gt;
apc&lt;br /&gt;
apcu&lt;br /&gt;
bcmath&lt;br /&gt;
bz2&lt;br /&gt;
calendar&lt;br /&gt;
Core&lt;br /&gt;
ctype&lt;br /&gt;
curl&lt;br /&gt;
date&lt;br /&gt;
dba&lt;br /&gt;
dom&lt;br /&gt;
enchant&lt;br /&gt;
exif&lt;br /&gt;
fileinfo&lt;br /&gt;
filter&lt;br /&gt;
ftp&lt;br /&gt;
gd&lt;br /&gt;
gettext&lt;br /&gt;
gmp&lt;br /&gt;
hash&lt;br /&gt;
iconv&lt;br /&gt;
imagick&lt;br /&gt;
imap&lt;br /&gt;
interbase&lt;br /&gt;
intl&lt;br /&gt;
json&lt;br /&gt;
ldap&lt;br /&gt;
libxml&lt;br /&gt;
mbstring&lt;br /&gt;
mcrypt&lt;br /&gt;
mysqli&lt;br /&gt;
mysqlnd&lt;br /&gt;
odbc&lt;br /&gt;
openssl&lt;br /&gt;
pcntl&lt;br /&gt;
pcre&lt;br /&gt;
PDO&lt;br /&gt;
pdo_dblib&lt;br /&gt;
PDO_Firebird&lt;br /&gt;
pdo_mysql&lt;br /&gt;
PDO_ODBC&lt;br /&gt;
pdo_pgsql&lt;br /&gt;
pdo_sqlite&lt;br /&gt;
pgsql&lt;br /&gt;
Phar&lt;br /&gt;
posix&lt;br /&gt;
pspell&lt;br /&gt;
readline&lt;br /&gt;
recode&lt;br /&gt;
Reflection&lt;br /&gt;
session&lt;br /&gt;
shmop&lt;br /&gt;
SimpleXML&lt;br /&gt;
snmp&lt;br /&gt;
soap&lt;br /&gt;
sockets&lt;br /&gt;
sodium&lt;br /&gt;
SPL&lt;br /&gt;
sqlite3&lt;br /&gt;
standard&lt;br /&gt;
sysvmsg&lt;br /&gt;
sysvsem&lt;br /&gt;
sysvshm&lt;br /&gt;
tidy&lt;br /&gt;
tokenizer&lt;br /&gt;
wddx&lt;br /&gt;
xml&lt;br /&gt;
xmlreader&lt;br /&gt;
xmlrpc&lt;br /&gt;
xmlwriter&lt;br /&gt;
xsl&lt;br /&gt;
Zend OPcache&lt;br /&gt;
zip&lt;br /&gt;
zlib&lt;br /&gt;
&lt;br /&gt;
[Zend Modules]&lt;br /&gt;
Zend OPcache&lt;br /&gt;
&lt;br /&gt;
user@YourServer:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now check what modules are available.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@YourServer:~$ sudo apt-cache search php7.4&lt;br /&gt;
php-amqp - AMQP extension for PHP&lt;br /&gt;
php-apcu - APC User Cache for PHP&lt;br /&gt;
php-geoip - GeoIP module for PHP&lt;br /&gt;
php-igbinary - igbinary PHP serializer&lt;br /&gt;
php-imagick - Provides a wrapper to the ImageMagick library&lt;br /&gt;
php-mongodb - MongoDB driver for PHP&lt;br /&gt;
php-msgpack - PHP extension for interfacing with MessagePack&lt;br /&gt;
php-oauth - OAuth 1.0 consumer and provider extension&lt;br /&gt;
php-redis - PHP extension for interfacing with Redis &lt;br /&gt;
...truncated...&lt;br /&gt;
php7.4-soap - SOAP module for PHP&lt;br /&gt;
php7.4-sqlite3 - SQLite3 module for PHP&lt;br /&gt;
php7.4-sybase - Sybase module for PHP&lt;br /&gt;
php7.4-tidy - tidy module for PHP&lt;br /&gt;
php7.4-xml - DOM, SimpleXML, XML, and XSL module for PHP&lt;br /&gt;
php7.4-xmlrpc - XMLRPC-EPI module for PHP&lt;br /&gt;
php7.4-xsl - XSL module for PHP (dummy)&lt;br /&gt;
php7.4-zip - Zip module for PHP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Ubuntu 18.04 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install php7.4 php7.4-cli php7.4-common php7.4-cgi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then I add the following modules as a start:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-dba php7.4-enchant php7.4-gd&lt;br /&gt;
php7.4-gmp php7.4-imap php7.4-interbase php7.4-intl php7.4-ldap php7.4-mbstring php7.4-mysql&lt;br /&gt;
php7.4-odbc php7.4-pgsql php7.4-pspell php7.4-snmp php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc &lt;br /&gt;
php7.4-xsl php7.4-zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Property:Has_meta_keywords&amp;diff=162</id>
		<title>Property:Has meta keywords</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Property:Has_meta_keywords&amp;diff=162"/>
		<updated>2020-02-28T13:44:55Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;Has type::Keyword&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Has type::Keyword]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=MediaWiki:Pivot.css&amp;diff=161</id>
		<title>MediaWiki:Pivot.css</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=MediaWiki:Pivot.css&amp;diff=161"/>
		<updated>2019-10-20T03:34:32Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Icons */&lt;br /&gt;
#n-Contact-us a:before {&lt;br /&gt;
    content: &amp;quot;\f003&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
/* Custom colors - top bar*/&lt;br /&gt;
.tab-bar {&lt;br /&gt;
    background: #2f3f4f&lt;br /&gt;
}&lt;br /&gt;
/* style the labels */&lt;br /&gt;
ul.side-nav label {&lt;br /&gt;
    background: #2f3f4f;&lt;br /&gt;
    color: #fff;&lt;br /&gt;
    padding: .25em .5em;&lt;br /&gt;
}&lt;br /&gt;
/* sidebar background color and font-family */&lt;br /&gt;
body {&lt;br /&gt;
    background-color: #bad6d6;&lt;br /&gt;
    font-family: -apple-system,BlinkMacSystemFont,&amp;quot;Segoe UI&amp;quot;,Helvetica,Arial,sans-serif,&amp;quot;Apple Color Emoji&amp;quot;,&amp;quot;Segoe UI Emoji&amp;quot;,&amp;quot;Segoe UI Symbol&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.side-nav {&lt;br /&gt;
    font-family: -apple-system,BlinkMacSystemFont,&amp;quot;Segoe UI&amp;quot;,Helvetica,Arial,sans-serif,&amp;quot;Apple Color Emoji&amp;quot;,&amp;quot;Segoe UI Emoji&amp;quot;,&amp;quot;Segoe UI Symbol&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
/* Pre tags */&lt;br /&gt;
pre {&lt;br /&gt;
    background: darkslategrey;&lt;br /&gt;
    color: #D1F8D1;&lt;br /&gt;
    padding: 10px 10px;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    margin: 1em 3em 1em 4em;&lt;br /&gt;
    font-family: Consolas,&amp;quot;Liberation Mono&amp;quot;,Courier,monospace;&lt;br /&gt;
}&lt;br /&gt;
/* Pre tags in MediaWiki Namespace */&lt;br /&gt;
.ns-8 pre {&lt;br /&gt;
    background: #efefee;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    color: #483d8b;&lt;br /&gt;
}&lt;br /&gt;
/* Pre tags plain */&lt;br /&gt;
pre.code {&lt;br /&gt;
    color: #555;&lt;br /&gt;
    background: #f8f8f8;&lt;br /&gt;
    border: 1px solid #dfdfdf;&lt;br /&gt;
    margin: 1em 0;&lt;br /&gt;
}&lt;br /&gt;
/* Image classes */&lt;br /&gt;
.center {&lt;br /&gt;
    text-align:  center;&lt;br /&gt;
}&lt;br /&gt;
img {&lt;br /&gt;
    margin-bottom:  1em;&lt;br /&gt;
}&lt;br /&gt;
/* Nested UL and OL */&lt;br /&gt;
.mw-content-ltr ul&amp;gt;li&amp;gt;ul {&lt;br /&gt;
    margin: .25em 0 .25em 1.25em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    margin: .25em 0 .25em 1.25em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: upper-alpha;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: lower-alpha;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: lower-roman;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: decimal;&lt;br /&gt;
}&lt;br /&gt;
dl, dd, dl dd {&lt;br /&gt;
    margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Override MW legacy.module for all skins styling of ul and ol */&lt;br /&gt;
.mw-content-ltr ul,&lt;br /&gt;
.mw-content-rtl .mw-content-ltr ul {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 0 0.5em 3.2em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.mw-content-rtl ul,&lt;br /&gt;
.mw-content-ltr .mw-content-rtl ul {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 3.2em 0 0.5em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.mw-content-ltr ol,&lt;br /&gt;
.mw-content-rtl .mw-content-ltr ol {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 0 0.5em 3.2em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.mw-content-rtl ol,&lt;br /&gt;
.mw-content-ltr .mw-content-rtl ol {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 3.2em 0 0.5em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
/* @noflip */&lt;br /&gt;
.mw-content-ltr dd,&lt;br /&gt;
.mw-content-rtl .mw-content-ltr dd {&lt;br /&gt;
	margin-left: 1.6em;&lt;br /&gt;
	margin-right: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
/* @noflip */&lt;br /&gt;
.mw-content-rtl dd,&lt;br /&gt;
.mw-content-ltr .mw-content-rtl dd {&lt;br /&gt;
	margin-right: 1.6em;&lt;br /&gt;
	margin-left: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Notice Boxes */&lt;br /&gt;
.dablink {&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
    padding-bottom: 0.5em;&lt;br /&gt;
    padding-left: 0;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
    color: #555;&lt;br /&gt;
    border-bottom: 1px solid #ccc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div[class*=&amp;quot;panel radius notice-&amp;quot;] {&lt;br /&gt;
    -webkit-box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.75);&lt;br /&gt;
    -moz-box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.75);&lt;br /&gt;
    box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-note {&lt;br /&gt;
    background: lightgray;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-warning {&lt;br /&gt;
    background: rgba(255, 0, 0, 0.85);&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: white;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-hint {&lt;br /&gt;
    background: mediumseagreen;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-see-also {&lt;br /&gt;
    background: lightgoldenrodyellow;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: #191970;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-info {&lt;br /&gt;
    background: aliceblue;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: #191970;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notice {&lt;br /&gt;
    margin: .5em 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notice-title {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    border-bottom:1px solid;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    font-size: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.notice {&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    font-size: 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Category links */&lt;br /&gt;
#mw-normal-catlinks li {&lt;br /&gt;
    background: #2f3f4f;&lt;br /&gt;
    margin: 5px;&lt;br /&gt;
    padding: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#catlinks ul li a {&lt;br /&gt;
    color: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Screen width styles 60em and under */&lt;br /&gt;
&lt;br /&gt;
@media screen and (max-width: 60em) {&lt;br /&gt;
    .notice-icon {&lt;br /&gt;
        font-size: .65em;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (max-width: 60em) {&lt;br /&gt;
    pre {&lt;br /&gt;
        margin-left:0px;&lt;br /&gt;
        margin-right:0px;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=MediaWiki:Pivot.css&amp;diff=160</id>
		<title>MediaWiki:Pivot.css</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=MediaWiki:Pivot.css&amp;diff=160"/>
		<updated>2019-10-20T03:31:25Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Icons */&lt;br /&gt;
#n-Contact-us a:before {&lt;br /&gt;
    content: &amp;quot;\f003&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
/* Custom colors - top bar*/&lt;br /&gt;
.tab-bar {&lt;br /&gt;
    background: #2f3f4f&lt;br /&gt;
}&lt;br /&gt;
/* style the labels */&lt;br /&gt;
ul.side-nav label {&lt;br /&gt;
    background: #2f3f4f;&lt;br /&gt;
    color: #fff;&lt;br /&gt;
    padding: .25em .5em;&lt;br /&gt;
}&lt;br /&gt;
/* sidebar background color and font-family */&lt;br /&gt;
body {&lt;br /&gt;
    background-color: #bad6d6;&lt;br /&gt;
    font-family: -apple-system,BlinkMacSystemFont,&amp;quot;Segoe UI&amp;quot;,Helvetica,Arial,sans-serif,&amp;quot;Apple Color Emoji&amp;quot;,&amp;quot;Segoe UI Emoji&amp;quot;,&amp;quot;Segoe UI Symbol&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.side-nav {&lt;br /&gt;
    font-family: -apple-system,BlinkMacSystemFont,&amp;quot;Segoe UI&amp;quot;,Helvetica,Arial,sans-serif,&amp;quot;Apple Color Emoji&amp;quot;,&amp;quot;Segoe UI Emoji&amp;quot;,&amp;quot;Segoe UI Symbol&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
/* Pre tags */&lt;br /&gt;
pre {&lt;br /&gt;
    background: darkslategrey;&lt;br /&gt;
    color: #D1F8D1;&lt;br /&gt;
    padding: 10px 10px;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    margin: 1em 3em 1em 4em;&lt;br /&gt;
    font-family: Consolas,&amp;quot;Liberation Mono&amp;quot;,Courier,monospace;&lt;br /&gt;
}&lt;br /&gt;
/* Pre tags in MediaWiki Namespace */&lt;br /&gt;
.ns-8 pre {&lt;br /&gt;
    background: #efefee;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Pre tags plain */&lt;br /&gt;
pre.code {&lt;br /&gt;
    color: #555;&lt;br /&gt;
    background: #f8f8f8;&lt;br /&gt;
    border: 1px solid #dfdfdf;&lt;br /&gt;
    margin: 1em 0;&lt;br /&gt;
}&lt;br /&gt;
/* Image classes */&lt;br /&gt;
.center {&lt;br /&gt;
    text-align:  center;&lt;br /&gt;
}&lt;br /&gt;
img {&lt;br /&gt;
    margin-bottom:  1em;&lt;br /&gt;
}&lt;br /&gt;
/* Nested UL and OL */&lt;br /&gt;
.mw-content-ltr ul&amp;gt;li&amp;gt;ul {&lt;br /&gt;
    margin: .25em 0 .25em 1.25em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    margin: .25em 0 .25em 1.25em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: upper-alpha;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: lower-alpha;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: lower-roman;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol&amp;gt;li&amp;gt;ol {&lt;br /&gt;
    list-style-type: decimal;&lt;br /&gt;
}&lt;br /&gt;
dl, dd, dl dd {&lt;br /&gt;
    margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Override MW legacy.module for all skins styling of ul and ol */&lt;br /&gt;
.mw-content-ltr ul,&lt;br /&gt;
.mw-content-rtl .mw-content-ltr ul {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 0 0.5em 3.2em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.mw-content-rtl ul,&lt;br /&gt;
.mw-content-ltr .mw-content-rtl ul {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 3.2em 0 0.5em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.mw-content-ltr ol,&lt;br /&gt;
.mw-content-rtl .mw-content-ltr ol {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 0 0.5em 3.2em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.mw-content-rtl ol,&lt;br /&gt;
.mw-content-ltr .mw-content-rtl ol {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 0em 3.2em 0 0.5em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
/* @noflip */&lt;br /&gt;
.mw-content-ltr dd,&lt;br /&gt;
.mw-content-rtl .mw-content-ltr dd {&lt;br /&gt;
	margin-left: 1.6em;&lt;br /&gt;
	margin-right: 0;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
/* @noflip */&lt;br /&gt;
.mw-content-rtl dd,&lt;br /&gt;
.mw-content-ltr .mw-content-rtl dd {&lt;br /&gt;
	margin-right: 1.6em;&lt;br /&gt;
	margin-left: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Notice Boxes */&lt;br /&gt;
.dablink {&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
    padding-bottom: 0.5em;&lt;br /&gt;
    padding-left: 0;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
    color: #555;&lt;br /&gt;
    border-bottom: 1px solid #ccc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div[class*=&amp;quot;panel radius notice-&amp;quot;] {&lt;br /&gt;
    -webkit-box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.75);&lt;br /&gt;
    -moz-box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.75);&lt;br /&gt;
    box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-note {&lt;br /&gt;
    background: lightgray;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-warning {&lt;br /&gt;
    background: rgba(255, 0, 0, 0.85);&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: white;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-hint {&lt;br /&gt;
    background: mediumseagreen;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-see-also {&lt;br /&gt;
    background: lightgoldenrodyellow;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: #191970;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.panel.radius.notice-info {&lt;br /&gt;
    background: aliceblue;&lt;br /&gt;
    padding: 5px 10px 0px 10px;&lt;br /&gt;
    color: #191970;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notice {&lt;br /&gt;
    margin: .5em 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notice-title {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    border-bottom:1px solid;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    font-size: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.notice {&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    font-size: 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Category links */&lt;br /&gt;
#mw-normal-catlinks li {&lt;br /&gt;
    background: #2f3f4f;&lt;br /&gt;
    margin: 5px;&lt;br /&gt;
    padding: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#catlinks ul li a {&lt;br /&gt;
    color: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Screen width styles 60em and under */&lt;br /&gt;
&lt;br /&gt;
@media screen and (max-width: 60em) {&lt;br /&gt;
    .notice-icon {&lt;br /&gt;
        font-size: .65em;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (max-width: 60em) {&lt;br /&gt;
    pre {&lt;br /&gt;
        margin-left:0px;&lt;br /&gt;
        margin-right:0px;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=MediaWiki:Sidebar&amp;diff=159</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=MediaWiki:Sidebar&amp;diff=159"/>
		<updated>2019-10-20T03:28:45Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** Special:Contact|Contact us&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=MediaWiki:Sidebar&amp;diff=158</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=MediaWiki:Sidebar&amp;diff=158"/>
		<updated>2019-10-20T03:28:15Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** contact-url|Contact us&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=MediaWiki:Sidebar&amp;diff=157</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=MediaWiki:Sidebar&amp;diff=157"/>
		<updated>2019-10-20T03:27:46Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot; * navigation ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage ** Special:Contact|contact us ** helppage|help-mediawiki * SEARC...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** Special:Contact|contact us&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=MediaWiki:Contactpage-defsubject&amp;diff=156</id>
		<title>MediaWiki:Contactpage-defsubject</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=MediaWiki:Contactpage-defsubject&amp;diff=156"/>
		<updated>2019-10-20T03:23:17Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: Created page with &amp;quot;[InfoTechPedia] Contact Message&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[InfoTechPedia] Contact Message&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Patch_Command&amp;diff=154</id>
		<title>Patch Command</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Patch_Command&amp;diff=154"/>
		<updated>2019-10-16T12:27:46Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows how to use the patch command in CLI &lt;br /&gt;
&lt;br /&gt;
Example using MediaWiki patch files to update minor versions of MediaWiki.&lt;br /&gt;
&lt;br /&gt;
A small patch file is usually made available for a minor version upgrade. Manually download and extract the patch file from the dumps site or follow the directions with wget below. Patches are incremental, you can not skip a version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:cd to your main MediaWiki directory (the one with LocalSettings.php)&lt;br /&gt;
:Download the patch file and gunzip it.&lt;br /&gt;
:Use patch &amp;lt;code&amp;gt;-p1 --dry-run&amp;lt;/code&amp;gt; to check what will be changed (e.g., &amp;lt;code&amp;gt;patch -p1 --dry-run -i mediawiki-x.xx.x.patch&amp;lt;/code&amp;gt;)&lt;br /&gt;
:If all is well, run patch again without --dry-run.&lt;br /&gt;
:Check your Special:Version and you should see the new version number in place.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]][[Category:Command Line]]&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
	<entry>
		<id>https://infotechpedia.org/w/index.php?title=Patch_Command&amp;diff=153</id>
		<title>Patch Command</title>
		<link rel="alternate" type="text/html" href="https://infotechpedia.org/w/index.php?title=Patch_Command&amp;diff=153"/>
		<updated>2019-10-16T12:26:07Z</updated>

		<summary type="html">&lt;p&gt;TomHutchison: new page on patch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Using patch cli command&lt;br /&gt;
&lt;br /&gt;
Example using MediaWiki patch files to update minor versions of MediaWiki.&lt;br /&gt;
&lt;br /&gt;
A small patch file is usually made available for a minor version upgrade. Manually download and extract the patch file from the dumps site or follow the directions with wget below. Patches are incremental, you can not skip a version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:cd to your main MediaWiki directory (the one with LocalSettings.php)&lt;br /&gt;
:Download the patch file and gunzip it.&lt;br /&gt;
:Use patch &amp;lt;code&amp;gt;-p1 --dry-run&amp;lt;/code&amp;gt; to check what will be changed (e.g., &amp;lt;code&amp;gt;patch -p1 --dry-run -i mediawiki-x.xx.x.patch&amp;lt;/code&amp;gt;)&lt;br /&gt;
:If all is well, run patch again without --dry-run.&lt;br /&gt;
:Check your Special:Version and you should see the new version number in place.&lt;/div&gt;</summary>
		<author><name>TomHutchison</name></author>
		
	</entry>
</feed>