<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Owbk</id>
	<title>Alpine Linux - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Owbk"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/Owbk"/>
	<updated>2026-05-03T02:31:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fonts&amp;diff=20343</id>
		<title>Fonts</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fonts&amp;diff=20343"/>
		<updated>2021-11-17T06:27:39Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* Non-free fonts */ Refactoring and add links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fonts&#039;&#039;&#039; on Alpine Linux covers a wide range of various languages.  If you can&#039;t see your language, you need to install the font that has glyphs (little picture) created for it.  The square box called a substitute character or &amp;quot;tofu&amp;quot; that acts as a placeholder for missing a glyph usually with a two byte sequence.  Tofu is a prepared food that is a traditional part of East Asian and Southeast Asian meals. It is often served in a white rectangular appearance.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 &lt;br /&gt;
Example how to install the font:&lt;br /&gt;
&lt;br /&gt;
 sudo apk add terminus-font&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fc-cache -fv&amp;lt;/code&amp;gt; can be used to display the font locations and to update the cache.  The system font directory is located at &#039;&#039;&#039;/usr/share/fonts&#039;&#039;&#039; which is reserved for the Alpine package creators and the package system.  The user font location is located in &#039;&#039;&#039;~/.fonts&#039;&#039;&#039; which is the preferred install font location especially from unknown sources.  Fonts have been used as a source of security exploits [https://www.cvedetails.com/vulnerability-list/vendor_id-4535/product_id-7835/Freetype-Freetype.html (See CVEs)] so to reduce the spread of attack install fonts inside &#039;&#039;&#039;~/.fonts&#039;&#039;&#039;.  The trusted system fonts that Alpine LInux packages typically are from well known sources like corporations like Google, Adobe, open organizations like XOrg or well known font designers or projects licensed as either [https://en.wikipedia.org/wiki/SIL_Open_Font_License SIL], GPL, etc.&lt;br /&gt;
&lt;br /&gt;
{{Note|The locations &amp;lt;code&amp;gt;~/.fonts.conf.d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;~/.fonts.conf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;~/.fontconfig/*.cache-*&amp;lt;/code&amp;gt; are deprecated and will not be read by default in future versions. Their replacements are &amp;lt;code&amp;gt;$XDG_CONFIG_HOME/fontconfig/conf.d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$XDG_CONFIG_HOME/fontconfig/fonts.conf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$XDG_CACHE_HOME/fontconfig/*.cache-*&amp;lt;/code&amp;gt; respectively. You might need to set the &amp;lt;code&amp;gt;XDG_CONFIG_HOME&amp;lt;/code&amp;gt; environment variable yourself.}}&lt;br /&gt;
&lt;br /&gt;
If you install xorg-server, it will pull font-misc-misc meaning that many popular languages (Japanese, Korean, Latin, Cyrillic) are already covered except for Arabic, Persian, Thai, Tamil, etc from inspecting the Wikipedia Page left column on languages for article translation.&lt;br /&gt;
&lt;br /&gt;
The default may be an eyesore so there are alternatives mentioned below.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
Some applications do not specify a specific font to use but rather say sans-serif [sans means without as in without tiny lines], serif, monospace [as in proportional square font].  This is where Fontconfig comes into place by substituting the general font type with a specific font that you like.  For package developers, &#039;&#039;&#039;/etc/fonts/conf.avail&#039;&#039;&#039; contains a fontconfig configuration file.  This will be symlinked into &#039;&#039;&#039;/etc/fonts/conf.d&#039;&#039;&#039;.  See &#039;&#039;&#039;/etc/fonts/conf.d/README&#039;&#039;&#039; for details about the meaning behind the priority numbers.&lt;br /&gt;
&lt;br /&gt;
For regular users, you want to create/edit your personal &#039;&#039;&#039;~/.fonts.conf&#039;&#039;&#039;.  This is in XML and describes which preferred font to use for these general types.  See [https://www.freedesktop.org/software/fontconfig/fontconfig-user.html this] for details.&lt;br /&gt;
&lt;br /&gt;
== List of fonts in Alpine Linux ==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Utopia_(typeface) Utopia] - font-adobe-utopia-*&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Noto_fonts Noto] - font-noto-* -- These fonts can cover different glyphs for your language.  If you go to https://www.google.com/get/noto/ , you can try to search for your language to see if it is supported.  If Alpine doesn&#039;t have it, you can download it from Google into your &#039;&#039;&#039;~/.font&#039;&#039;&#039; .  As hinted in the introduction, noto comes from &#039;&#039;&#039;no to&#039;&#039;&#039;fu or gradual elimination of these substitute characters off the web.&lt;br /&gt;
 font-noto&lt;br /&gt;
 font-noto-adlam&lt;br /&gt;
 font-noto-adlamunjoined&lt;br /&gt;
 font-noto-arabic&lt;br /&gt;
 font-noto-armenian&lt;br /&gt;
 font-noto-avestan&lt;br /&gt;
 font-noto-bamum&lt;br /&gt;
 font-noto-bengali&lt;br /&gt;
 font-noto-buhid&lt;br /&gt;
 font-noto-carian&lt;br /&gt;
 font-noto-chakma&lt;br /&gt;
 font-noto-cherokee&lt;br /&gt;
 font-noto-cypriot&lt;br /&gt;
 font-noto-deseret&lt;br /&gt;
 font-noto-devanagari (Hindi / Sanskrit)&lt;br /&gt;
 font-noto-emoji&lt;br /&gt;
 font-noto-ethiopic&lt;br /&gt;
 font-noto-extra&lt;br /&gt;
 font-noto-georgian&lt;br /&gt;
 font-noto-glagolitic&lt;br /&gt;
 font-noto-gothic&lt;br /&gt;
 font-noto-gujarati&lt;br /&gt;
 font-noto-gurmukhi&lt;br /&gt;
 font-noto-hebrew&lt;br /&gt;
 font-noto-kannada&lt;br /&gt;
 font-noto-kayahli&lt;br /&gt;
 font-noto-khmer&lt;br /&gt;
 font-noto-lao&lt;br /&gt;
 font-noto-lisu&lt;br /&gt;
 font-noto-malayalam&lt;br /&gt;
 font-noto-mandaic&lt;br /&gt;
 font-noto-myanmar&lt;br /&gt;
 font-noto-nko&lt;br /&gt;
 font-noto-olchiki&lt;br /&gt;
 font-noto-oldturkic&lt;br /&gt;
 font-noto-oriya&lt;br /&gt;
 font-noto-osage&lt;br /&gt;
 font-noto-osmanya&lt;br /&gt;
 font-noto-shavian&lt;br /&gt;
 font-noto-sinhala&lt;br /&gt;
 font-noto-tamil&lt;br /&gt;
 font-noto-telugu&lt;br /&gt;
 font-noto-thaana&lt;br /&gt;
 font-noto-thai&lt;br /&gt;
 font-noto-tibetan&lt;br /&gt;
 font-noto-tifinagh&lt;br /&gt;
 font-noto-vai&lt;br /&gt;
* [https://en.wikipedia.org/wiki/List_of_monospaced_typefaces#/media/File:Terminus_Specimen.png Terminus] - terminus-font -- Monospace font&lt;br /&gt;
* [http://mirrors.ibiblio.org/CTAN/systems/win32/bakoma/fonts/fonts.html BaKoMa] font-bakoma-* -- Fonts for TeX typesetting system (for academics in the math and sciences and book writers) and TeX (WYSIWYG) editors&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Bitstream_Speedo_Fonts Bitstream Speedo] - font-bitstream-speedo&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Bitstream_Vera Bitstream Vera] font-bitstream-*&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Bitstream_Vera Bera (Bitstream Vera Type 1)] - font-bitstream-type1 -- Use for LaTeX&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Ubuntu_(typeface) Ubuntu] - ttf-ubuntu-font-family&lt;br /&gt;
* [http://fortawesome.github.io/Font-Awesome/ Font Awesome] - ttf-font-awesome -- It was used in Twitter Bootstrap.  It is a font representing things and brands as Icons.&lt;br /&gt;
* [https://www.gnu.org/software/freefont/ GNU FreeFont] - ttf-freefont -- See link for support for different writing systems/languages&lt;br /&gt;
* [https://en.wikipedia.org/wiki/GNU_Unifont GNU Unifont] - unifont -- It contains glyphs of every codepoint&lt;br /&gt;
* font-misc-cyrillic -- Cyrillic fonts (Russian/Slavic Style)&lt;br /&gt;
* font-screen-cyrillic -- X.org public domain Cyrillic fonts for screen use&lt;br /&gt;
* font-misc-ethiopic -- Ethiopic fonts used in Ethiopia and Eritrea&lt;br /&gt;
* font-misc-meltho -- For the Syriac language&lt;br /&gt;
* font-misc-misc -- Bitmap fonts in PCF format (shows glyphs of many types and installed by default by xorg-server package)&lt;br /&gt;
* [https://www.rockbox.org/mail/archive/rockbox-dev-archive-2005-12/0029.shtml ClearlyU fonts] - font-mutt-misc -- Thai, Ethiopic, Hebrew, Romanian, Persian, Korean Hangul, Greek, Persian, Russian/Slavic Cyrillic, Macedonian/Serbian, Armenian, Georgian, Lao, Devanagari, Urdu (Hindustani as in Northern India and Pakistan), Cherokee, Thaana.  See link to changelog for full list of languages supported.&lt;br /&gt;
* [https://github.com/lucy/tewi-font tewi font] font-tewi - A tiny bitmap font that contains braille glyphs&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Overpass_(typeface) Overpass] - font-overpass&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Luxi_fonts Luxi fonts] - font-bh-* -- designed by Kris Holmes and Charles Bigelow which bh is refers to the last name&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Lucida#Lucida_Typewriter_Serif Lucida Typewriter] - font-bh-lucidatypewriter-*&lt;br /&gt;
* [https://ipafont.ipa.go.jp/#jp IPA Font] - font-ipa -- A Japanese font&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Croscore_fonts Chrome OS core fonts] - font-croscore&lt;br /&gt;
* [http://vollkorn-typeface.com/ Vollkorn] - font-vollkorn - A serif font with glyphs for Cyrillic (Russian/Slavic), Greek, Polish, Dutch, Bulgarian, Serbian, and small capitals&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Open_Sans Open Sans] - ttf-opensans&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Cantarell_(typeface) Cantarell] - ttf-cantarell -- Designed for reading and the default GNOME font&lt;br /&gt;
* [https://en.wikipedia.org/wiki/DejaVu_fonts DejaVu] - ttf-dejavu -- A modified Bitstream Vera with more styles and unicode coverage&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Linux_Libertine Linux Libertine] - ttf-linux-libertine -- A free alternative to Times New Roman&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Liberation_fonts Liberation] ttf-liberation -- A free alternative to Helvetica and Arial&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Inconsolata Inconsolata] - ttf-inconsolata -- A monospace font designed for terminals and reading source code&lt;br /&gt;
* [http://madmalik.github.io/mononoki/ mononoki] - ttf-mononoki -- A font for programming and code review&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Droid_fonts Droid] - ttf-droid / ttf-droid-nonlatin -- Designed for small screens and was used in older Android&lt;br /&gt;
* font-schumacher-misc -- Fixed width fonts by Dale Schumacher&lt;br /&gt;
* font-sony-misc -- Japanese Kana fonts by Sony Electronics&lt;br /&gt;
* font-daewoo-misc -- JIS (Japanese Industrial Standards) Kanji and Korean Hangul fonts by Daewoo Electronics&lt;br /&gt;
* font-cursor-misc -- A standard cursor font&lt;br /&gt;
* font-sun-misc -- Cursor and glyph fonts by Sun Microsystems&lt;br /&gt;
* font-winitzki-cyrillic -- A Cyrillic (Russian) font by Serge Winitzki designed for proofreading mixed Russian-English text&lt;br /&gt;
* font-isas-misc -- Chinese Song Ti style fonts (thinner horizontal lines compared to vertical)&lt;br /&gt;
* font-jis-misc -- A Japanese International Standard font&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Courier_(typeface)#IBM_Courier IBM Courier] font-ibm-type1&lt;br /&gt;
* font-dec-misc -- A Digital Equipment Corporation cursor and session fonts&lt;br /&gt;
* font-cronyx-cyrillic -- A Russian font for X11 by Cronyx&lt;br /&gt;
* font-arabic-misc -- A bitmap and proportional Arabic font in newspaper style [http://unicode.org/mail-arch/unicode-ml/Archives-Old/UML010/0237.html ]&lt;br /&gt;
&lt;br /&gt;
==Non-free fonts==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Core_fonts_for_the_Web Core fonts for the Web] ({{Pkg|msttcorefonts-installer}}) - For installing non-free proprietary Microsoft fonts like [https://en.wikipedia.org/wiki/Comic_Sans Comic Sans]. Not recommended for commercial or open source projects. See their [https://web.archive.org/web/20091208063245/http://www.microsoft.com/typography/fontpack/eula.htm licensing].&lt;br /&gt;
  Arial&lt;br /&gt;
  Arial Black&lt;br /&gt;
  Andalé Mono&lt;br /&gt;
  Courier New&lt;br /&gt;
  Comic Sans MS&lt;br /&gt;
  Georgia&lt;br /&gt;
  Impact&lt;br /&gt;
  Times New Roman&lt;br /&gt;
  Trebuchet MS&lt;br /&gt;
  Verdana&lt;br /&gt;
  Webdings&lt;br /&gt;
&lt;br /&gt;
== Changing the console font ==&lt;br /&gt;
&lt;br /&gt;
The default font may be too small on high-resolution monitors, e.g. 4K ones. To change the default font, e.g. to the 32px ISO Latin-1 Terminus font:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;apk add terminus-font&amp;lt;/code&amp;gt;&lt;br /&gt;
# try out fonts in a virtual console using &amp;lt;code&amp;gt;setfont /usr/share/consolefonts/ter-132n.psf.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/etc/conf.d/consolefont&amp;lt;/code&amp;gt;, set it to the font you choose, e.g. &amp;lt;code&amp;gt;consolefont=&amp;quot;ter-132n.psf.gz&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# enable this using &amp;lt;code&amp;gt;rc-update add consolefont boot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Emojis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infographics]]&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fonts&amp;diff=20339</id>
		<title>Fonts</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fonts&amp;diff=20339"/>
		<updated>2021-11-14T04:24:51Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* Installation */ Add note for deprecated locations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fonts&#039;&#039;&#039; on Alpine Linux covers a wide range of various languages.  If you can&#039;t see your language, you need to install the font that has glyphs (little picture) created for it.  The square box called a substitute character or &amp;quot;tofu&amp;quot; that acts as a placeholder for missing a glyph usually with a two byte sequence.  Tofu is a prepared food that is a traditional part of East Asian and Southeast Asian meals. It is often served in a white rectangular appearance.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 &lt;br /&gt;
Example how to install the font:&lt;br /&gt;
&lt;br /&gt;
 sudo apk add terminus-font&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fc-cache -fv&amp;lt;/code&amp;gt; can be used to display the font locations and to update the cache.  The system font directory is located at &#039;&#039;&#039;/usr/share/fonts&#039;&#039;&#039; which is reserved for the Alpine package creators and the package system.  The user font location is located in &#039;&#039;&#039;~/.fonts&#039;&#039;&#039; which is the preferred install font location especially from unknown sources.  Fonts have been used as a source of security exploits [https://www.cvedetails.com/vulnerability-list/vendor_id-4535/product_id-7835/Freetype-Freetype.html (See CVEs)] so to reduce the spread of attack install fonts inside &#039;&#039;&#039;~/.fonts&#039;&#039;&#039;.  The trusted system fonts that Alpine LInux packages typically are from well known sources like corporations like Google, Adobe, open organizations like XOrg or well known font designers or projects licensed as either [https://en.wikipedia.org/wiki/SIL_Open_Font_License SIL], GPL, etc.&lt;br /&gt;
&lt;br /&gt;
{{Note|The locations &amp;lt;code&amp;gt;~/.fonts.conf.d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;~/.fonts.conf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;~/.fontconfig/*.cache-*&amp;lt;/code&amp;gt; are deprecated and will not be read by default in future versions. Their replacements are &amp;lt;code&amp;gt;$XDG_CONFIG_HOME/fontconfig/conf.d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$XDG_CONFIG_HOME/fontconfig/fonts.conf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$XDG_CACHE_HOME/fontconfig/*.cache-*&amp;lt;/code&amp;gt; respectively. You might need to set the &amp;lt;code&amp;gt;XDG_CONFIG_HOME&amp;lt;/code&amp;gt; environment variable yourself.}}&lt;br /&gt;
&lt;br /&gt;
If you install xorg-server, it will pull font-misc-misc meaning that many popular languages (Japanese, Korean, Latin, Cyrillic) are already covered except for Arabic, Persian, Thai, Tamil, etc from inspecting the Wikipedia Page left column on languages for article translation.&lt;br /&gt;
&lt;br /&gt;
The default may be an eyesore so there are alternatives mentioned below.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
Some applications do not specify a specific font to use but rather say sans-serif [sans means without as in without tiny lines], serif, monospace [as in proportional square font].  This is where Fontconfig comes into place by substituting the general font type with a specific font that you like.  For package developers, &#039;&#039;&#039;/etc/fonts/conf.avail&#039;&#039;&#039; contains a fontconfig configuration file.  This will be symlinked into &#039;&#039;&#039;/etc/fonts/conf.d&#039;&#039;&#039;.  See &#039;&#039;&#039;/etc/fonts/conf.d/README&#039;&#039;&#039; for details about the meaning behind the priority numbers.&lt;br /&gt;
&lt;br /&gt;
For regular users, you want to create/edit your personal &#039;&#039;&#039;~/.fonts.conf&#039;&#039;&#039;.  This is in XML and describes which preferred font to use for these general types.  See [https://www.freedesktop.org/software/fontconfig/fontconfig-user.html this] for details.&lt;br /&gt;
&lt;br /&gt;
== List of fonts in Alpine Linux ==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Utopia_(typeface) Utopia] - font-adobe-utopia-*&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Noto_fonts Noto] - font-noto-* -- These fonts can cover different glyphs for your language.  If you go to https://www.google.com/get/noto/ , you can try to search for your language to see if it is supported.  If Alpine doesn&#039;t have it, you can download it from Google into your &#039;&#039;&#039;~/.font&#039;&#039;&#039; .  As hinted in the introduction, noto comes from &#039;&#039;&#039;no to&#039;&#039;&#039;fu or gradual elimination of these substitute characters off the web.&lt;br /&gt;
 font-noto&lt;br /&gt;
 font-noto-adlam&lt;br /&gt;
 font-noto-adlamunjoined&lt;br /&gt;
 font-noto-arabic&lt;br /&gt;
 font-noto-armenian&lt;br /&gt;
 font-noto-avestan&lt;br /&gt;
 font-noto-bamum&lt;br /&gt;
 font-noto-bengali&lt;br /&gt;
 font-noto-buhid&lt;br /&gt;
 font-noto-carian&lt;br /&gt;
 font-noto-chakma&lt;br /&gt;
 font-noto-cherokee&lt;br /&gt;
 font-noto-cypriot&lt;br /&gt;
 font-noto-deseret&lt;br /&gt;
 font-noto-devanagari (Hindi / Sanskrit)&lt;br /&gt;
 font-noto-emoji&lt;br /&gt;
 font-noto-ethiopic&lt;br /&gt;
 font-noto-extra&lt;br /&gt;
 font-noto-georgian&lt;br /&gt;
 font-noto-glagolitic&lt;br /&gt;
 font-noto-gothic&lt;br /&gt;
 font-noto-gujarati&lt;br /&gt;
 font-noto-gurmukhi&lt;br /&gt;
 font-noto-hebrew&lt;br /&gt;
 font-noto-kannada&lt;br /&gt;
 font-noto-kayahli&lt;br /&gt;
 font-noto-khmer&lt;br /&gt;
 font-noto-lao&lt;br /&gt;
 font-noto-lisu&lt;br /&gt;
 font-noto-malayalam&lt;br /&gt;
 font-noto-mandaic&lt;br /&gt;
 font-noto-myanmar&lt;br /&gt;
 font-noto-nko&lt;br /&gt;
 font-noto-olchiki&lt;br /&gt;
 font-noto-oldturkic&lt;br /&gt;
 font-noto-oriya&lt;br /&gt;
 font-noto-osage&lt;br /&gt;
 font-noto-osmanya&lt;br /&gt;
 font-noto-shavian&lt;br /&gt;
 font-noto-sinhala&lt;br /&gt;
 font-noto-tamil&lt;br /&gt;
 font-noto-telugu&lt;br /&gt;
 font-noto-thaana&lt;br /&gt;
 font-noto-thai&lt;br /&gt;
 font-noto-tibetan&lt;br /&gt;
 font-noto-tifinagh&lt;br /&gt;
 font-noto-vai&lt;br /&gt;
* [https://en.wikipedia.org/wiki/List_of_monospaced_typefaces#/media/File:Terminus_Specimen.png Terminus] - terminus-font -- Monospace font&lt;br /&gt;
* [http://mirrors.ibiblio.org/CTAN/systems/win32/bakoma/fonts/fonts.html BaKoMa] font-bakoma-* -- Fonts for TeX typesetting system (for academics in the math and sciences and book writers) and TeX (WYSIWYG) editors&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Bitstream_Speedo_Fonts Bitstream Speedo] - font-bitstream-speedo&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Bitstream_Vera Bitstream Vera] font-bitstream-*&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Bitstream_Vera Bera (Bitstream Vera Type 1)] - font-bitstream-type1 -- Use for LaTeX&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Ubuntu_(typeface) Ubuntu] - ttf-ubuntu-font-family&lt;br /&gt;
* [http://fortawesome.github.io/Font-Awesome/ Font Awesome] - ttf-font-awesome -- It was used in Twitter Bootstrap.  It is a font representing things and brands as Icons.&lt;br /&gt;
* [https://www.gnu.org/software/freefont/ GNU FreeFont] - ttf-freefont -- See link for support for different writing systems/languages&lt;br /&gt;
* [https://en.wikipedia.org/wiki/GNU_Unifont GNU Unifont] - unifont -- It contains glyphs of every codepoint&lt;br /&gt;
* font-misc-cyrillic -- Cyrillic fonts (Russian/Slavic Style)&lt;br /&gt;
* font-screen-cyrillic -- X.org public domain Cyrillic fonts for screen use&lt;br /&gt;
* font-misc-ethiopic -- Ethiopic fonts used in Ethiopia and Eritrea&lt;br /&gt;
* font-misc-meltho -- For the Syriac language&lt;br /&gt;
* font-misc-misc -- Bitmap fonts in PCF format (shows glyphs of many types and installed by default by xorg-server package)&lt;br /&gt;
* [https://www.rockbox.org/mail/archive/rockbox-dev-archive-2005-12/0029.shtml ClearlyU fonts] - font-mutt-misc -- Thai, Ethiopic, Hebrew, Romanian, Persian, Korean Hangul, Greek, Persian, Russian/Slavic Cyrillic, Macedonian/Serbian, Armenian, Georgian, Lao, Devanagari, Urdu (Hindustani as in Northern India and Pakistan), Cherokee, Thaana.  See link to changelog for full list of languages supported.&lt;br /&gt;
* [https://github.com/lucy/tewi-font tewi font] font-tewi - A tiny bitmap font that contains braille glyphs&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Overpass_(typeface) Overpass] - font-overpass&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Luxi_fonts Luxi fonts] - font-bh-* -- designed by Kris Holmes and Charles Bigelow which bh is refers to the last name&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Lucida#Lucida_Typewriter_Serif Lucida Typewriter] - font-bh-lucidatypewriter-*&lt;br /&gt;
* [https://ipafont.ipa.go.jp/#jp IPA Font] - font-ipa -- A Japanese font&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Croscore_fonts Chrome OS core fonts] - font-croscore&lt;br /&gt;
* [http://vollkorn-typeface.com/ Vollkorn] - font-vollkorn - A serif font with glyphs for Cyrillic (Russian/Slavic), Greek, Polish, Dutch, Bulgarian, Serbian, and small capitals&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Open_Sans Open Sans] - ttf-opensans&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Cantarell_(typeface) Cantarell] - ttf-cantarell -- Designed for reading and the default GNOME font&lt;br /&gt;
* [https://en.wikipedia.org/wiki/DejaVu_fonts DejaVu] - ttf-dejavu -- A modified Bitstream Vera with more styles and unicode coverage&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Linux_Libertine Linux Libertine] - ttf-linux-libertine -- A free alternative to Times New Roman&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Liberation_fonts Liberation] ttf-liberation -- A free alternative to Helvetica and Arial&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Inconsolata Inconsolata] - ttf-inconsolata -- A monospace font designed for terminals and reading source code&lt;br /&gt;
* [http://madmalik.github.io/mononoki/ mononoki] - ttf-mononoki -- A font for programming and code review&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Droid_fonts Droid] - ttf-droid / ttf-droid-nonlatin -- Designed for small screens and was used in older Android&lt;br /&gt;
* font-schumacher-misc -- Fixed width fonts by Dale Schumacher&lt;br /&gt;
* font-sony-misc -- Japanese Kana fonts by Sony Electronics&lt;br /&gt;
* font-daewoo-misc -- JIS (Japanese Industrial Standards) Kanji and Korean Hangul fonts by Daewoo Electronics&lt;br /&gt;
* font-cursor-misc -- A standard cursor font&lt;br /&gt;
* font-sun-misc -- Cursor and glyph fonts by Sun Microsystems&lt;br /&gt;
* font-winitzki-cyrillic -- A Cyrillic (Russian) font by Serge Winitzki designed for proofreading mixed Russian-English text&lt;br /&gt;
* font-isas-misc -- Chinese Song Ti style fonts (thinner horizontal lines compared to vertical)&lt;br /&gt;
* font-jis-misc -- A Japanese International Standard font&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Courier_(typeface)#IBM_Courier IBM Courier] font-ibm-type1&lt;br /&gt;
* font-dec-misc -- A Digital Equipment Corporation cursor and session fonts&lt;br /&gt;
* font-cronyx-cyrillic -- A Russian font for X11 by Cronyx&lt;br /&gt;
* font-arabic-misc -- A bitmap and proportional Arabic font in newspaper style [http://unicode.org/mail-arch/unicode-ml/Archives-Old/UML010/0237.html ]&lt;br /&gt;
&lt;br /&gt;
==Non-free fonts==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Core_fonts_for_the_Web Core fonts for the Web] msttcorefonts-installer-- For installing non-free proprietary Microsoft fonts like [https://en.wikipedia.org/wiki/Comic_Sans Comic Sans] [https://packages.debian.org/sid/ttf-mscorefonts-installer ].  Not recommended for commercial project or open source projects.  See their licensing.&lt;br /&gt;
  Andale Mono&lt;br /&gt;
  Arial Black&lt;br /&gt;
  Arial&lt;br /&gt;
  Comic Sans MS&lt;br /&gt;
  Courier New&lt;br /&gt;
  Georgia&lt;br /&gt;
  Impact&lt;br /&gt;
  Times New Roman&lt;br /&gt;
  Trebuchet&lt;br /&gt;
  Verdana&lt;br /&gt;
  Webdings&lt;br /&gt;
&lt;br /&gt;
== Changing the console font ==&lt;br /&gt;
&lt;br /&gt;
The default font may be too small on high-resolution monitors, e.g. 4K ones. To change the default font, e.g. to the 32px ISO Latin-1 Terminus font:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;apk add terminus-font&amp;lt;/code&amp;gt;&lt;br /&gt;
# try out fonts in a virtual console using &amp;lt;code&amp;gt;setfont /usr/share/consolefonts/ter-132n.psf.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/etc/conf.d/consolefont&amp;lt;/code&amp;gt;, set it to the font you choose, e.g. &amp;lt;code&amp;gt;consolefont=&amp;quot;ter-132n.psf.gz&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# enable this using &amp;lt;code&amp;gt;rc-update add consolefont boot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Emojis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infographics]]&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Filesystems&amp;diff=20244</id>
		<title>Filesystems</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Filesystems&amp;diff=20244"/>
		<updated>2021-11-10T05:30:58Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* Install */ Add btrfs package&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Storage]]&lt;br /&gt;
Documentation how to use the Alpine distro to format HD/Floppy/Other.&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
Alpine has multiple storage media formatting packages available. Different packages/programs are used to format different types of filesystems.&lt;br /&gt;
* {{Pkg|dosfstools}} - For FAT12/FAT16/FAT32&lt;br /&gt;
* reiserfsprogs - For ReiserFS (Note: not available in Alpine repositories yet)&lt;br /&gt;
* {{Pkg|e2fsprogs}} - For ext3/ext4&lt;br /&gt;
* {{Pkg|xfsprogs}} - For XFS&lt;br /&gt;
* {{Pkg|jfsutils}} - For JFS&lt;br /&gt;
* {{Pkg|ntfs-3g}} - For NTFS (Note: ntfs-3g is a FUSE driver)&lt;br /&gt;
* {{Pkg|btrfs-progs}} - For BTRFS&lt;br /&gt;
&lt;br /&gt;
In our example we want to format the floppy as vfat.&lt;br /&gt;
{{Cmd|apk add dosfstools}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Here are some examples on how to use the formatting tools:&lt;br /&gt;
&lt;br /&gt;
=== dosfstools ===&lt;br /&gt;
{{Cmd|mkfs.vfat /dev/fd0}}&lt;br /&gt;
&lt;br /&gt;
=== e2fsprogs ===&lt;br /&gt;
{{Cmd|mkfs.ext2 /dev/fd0&lt;br /&gt;
mkfs.ext3 /dev/fd0}}&lt;br /&gt;
&lt;br /&gt;
=== btrfs-progs ===&lt;br /&gt;
{{Cmd|mkfs.btrfs /dev/fd0}}&lt;br /&gt;
&lt;br /&gt;
== Other devices ==&lt;br /&gt;
In our case we want to format a floppy disk. (/dev/fd0) You can change /dev/fd0 to the device you want to format.&lt;br /&gt;
&lt;br /&gt;
== Partitions ==&lt;br /&gt;
If you need to change or make a partition table on a Hard Drive you want to format, you can use:&lt;br /&gt;
&lt;br /&gt;
=== fdisk ===&lt;br /&gt;
{{Cmd|fdisk /dev/hdc}}&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Filesystems&amp;diff=20243</id>
		<title>Filesystems</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Filesystems&amp;diff=20243"/>
		<updated>2021-11-10T05:30:20Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* Format */ Add formatting example for btrfs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Storage]]&lt;br /&gt;
Documentation how to use the Alpine distro to format HD/Floppy/Other.&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
Alpine has multiple storage media formatting packages available. Different packages/programs are used to format different types of filesystems.&lt;br /&gt;
* {{Pkg|dosfstools}} - For FAT12/FAT16/FAT32&lt;br /&gt;
* reiserfsprogs - For ReiserFS (Note: not available in Alpine repositories yet)&lt;br /&gt;
* {{Pkg|e2fsprogs}} - For ext3/ext4&lt;br /&gt;
* {{Pkg|xfsprogs}} - For XFS&lt;br /&gt;
* {{Pkg|jfsutils}} - For JFS&lt;br /&gt;
* {{Pkg|ntfs-3g}} - For NTFS (Note: ntfs-3g is a FUSE driver)&lt;br /&gt;
&lt;br /&gt;
In our example we want to format the floppy as vfat.&lt;br /&gt;
{{Cmd|apk add dosfstools}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Here are some examples on how to use the formatting tools:&lt;br /&gt;
&lt;br /&gt;
=== dosfstools ===&lt;br /&gt;
{{Cmd|mkfs.vfat /dev/fd0}}&lt;br /&gt;
&lt;br /&gt;
=== e2fsprogs ===&lt;br /&gt;
{{Cmd|mkfs.ext2 /dev/fd0&lt;br /&gt;
mkfs.ext3 /dev/fd0}}&lt;br /&gt;
&lt;br /&gt;
=== btrfs-progs ===&lt;br /&gt;
{{Cmd|mkfs.btrfs /dev/fd0}}&lt;br /&gt;
&lt;br /&gt;
== Other devices ==&lt;br /&gt;
In our case we want to format a floppy disk. (/dev/fd0) You can change /dev/fd0 to the device you want to format.&lt;br /&gt;
&lt;br /&gt;
== Partitions ==&lt;br /&gt;
If you need to change or make a partition table on a Hard Drive you want to format, you can use:&lt;br /&gt;
&lt;br /&gt;
=== fdisk ===&lt;br /&gt;
{{Cmd|fdisk /dev/hdc}}&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Filesystems&amp;diff=20242</id>
		<title>Filesystems</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Filesystems&amp;diff=20242"/>
		<updated>2021-11-10T05:28:30Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* Install */ Improve filesystem names&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Storage]]&lt;br /&gt;
Documentation how to use the Alpine distro to format HD/Floppy/Other.&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
Alpine has multiple storage media formatting packages available. Different packages/programs are used to format different types of filesystems.&lt;br /&gt;
* {{Pkg|dosfstools}} - For FAT12/FAT16/FAT32&lt;br /&gt;
* reiserfsprogs - For ReiserFS (Note: not available in Alpine repositories yet)&lt;br /&gt;
* {{Pkg|e2fsprogs}} - For ext3/ext4&lt;br /&gt;
* {{Pkg|xfsprogs}} - For XFS&lt;br /&gt;
* {{Pkg|jfsutils}} - For JFS&lt;br /&gt;
* {{Pkg|ntfs-3g}} - For NTFS (Note: ntfs-3g is a FUSE driver)&lt;br /&gt;
&lt;br /&gt;
In our example we want to format the floppy as vfat.&lt;br /&gt;
{{Cmd|apk add dosfstools}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Here are some examples on how to use the formatting tools:&lt;br /&gt;
&lt;br /&gt;
=== dosfstools ===&lt;br /&gt;
{{Cmd|mkfs.vfat /dev/fd0}}&lt;br /&gt;
&lt;br /&gt;
=== e2fsprogs ===&lt;br /&gt;
{{Cmd|mkfs.ext2 /dev/fd0&lt;br /&gt;
mkfs.ext3 /dev/fd0}}&lt;br /&gt;
&lt;br /&gt;
== Other devices ==&lt;br /&gt;
In our case we want to format a floppy disk. (/dev/fd0) You can change /dev/fd0 to the device you want to format.&lt;br /&gt;
&lt;br /&gt;
== Partitions ==&lt;br /&gt;
If you need to change or make a partition table on a Hard Drive you want to format, you can use:&lt;br /&gt;
&lt;br /&gt;
=== fdisk ===&lt;br /&gt;
{{Cmd|fdisk /dev/hdc}}&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_SSH_server&amp;diff=20238</id>
		<title>Setting up a SSH server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_a_SSH_server&amp;diff=20238"/>
		<updated>2021-11-05T12:59:56Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* Dropbear */ Add seperate package info for dropbear-dbclient&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This article provides a short overview of SSH on Alpine Linux.&lt;br /&gt;
&lt;br /&gt;
Also see [https://en.wikipedia.org/wiki/Secure_Shell Secure Shell (Wikipedia)].&lt;br /&gt;
&lt;br /&gt;
{{Note|This article describes two popular SSH implementations: OpenSSH and Dropbear. Either can be installed using the [[Alpine setup scripts#setup-sshd|setup-sshd]] script, or by following the instructions below.}}&lt;br /&gt;
&lt;br /&gt;
= OpenSSH =&lt;br /&gt;
&lt;br /&gt;
[http://www.openssh.com/ OpenSSH] is a popular SSH implementation for remote encrypted login to a machine. OpenSSH defines &#039;&#039;sshd&#039;&#039; as the daemon, and &#039;&#039;ssh&#039;&#039; as the client program.&lt;br /&gt;
&lt;br /&gt;
The {{Pkg|openssh}} package provides OpenSSH on Alpine Linux.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Install the {{Pkg|openssh}} package:&lt;br /&gt;
{{Cmd|apk add openssh}}&lt;br /&gt;
&lt;br /&gt;
{{Note|To use the ACF-frontend for openssh, install {{Pkg|acf-openssh}} instead (assuming that you have the setup-acf script).}}&lt;br /&gt;
&lt;br /&gt;
Also see [https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management Alpine Linux package management ].&lt;br /&gt;
&lt;br /&gt;
== Service commands ==&lt;br /&gt;
Enable the sshd service so that it starts at boot:&lt;br /&gt;
{{Cmd|rc-update add sshd}}&lt;br /&gt;
&lt;br /&gt;
List services to verify sshd is enabled:&lt;br /&gt;
{{Cmd|rc-status}}&lt;br /&gt;
&lt;br /&gt;
Start the sshd service immediately and create configuration files:&lt;br /&gt;
{{Cmd|/etc/init.d/sshd start}}&lt;br /&gt;
&lt;br /&gt;
{{Note|If you are running from RAM, ensure you save your settings using the &#039;lbu ci&#039; command as necessary. See [https://wiki.alpinelinux.org/wiki/Alpine_local_backup Alpine local backup].}}&lt;br /&gt;
&lt;br /&gt;
Also see [https://wiki.alpinelinux.org/wiki/Alpine_Linux_Init_System Alpine Linux Init System].&lt;br /&gt;
&lt;br /&gt;
== Fine tuning ==&lt;br /&gt;
&lt;br /&gt;
You may wish to change the default configuration. This section describes some of the configuration options as examples, however it is by no means an exhaustive list. See [https://www.openssh.com/manual.html the manual] for full details.&lt;br /&gt;
&lt;br /&gt;
The fine-tuning is done by editing &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039;. Any line starting with &amp;quot;#&amp;quot; is ignored by &#039;&#039;sshd&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 UseDNS no   # By setting this to no, connection speed can increase.&lt;br /&gt;
 PasswordAuthentication no  # Do not allow password authentication.&lt;br /&gt;
&lt;br /&gt;
Other configuration options are shown in &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039;. The file includes comments that explain many of the options.&lt;br /&gt;
&lt;br /&gt;
== Firewalling and Port Changes ==&lt;br /&gt;
By default, sshd will communicate on TCP port &#039;&#039;&#039;22&#039;&#039;&#039;.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes &#039;&#039;&#039;22/tcp&#039;&#039;&#039; is blocked by a firewall over which you have no control. Changing the &#039;&#039;&#039;Port&#039;&#039;&#039; option to an unused port number in &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; may be useful in this situation.&amp;lt;BR&amp;gt;&lt;br /&gt;
 Port 443   # Use whichever port number fits your needs&lt;br /&gt;
&lt;br /&gt;
{{Note|Ensure the port you wish to use is not already in use by running &#039;&#039;&#039;netstat -lnp&#039;&#039;&#039; on the machine running &#039;&#039;sshd&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
Restart &#039;&#039;sshd&#039;&#039; after making modifications to the configuration file:&lt;br /&gt;
{{Cmd|/etc/init.d/sshd restart}}&lt;br /&gt;
&lt;br /&gt;
{{Note|If you are running from RAM, ensure you save your settings using the &#039;lbu ci&#039; command as necessary. See [https://wiki.alpinelinux.org/wiki/Alpine_local_backup Alpine local backup].}}&lt;br /&gt;
&lt;br /&gt;
= Dropbear =&lt;br /&gt;
&lt;br /&gt;
[https://matt.ucc.asn.au/dropbear/dropbear.html Dropbear] is another open source SSH implementation.&lt;br /&gt;
Install {{Pkg|dropbear}}, and optionally {{Pkg|dropbear-dbclient}} through the [[Alpine setup scripts]], or manually with:&lt;br /&gt;
{{Cmd|apk add dropbear}}&lt;br /&gt;
Start it:&lt;br /&gt;
{{Cmd|rc-service dropbear start}}&lt;br /&gt;
Add it to the default runlevel:&lt;br /&gt;
{{Cmd|rc-update add dropbear}}&lt;br /&gt;
&lt;br /&gt;
Use the following command to check all available server options:&lt;br /&gt;
{{Cmd|dropbear -h}}&lt;br /&gt;
&lt;br /&gt;
The config file is located at &amp;lt;code&amp;gt;/etc/conf.d/dropbear&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Pkg|dropbear-dbclient}} contains SSH client which in its simplest form can be used like this:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|dbclient host.example.com}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|dbclient x.x.x.x}} (where x.x.x.x is the IP address of the remote machine).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;dbclient -h&amp;lt;/code&amp;gt; to see all available options.&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[Two Factors Authentication With OpenSSH]]&lt;br /&gt;
&lt;br /&gt;
= Further Reading =&lt;br /&gt;
&lt;br /&gt;
[https://www.openssh.com/portable.html OpenSSH (openssh.com)]&amp;lt;BR&amp;gt;&lt;br /&gt;
[https://en.wikipedia.org/wiki/OpenSSH OpenSSH (wikipedia.org)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Sway&amp;diff=20231</id>
		<title>Sway</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Sway&amp;diff=20231"/>
		<updated>2021-11-03T09:35:10Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* Running Sway */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://swaywm.org Sway] is a tiling Wayland compositor. It&#039;s a drop-in replacement for the i3 window manager.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
First, install &amp;amp; configure eudev:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add eudev&lt;br /&gt;
# setup-udev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install graphics drivers appropriate to your system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add mesa-dri-gallium  # gallium&lt;br /&gt;
# apk add mesa-dri-classic  # or classic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following links contain guides for setting up the video stack.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.alpinelinux.org/wiki/Intel_Video Intel Video]&lt;br /&gt;
* [https://wiki.alpinelinux.org/wiki/Radeon_Video Radeon Video]&lt;br /&gt;
&lt;br /&gt;
Add yourself to the input and video groups:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# adduser $USER input&lt;br /&gt;
# adduser $USER video&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You have to log out and back in for this to take effect. &lt;br /&gt;
&lt;br /&gt;
Install some TTF fonts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add ttf-dejavu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since sway 1.6.1 (more specifically, since wlroots 0.14), you need to set up libseat backend if you wish to run sway directly (without nesting it in another wayland compositor). To do that, choose one of the following methods:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;seatd daemon&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add seatd&lt;br /&gt;
# rc-update add seatd&lt;br /&gt;
# rc-service seatd start&lt;br /&gt;
# adduser $USER seat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are already logged in as a $USER, you will need to relogin.&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;seatd-launch&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add seatd-launch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When starting sway, you will need to prefix invocation with &amp;lt;code&amp;gt;seatd-launch&amp;lt;/code&amp;gt;.  &lt;br /&gt;
Note: &amp;lt;code&amp;gt;seatd-launch&amp;lt;/code&amp;gt; is a suid binary, so it might be wise to use one of the other methods from a security perspective.&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;elogind daemon&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
We can now install sway:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add sway sway-doc&lt;br /&gt;
# apk add                \ # Install optional dependencies:&lt;br /&gt;
    xwayland             \ # strongly reccommended for compatibility reasons&lt;br /&gt;
    alacritty            \ # default terminal emulator&lt;br /&gt;
    dmenu                \ # default application launcher&lt;br /&gt;
    swaylock             \ # lockscreen tool&lt;br /&gt;
    swayidle               # idle management (DPMS) daemon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running Sway ==&lt;br /&gt;
&lt;br /&gt;
To run sway, first set XDG_RUNTIME_DIR to a suitable location (e.g. /tmp). Install &amp;amp; configure elogind to skip this step. Then run sway from the Linux console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ XDG_RUNTIME_DIR=/tmp sway&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(if you run sway with seatd-launch, you will need to use &amp;lt;code&amp;gt;$ XDG_RUNTIME_DIR=/tmp seatd-launch sway&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
See the [https://wiki.alpinelinux.org/wiki/Wayland Wayland] page for a permanent configuration&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
swaylock needs to be able to read your &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt; file to be able to validate your password&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Configuration and Usage ==&lt;br /&gt;
&lt;br /&gt;
An example config is provided at &amp;lt;code&amp;gt;/etc/sway/config&amp;lt;/code&amp;gt;. Copy it to &amp;lt;code&amp;gt;~/.config/sway/config&amp;lt;/code&amp;gt; and read through it to learn the default keybindings.&lt;br /&gt;
&lt;br /&gt;
For additional information, start at &amp;lt;code&amp;gt;man 5 sway&amp;lt;/code&amp;gt; and read the [https://github.com/swaywm/sway/wiki upstream FAQ].&lt;br /&gt;
&lt;br /&gt;
[[Category:Desktop]]&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Bootloaders&amp;diff=20230</id>
		<title>Bootloaders</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Bootloaders&amp;diff=20230"/>
		<updated>2021-11-03T09:33:33Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* efibootmgr */ Fix efibootmgr script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page shows the basic steps you need to perform, if you for any reason want to switch bootloaders or apply some manual configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rEFInd&amp;lt;/code&amp;gt; is an easy to use EFI boot menu that allows booting different operating systems.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Syslinux&amp;lt;/code&amp;gt; is the default light-weight bootloader used in Alpine.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Grub&amp;lt;/code&amp;gt; is a standard linux boot loader.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;EFI Boot Stub&amp;lt;/code&amp;gt; allows booting linux directly from a motherboard supporting UEFI or another bootloader.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= rEFIind =&lt;br /&gt;
&lt;br /&gt;
For (U)EFI systems, the &amp;lt;code&amp;gt;refind&amp;lt;/code&amp;gt; package can provide a graphical EFI boot menu that allows to boot operating systems that are found on the available partitions.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;refind&amp;lt;/code&amp;gt; is not yet available in the used alpine release, it may be installed in another dual/multi-booted linux distribution.&lt;br /&gt;
&lt;br /&gt;
For example, with a Debian based distribution, it can be installed to the EFI partition like this:&lt;br /&gt;
 &lt;br /&gt;
 apt install refind             # installs the debian package&lt;br /&gt;
 refind-install --alldrivers    # installs refind to the EFI partitioon&lt;br /&gt;
&lt;br /&gt;
(The --alldrivers option includes all filesystem drivers instead of only the one needed to load the currently running kernel, to allow finding and booting operating systems from more partitions.)&lt;br /&gt;
&lt;br /&gt;
And a first (default) boot menu line needs to be configured with Alpine&#039;s default boot parameters. Assuming the bootable partition is mounted at &amp;lt;code&amp;gt;/media/sdXY&amp;lt;/code&amp;gt; it can be done like this (at time of writing):&lt;br /&gt;
 echo &#039;&amp;quot;Alpine&amp;quot; &amp;quot;modules=loop,squashfs,sd-mod,usb-storage quiet initrd=\boot\intel-ucode.img initrd=\boot\amd-ucode.img initrd=\boot\initramfs-lts&amp;quot;&#039; &amp;gt; /media/sdXY/boot/refind_linux.conf&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
&lt;br /&gt;
# At the time of writing, it was still needed to use backslashes in the .conf file. &lt;br /&gt;
# The path in the config file needs to be relative to the partition that the kernel resides on. If &amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt; resides on its own separate partition, then &amp;lt;code&amp;gt;\boot&amp;lt;/code&amp;gt; needs to be removed from the paths.                                                                                               }}&lt;br /&gt;
&lt;br /&gt;
= Installing Syslinux =&lt;br /&gt;
&lt;br /&gt;
If you want to switch from another bootloader back to Syslinux, or if you for some reason want to install Syslinux manually, the following steps are required.&lt;br /&gt;
&lt;br /&gt;
Install the &amp;lt;code&amp;gt;syslinux&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apk add syslinux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;re using GPT partitions, install the GPT MBR onto the drive you want to install the bootloader on (in this case &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dd bs=440 count=1 conv=notrunc if=/usr/share/syslinux/gptmbr.bin of=/dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or if you&#039;re using DOS partitions, install the DOS MBR instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dd bs=440 count=1 conv=notrunc if=/usr/share/syslinux/mbr.bin of=/dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- See also: http://www.syslinux.org/wiki/index.php?title=Mbr --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next install the required Syslinux binaries. Despite being called &amp;lt;code&amp;gt;extlinux&amp;lt;/code&amp;gt;, Syslinux supports booting from FAT12/16/32, NTFS, ext2/3/4, Btrfs, XFS, and UFS/FFS filesystems.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;extlinux --install /boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The configuration file is located in &amp;lt;code&amp;gt;/boot/extlinux.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
Alpine ships with a script called &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt; which automatically (re)generates this file, for example on updates to Syslinux.&lt;br /&gt;
The settings for this script can be found in &amp;lt;code&amp;gt;/etc/update-extlinux.conf&amp;lt;/code&amp;gt;, including the option to disable automatic overwriting of &amp;lt;code&amp;gt;/boot/extlinux.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
You can also place additional menu entries in the &amp;lt;code&amp;gt;/etc/update-extlinux.d/&amp;lt;/code&amp;gt; directory, e.g. for dual booting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== EFI ==&lt;br /&gt;
&lt;br /&gt;
{{Todo|Work in progress. This should at least get you started.}}&lt;br /&gt;
&lt;br /&gt;
Assuming &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; is a FAT32 partition of type EF00 and &amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt; belongs to the rootfs created after running &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p /mnt/EFI/syslinux&lt;br /&gt;
cp /usr/share/syslinux/efi64/* /mnt/EFI/syslinux/&lt;br /&gt;
cp /boot/extlinux.conf /mnt/EFI/syslinux/syslinux.cfg&lt;br /&gt;
cp /boot/vmlinuz* /mnt/&lt;br /&gt;
cp /boot/initramfs* /mnt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may need to modify &amp;lt;code&amp;gt;/mnt/EFI/syslinux/syslinux.cfg&amp;lt;/code&amp;gt; to change the paths to absolute paths (just add a / in front of the vmlinuz/initramfs entries),&lt;br /&gt;
or copy the files to &amp;lt;code&amp;gt;/mnt/EFI/syslinux&amp;lt;/code&amp;gt; instead (XXX: untested).&lt;br /&gt;
&lt;br /&gt;
= GRUB =&lt;br /&gt;
&lt;br /&gt;
To install GRUB in BIOS mode, (optionally) remove the Syslinux package and install the required GRUB packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apk del syslinux&lt;br /&gt;
apk add grub grub-bios&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For EFI, install Grub&#039;s EFI package instead. Note that &amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt; has to be an EFI compatible filesystem like FAT32.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apk add grub-efi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next install the MBR and GRUB binaries to disk for BIOS mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install /dev/vda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For EFI mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --target=x86_64-efi --efi-directory=/boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GRUB ships with an automatic config generator, including some automatic detection of other operating systems installed on the device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-mkconfig -o /boot/grub/grub.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This script can be configured via the &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt; file.&lt;br /&gt;
See [https://www.gnu.org/software/grub/manual/html_node/Simple-configuration.html] for a list of available options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= EFI Boot Stub =&lt;br /&gt;
&lt;br /&gt;
To boot directly from your motherboard&#039;s UEFI boot menu, a boot entry needs&lt;br /&gt;
to be created with either a UEFI shell or &#039;&#039;efibootmgr&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== efibootmgr ==&lt;br /&gt;
&lt;br /&gt;
Install efibootmgr:&lt;br /&gt;
&amp;lt;pre&amp;gt;apk add efibootmgr&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a boot entry. It&#039;s recommended to do this in a script, as efibootmgr&lt;br /&gt;
does not allow editing entries.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
params=&amp;quot;root=/dev/sdXZ rw \&lt;br /&gt;
  initrd=\intel-ucode.img \&lt;br /&gt;
  initrd=\initramfs-lts&amp;quot;&lt;br /&gt;
&lt;br /&gt;
efibootmgr --create --label &amp;quot;Alpine Linux&amp;quot; \&lt;br /&gt;
  --disk /dev/sdX --part Y \&lt;br /&gt;
  --loader /vmlinuz-lts \&lt;br /&gt;
  --unicode &amp;quot;${params}&amp;quot; \&lt;br /&gt;
  --verbose&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;code&amp;gt;/dev/sdXY&amp;lt;/code&amp;gt; contains the EFI partition and &amp;lt;code&amp;gt;/dev/sdXZ&amp;lt;/code&amp;gt; contains the root partition. If you are using {{Pkg|linux-edge}}, replace &amp;lt;code&amp;gt;lts&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;edge&amp;lt;/code&amp;gt; in the script&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
The kernel contains the [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c#n254 exhaustive list] of ways to specify the block device. For a more robust boot entry, it is recommended to use a persistent name such as the PARTUUID.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Optionally, set the newly created entry as the default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;efibootmgr -n XXXX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt; is the boot number of the new entry.&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
The loader and initrd file arguments are relative to the EFI partition. In a default installation, alpine places these files in &amp;lt;code&amp;gt;/boot/&amp;lt;/code&amp;gt;, while EFI is mounted to &amp;lt;code&amp;gt;/boot/efi/&amp;lt;/code&amp;gt;. You can either update fstab to mount EFI at &amp;lt;code&amp;gt;/boot/&amp;lt;/code&amp;gt;, or manually copy them to &amp;lt;code&amp;gt;/boot/efi/&amp;lt;/code&amp;gt;.                                                                                           }}&lt;br /&gt;
&lt;br /&gt;
= External Links =&lt;br /&gt;
* [https://www.denx.de/wiki/U-Boot/ReleaseCycle U-Boot Release Cycle]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Booting]]&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_disks_manually&amp;diff=20229</id>
		<title>Setting up disks manually</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_disks_manually&amp;diff=20229"/>
		<updated>2021-11-03T09:22:59Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* For &amp;quot;sys&amp;quot; disk mode installs */ Fix link to EFI Boot Stub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The menu choices that are provided by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; can not cover all needs, however, it&#039;s possible to:&lt;br /&gt;
&lt;br /&gt;
* Call [[Alpine_setup_scripts#setup-disk|setup-disk]] directly, instead of through &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;, and pass some specific partitioning parameters to it.&lt;br /&gt;
* Set up the partitions and filesystems manually (to the desired details) and [[Alpine_setup_scripts#Partitioning|tell setup-disk]] to install to the prepared target mountpoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Beta refenence: [https://beta.docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html#_finalizing beta.docs.alpinelinux.org] )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using setup-alpine (setup-disk) features =&lt;br /&gt;
&lt;br /&gt;
== For &amp;quot;diskless&amp;quot; and &amp;quot;data&amp;quot; disk mode installs ==&lt;br /&gt;
&lt;br /&gt;
This requires some manual steps, as long as the setup-scripts auto-detect usable partitions only on *removable* devices (not internal harddisks). They do not support creating new, writable partitions to be used by Alpine.&lt;br /&gt;
&lt;br /&gt;
How to prepare writable storage space is explained in the section [[Setting_up_disks_manually#Manual_partitioning| manual partitioning]], below.&lt;br /&gt;
&lt;br /&gt;
== For &amp;quot;sys&amp;quot; disk mode installs ==&lt;br /&gt;
&lt;br /&gt;
{{Draft|Some information on this page may be incomplete or outdate.}}&lt;br /&gt;
&lt;br /&gt;
=== Disk layouts ===&lt;br /&gt;
&lt;br /&gt;
It is possible to have one or more of RAID, encrypted, and/or Logical Volume on your {{Path|/}} (root) volume. However, the Alpine init script only knows how to handle them when they&#039;re layered in that order, and your initram and extlinux.conf files in the {{Path|/boot}} partition are configured properly.&lt;br /&gt;
&lt;br /&gt;
Your {{Path|/boot}} directory cannot reside on an encrypted or LVM volume, at least not with Alpine&#039;s default bootloader (extlinux). (Grub2 can deal with {{Path|/boot}} being on an LVM volume.) The usual practice is to create a small partition for {{Path|/boot}}, then devote the rest of your disk to a separate partition on which you layer one or more of RAID, encryption, and/or Logical Volumes.&lt;br /&gt;
&lt;br /&gt;
Sometimes {{Path|/boot}} is also set up as a mirrored (RAID1) volume. However, this is just for post-init access. That way, when you write a new kernel or bootloader config file to {{Path|/boot}}, it gets written to multiple physical partitions. During the pre-init, bootloader phase, only one of those partitions will be read from.&lt;br /&gt;
&lt;br /&gt;
A typical setup might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
One-disk system&lt;br /&gt;
---------------&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
  |  small partition (32--100M), holding           |&lt;br /&gt;
  |  only /boot, filesystem needn&#039;t be journaled   |&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
  |  rest of disk in second partition              |&lt;br /&gt;
  |  +------------------------------------------+  |&lt;br /&gt;
  |  | cryptsetup volume                        |  |&lt;br /&gt;
  |  |  +-------------------------------------+ |  |&lt;br /&gt;
  |  |  |  LVM PV, containing single VG,      | |  |&lt;br /&gt;
  |  |  |  containing multiple LVs, holding   | |  |&lt;br /&gt;
  |  |  |  /, /home, swap, etc                | |  |&lt;br /&gt;
  |  |  +-------------------------------------+ |  |&lt;br /&gt;
  |  +------------------------------------------+  |&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two-disk system&lt;br /&gt;
---------------&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+&lt;br /&gt;
  |  small partition (32--100M), holding           |  |  small partition (32--100M), holding           | These 2 partitions might&lt;br /&gt;
  |  only /boot, filesystem needn&#039;t be journaled   |  |  only /boot, filesystem needn&#039;t be journaled   | form a mirrored (RAID1)&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+ volume&lt;br /&gt;
  |  rest of disk in second partition              |  |  rest of disk in second partition              |&lt;br /&gt;
  | T================================================================================================T | These 2 partitions form&lt;br /&gt;
  | T +--------------------------------------------------------------------------------------------+ T | a second mirrored&lt;br /&gt;
  | T | cryptsetup volume                                                                          | T | (RAID1) volume&lt;br /&gt;
  | T |  +---------------------------------------------------------------------------------------+ | T |&lt;br /&gt;
  | T |  | LVM PV, containing single VG,                                                         | | T |&lt;br /&gt;
  | T |  | containing multiple LVs, holding                                                      | | T |&lt;br /&gt;
  | T |  | /, /home, swap, etc                                                                   | | T |&lt;br /&gt;
  | T |  +---------------------------------------------------------------------------------------+ | T |&lt;br /&gt;
  | T +--------------------------------------------------------------------------------------------+ T |&lt;br /&gt;
  | T================================================================================================T |&lt;br /&gt;
  |                                                |  |                                                |&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a three-disk system, the {{Path|/boot}} would still be RAID1, but the larger partition might, in that case, be RAID5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RAID ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will automatically build a RAID array if you supply the &#039;&#039;&#039;-r&#039;&#039;&#039; switch, or if you specify more than one device.&lt;br /&gt;
&lt;br /&gt;
If you want to build your RAID array manually, see [[Setting up a software RAID array]]. Then you can add additional layers of encryption and/or Logical Volumes, or just assemble the RAID array, and supply the {{Path|/dev/md&amp;lt;i&amp;gt;i&amp;lt;/i&amp;gt;}} device directly to [[setup-disk]]. When you&#039;re finished, be sure to disassemble the RAID array before rebooting.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; sees that you&#039;re using RAID, either because you gave it the &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; switch, or multiple devices, or a {{Path|/dev/md&amp;lt;i&amp;gt;i&amp;lt;/i&amp;gt;}} device, then it will set up your initramfs and extlinux.conf file properly. However, in other cases, such as when you&#039;re also using encryption, or you invoke &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; with a mounted directory argument, these might not be properly set up for RAID. In that case, you may need to manually edit/rebuild them. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=echo &amp;quot;/sbin/mdadm&amp;quot; &amp;gt; $MNT/etc/mkinitfs/files.d/raid&lt;br /&gt;
echo &amp;quot;/etc/mdadm.conf&amp;quot; &amp;gt;&amp;gt; $MNT/etc/mkinitfs/files.d/raid&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes raid (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure modules=... contains&lt;br /&gt;
&amp;amp;#35; raid1 or raid456 (whichever your / is on; this field is comma-separated)&lt;br /&gt;
&amp;amp;#35; also check the root= setting&lt;br /&gt;
extlinux --raid --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}. And you might need to copy {{Path|/usr/share/syslinux/mbr.bin}} to your disk&#039;s MBR.&lt;br /&gt;
&lt;br /&gt;
=== Encryption ===&lt;br /&gt;
&lt;br /&gt;
See [[Setting up encrypted volumes with LUKS]]. You can add an additional Logical Volume layer, or just unlock the volume you&#039;ve created (using &amp;lt;code&amp;gt;cryptsetup luksOpen ...&amp;lt;/code&amp;gt;), and supply the {{Path|/dev/mapper/&amp;lt;i&amp;gt;something&amp;lt;/i&amp;gt;}} device directly to [[setup-disk]]. When you&#039;re finished, be sure to relock the volume (using &amp;lt;code&amp;gt;cryptsetup luksClose ...&amp;lt;/code&amp;gt;) before rebooting.&lt;br /&gt;
&lt;br /&gt;
If you install your {{Path|/}} (root) on an encrypted volume, you&#039;ll need to manually edit/rebuild your initram and your extlinux.conf file. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into, that you&#039;ve created the cryptvolume on the device {{Path|/dev/md2}}, and that you want to unlock the encrypted volume into a virtual volume named &amp;quot;crypt&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes cryptsetup (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure default_kernel_opts=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; contains cryptroot=/dev/md1 and cryptdm=crypt (this field is also space-separated and quoted)&lt;br /&gt;
&amp;amp;#35; also check the root= setting&lt;br /&gt;
extlinux --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LVM ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will automatically build and use volumes in a LVM group if you supply the &#039;&#039;&#039;-L&#039;&#039;&#039; switch.&lt;br /&gt;
&lt;br /&gt;
If you instead want to build your LVM system manually, see [[Setting up Logical Volumes with LVM]]. Then &amp;lt;code&amp;gt;vgchange -ay&amp;lt;/code&amp;gt;, format and mount your volumes, and supply the root mountpoint to [[setup-disk]]. When you&#039;re finished, be sure to&lt;br /&gt;
{{Cmd|umount ...&lt;br /&gt;
vgchange -an}}&lt;br /&gt;
before rebooting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; sees that you&#039;re using LVM, perhaps because you gave it the &amp;lt;code&amp;gt;-L&amp;lt;/code&amp;gt; switch, then it will set up your initram and extlinux.conf file properly. However, in other cases, these might not be properly set up. In that case, you may need to manually edit/rebuild them. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes lvm (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure root= is set correctly&lt;br /&gt;
extlinux --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Manual partitioning =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== For &amp;quot;diskless&amp;quot; and &amp;quot;data&amp;quot; disk mode installs ==&lt;br /&gt;
&lt;br /&gt;
The installation image enviroment may have only the very basic busybox built-in &amp;lt;code&amp;gt;fdisk&amp;lt;/code&amp;gt; command available. However, alpine allows you to install more complete partitioning tool packages like &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt; (scriptable fdisk), &amp;lt;code&amp;gt;gptfdisk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt; (CLI), &amp;lt;code&amp;gt;cfdisk&amp;lt;/code&amp;gt; (text menus), or even &amp;lt;code&amp;gt;gparted&amp;lt;/code&amp;gt; (after [[Installation#Post-Install|setting up a graphical environment]]).&lt;br /&gt;
&lt;br /&gt;
The following example installs &amp;lt;code&amp;gt;cfdisk&amp;lt;/code&amp;gt;, looks for existing partitions, and runs cfdisk against &amp;lt;code&amp;gt;/dev/sdX&amp;lt;/code&amp;gt;:&lt;br /&gt;
 # apk add cfdisk&lt;br /&gt;
 # blkid&lt;br /&gt;
 /dev/sdX1: LABEL=&amp;quot;some&amp;quot; UUID=&amp;quot;...&amp;quot; TYPE=&amp;quot;vfat&amp;quot;&lt;br /&gt;
 /dev/sdX2: LABEL=&amp;quot;other&amp;quot; UUID=&amp;quot;...&amp;quot; TYPE=&amp;quot;ext4&amp;quot;&lt;br /&gt;
 # cfdisk /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Be aware of this Bug: [https://gitlab.alpinelinux.org/alpine/aports/-/issues/11589 The APKOVL loading of diskless setups doesn&#039;t work on btrfs and xfs filesystems, or nvme-based devices] =&amp;gt; So, for the moment, use only ext4 filesystem partitions on classic drives to store diskless mode states.&lt;br /&gt;
&lt;br /&gt;
The following creates an ext4 partition with disabled journaling, to reduce write operations and allow the disk to spin down after the .apkovl and the packages have been read from the partition during the boot.&lt;br /&gt;
 # apk add e2fsprogs&lt;br /&gt;
 # mkfs.ext4 -O ^has_journal /dev/sdXY   # the &amp;quot;-O ^has_journal&amp;quot; DISABLES journaling (&amp;quot;^&amp;quot; means &amp;quot;not&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
{{Note|IMPORTANT! There may be additional steps necessary to make proper use of the partition, see&lt;br /&gt;
[[Alpine_local_backup#Saving_and_loading_ISO_image_customizations|Saving_and_loading_ISO_image_customizations]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== For &amp;quot;sys&amp;quot; disk mode installs ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will by default set up a root partition, a separate /boot partition and a swap partition. If you want a different layout, you can manually create the partitions, filesystems and mount them on {{Path|/mnt}} (or any other mount point) then run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|setup-disk /mnt}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will install your running system on the mounted root, detect your file system layout and generate an fstab.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re using the MBR, you are responsible for making the proper partition bootable and make sure the MBR is OK for extlinux. If you&#039;re going to use EFI, make sure you set &amp;lt;code&amp;gt;BOOTLOADER=grub&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;USE_EFI=1&amp;lt;/code&amp;gt;, and that {{Pkg|grub-efi}} and {{Pkg|efibootmgr}} are installed before running &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;. If your system still does not boot, you can try to manually create a boot entry with {{Pkg|efibootmgr}}, for which instructions can be found at [https://wiki.alpinelinux.org/wiki/Bootloaders#efibootmgr EFI Boot Stub].&lt;br /&gt;
&lt;br /&gt;
See also [https://github.com/itoffshore/alpine-linux-scripts setup-partitions]&lt;br /&gt;
&lt;br /&gt;
=== Dual-booting ===&lt;br /&gt;
See [[Installing Alpine on HDD dualbooting|Install to HDD with dual-boot]]&lt;br /&gt;
&lt;br /&gt;
=== Other needs ===&lt;br /&gt;
* [[Installing Alpine Linux in a chroot]]&lt;br /&gt;
* [[Replacing non-Alpine Linux with Alpine remotely]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 Create partition with with type &amp;quot;Linux&amp;quot; (83).&lt;br /&gt;
 apk_add e2fsprogs rsync&lt;br /&gt;
 mkfs.ext3 /dev/hda1&lt;br /&gt;
 mount -t ext3 /dev/hda1 /mnt&lt;br /&gt;
 ROOT=/mnt apk_add uclibc busybox apk-tools alpine-baselayout alpine-conf&lt;br /&gt;
 # Install busybox links&lt;br /&gt;
 mkdir /mnt/proc &amp;amp;&amp;amp; mount --bind /proc /mnt/proc &amp;amp;&amp;amp; chroot /mnt /bin/busybox --install -s &amp;amp;&amp;amp; umount /mnt/proc&lt;br /&gt;
 # Copy the apk repository&lt;br /&gt;
 rsync -ruav /media/cdrom/apks /mnt&lt;br /&gt;
 mkdir /mnt/etc/apk &amp;amp;&amp;amp; echo &amp;quot;APK_PATH=file://apks&amp;quot; &amp;gt; /mnt/etc/apk/apk.conf&lt;br /&gt;
 # Copy the hd/ext3 initramfs image, kernel and kernel modules&lt;br /&gt;
 rsync -ruav /media/cdrom/kernel/generic/hd-ext3.gz /media/cdrom/kernel/generic/bzImage /mnt&lt;br /&gt;
 rsync -ruav /lib/modules/* /mnt/lib/modules/&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Setting up RAID ==&lt;br /&gt;
Set up a raid array as described [[Setting up a software RAID1 array|here]].&lt;br /&gt;
In this document, two raid arrays are configured: md0 for swap (512MB) and md1 for /var. &lt;br /&gt;
&lt;br /&gt;
== Create filesystem ==&lt;br /&gt;
We need to install the software to create the filesystem (&amp;quot;format&amp;quot; the partition).&lt;br /&gt;
 apk_add e2fsprogs&lt;br /&gt;
&lt;br /&gt;
If you use an Alpine release older than 1.3.8 you will need to manually create a link to /etc/mtab.&lt;br /&gt;
 ln -fs /proc/mounts /etc/mtab&lt;br /&gt;
&lt;br /&gt;
Create the filesystem. The -j option makes it ext&#039;&#039;&#039;3&#039;&#039;&#039;. Without the -j option it will become non-journaling ext&#039;&#039;&#039;2&#039;&#039;&#039;. This step might take some time if your partition is big.&lt;br /&gt;
 mke2fs -j /dev/md1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now edit /etc/fstab and add your new partitions. Mine looks like this:&lt;br /&gt;
 none            /proc           proc    defaults 0 0&lt;br /&gt;
 none            /sys            sysfs   defaults 0 0&lt;br /&gt;
 udev            /dev            tmpfs   size=100k 0 0&lt;br /&gt;
 none            /dev/pts        devpts  defaults 0 0&lt;br /&gt;
 tmpfs           /dev/shm        tmpfs   defaults 0 0&lt;br /&gt;
 /dev/cdrom      /media/cdrom    iso9660 ro 0 0&lt;br /&gt;
 /dev/fd0        /media/floppy   vfat    noauto  0 0&lt;br /&gt;
 /dev/usba1      /media/usb      vfat    noauto  0 0&lt;br /&gt;
 none            /proc/bus/usb   usbfs noauto 0 0&lt;br /&gt;
  &lt;br /&gt;
 /dev/md0        swap            swap    defaults 0 0&lt;br /&gt;
 /dev/md1        /var            ext3    defaults 0 0&lt;br /&gt;
&lt;br /&gt;
== Move the data ==&lt;br /&gt;
Stop aall services running that put anything in /var (syslog for example). If you have booted on a clean installation and not run setup-alpine, then no services should be running. However, some packages might have created dirs in /var, so we need to backup /var, mount the new /var directory and move all backed up dirs to the raided /var.&lt;br /&gt;
&lt;br /&gt;
 mv /var /var.tmp&lt;br /&gt;
 mkdir /var&lt;br /&gt;
 mount /var&lt;br /&gt;
 mv /var.tmp/* /var&lt;br /&gt;
 rmdir /var.tmp&lt;br /&gt;
&lt;br /&gt;
Verify that everyting looks ok with the &#039;&#039;df&#039;&#039; utility.&lt;br /&gt;
 ~ $ df&lt;br /&gt;
 Filesystem           1k-blocks      Used Available Use% Mounted on&lt;br /&gt;
 none                    255172     23544    231628   9% /&lt;br /&gt;
 udev                       100         0       100   0% /dev&lt;br /&gt;
 /dev/cdrom              142276    142276         0 100% /media/cdrom&lt;br /&gt;
 /dev/md1              37977060    181056  35866876   1% /var&lt;br /&gt;
&lt;br /&gt;
== Survive reboots ==&lt;br /&gt;
Now we have everything up and running. We need to make sure that everything will be restored during next reboot.&lt;br /&gt;
&lt;br /&gt;
Create an initscript that will mount /var for you during boot. I call it /etc/init.d/mountdisk and it looks like this:&lt;br /&gt;
 #!/sbin/runscript&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
         ebegin &amp;quot;Mounting /var&amp;quot;&lt;br /&gt;
         mount /var&lt;br /&gt;
         eend $?&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
         ebegin &amp;quot;Unmounting /var&amp;quot;&lt;br /&gt;
         umount /var&lt;br /&gt;
         eend $?&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Make it exectutable:&lt;br /&gt;
 chmod +x /etc/init.d/mountdisk&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Since Alpine-1.7.3 a script named &#039;&#039;localmount&#039;&#039; is included so you will not need to create your own &#039;&#039;mountdisk&#039;&#039; script.&lt;br /&gt;
&lt;br /&gt;
/var needs to be mounted *after* raid is created. The -k option will make alpine unmount the /var partition during boot. Add start swap to boot:&lt;br /&gt;
 rc_add -k -s 06 mountdisk&lt;br /&gt;
 rc_add -k -s 06 swap&lt;br /&gt;
&lt;br /&gt;
The /dev/md* device nodes will not be created automatically, so we need to put them on floppy too.&lt;br /&gt;
 lbu include /dev/md*&lt;br /&gt;
&lt;br /&gt;
If you have users on the server and want /home to be permanent, you can create a directory /var/home and create links to /var/home.&lt;br /&gt;
 mkdir /var/home&lt;br /&gt;
 mv /home/* /var/home/&lt;br /&gt;
 ln -s /var/home/* /home/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; You cannot just replace /home with a link that points to /var/home since the base has a /home directory. When the system tries to copy the config from floppy it will fail because of the already existing /home directory.&lt;br /&gt;
&lt;br /&gt;
Make sure the links are stored to floppy:&lt;br /&gt;
 lbu include /home/*&lt;br /&gt;
&lt;br /&gt;
Also remember to move any newly created users to /var/home and create a link:&lt;br /&gt;
 adduser bob&lt;br /&gt;
 mv /home/bob /var/home/&lt;br /&gt;
 ln -s /var/home/bob /home/bob&lt;br /&gt;
 lbu include /home/bob&lt;br /&gt;
&lt;br /&gt;
Save to floppy:&lt;br /&gt;
 lbu commit floppy&lt;br /&gt;
&lt;br /&gt;
== Operational Test ==&lt;br /&gt;
Reboot computer. Now the raid should start and /var should be mounted. Check with df:&lt;br /&gt;
 ~ $ df&lt;br /&gt;
 Filesystem           1k-blocks      Used Available Use% Mounted on&lt;br /&gt;
 none                    255172     23976    231196   9% /&lt;br /&gt;
 mdev                       100         0       100   0% /dev&lt;br /&gt;
 /dev/cdrom              140932    140932         0 100% /media/cdrom&lt;br /&gt;
 /dev/md1              37977060    180984  35866948   1% /var&lt;br /&gt;
&lt;br /&gt;
== Upgrades ==&lt;br /&gt;
Since the package database is on disk, you cannot update by simply replacing the CDROM. You will have to either run the upgrade on the new CDROM or run &#039;&#039;apk_add -u ... &amp;amp;&amp;amp; update-conf&#039;&#039; manually.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting up swap ==&lt;br /&gt;
&lt;br /&gt;
# create a partition with the type set to &amp;quot;linux swap&amp;quot; (82) (If you&#039;re going to use a logical volume for swap, skip this step and &amp;lt;code&amp;gt;lvcreate&amp;lt;/code&amp;gt; that instead.)&lt;br /&gt;
# &amp;lt;code&amp;gt;mkswap /dev/sda2&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;echo -e &amp;quot;/dev/sda2 none swap sw 0 0&amp;quot; &amp;gt;&amp;gt; /mnt/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;swapon /dev/sda2&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;rc-service swap start&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
{{Cmd|free -m}} will show how much swap space is available (in MB).&lt;br /&gt;
&lt;br /&gt;
If you prefer maximum speed, you don&#039;t need configure any raid devices for swap. Just add 2 swap partitions on different disks and linux will stripe them automatically. The downside is that the moment one disk fails, the system will go down. For better reliability, put swap on RAID1. &lt;br /&gt;
&lt;br /&gt;
{{Todo|Instructions for cryptswap?}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Storage]]&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_disks_manually&amp;diff=20228</id>
		<title>Setting up disks manually</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_disks_manually&amp;diff=20228"/>
		<updated>2021-11-03T09:21:41Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* For &amp;quot;sys&amp;quot; disk mode installs */ Add instructions if UEFI system cannot boot with GRUB&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The menu choices that are provided by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; can not cover all needs, however, it&#039;s possible to:&lt;br /&gt;
&lt;br /&gt;
* Call [[Alpine_setup_scripts#setup-disk|setup-disk]] directly, instead of through &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;, and pass some specific partitioning parameters to it.&lt;br /&gt;
* Set up the partitions and filesystems manually (to the desired details) and [[Alpine_setup_scripts#Partitioning|tell setup-disk]] to install to the prepared target mountpoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Beta refenence: [https://beta.docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html#_finalizing beta.docs.alpinelinux.org] )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using setup-alpine (setup-disk) features =&lt;br /&gt;
&lt;br /&gt;
== For &amp;quot;diskless&amp;quot; and &amp;quot;data&amp;quot; disk mode installs ==&lt;br /&gt;
&lt;br /&gt;
This requires some manual steps, as long as the setup-scripts auto-detect usable partitions only on *removable* devices (not internal harddisks). They do not support creating new, writable partitions to be used by Alpine.&lt;br /&gt;
&lt;br /&gt;
How to prepare writable storage space is explained in the section [[Setting_up_disks_manually#Manual_partitioning| manual partitioning]], below.&lt;br /&gt;
&lt;br /&gt;
== For &amp;quot;sys&amp;quot; disk mode installs ==&lt;br /&gt;
&lt;br /&gt;
{{Draft|Some information on this page may be incomplete or outdate.}}&lt;br /&gt;
&lt;br /&gt;
=== Disk layouts ===&lt;br /&gt;
&lt;br /&gt;
It is possible to have one or more of RAID, encrypted, and/or Logical Volume on your {{Path|/}} (root) volume. However, the Alpine init script only knows how to handle them when they&#039;re layered in that order, and your initram and extlinux.conf files in the {{Path|/boot}} partition are configured properly.&lt;br /&gt;
&lt;br /&gt;
Your {{Path|/boot}} directory cannot reside on an encrypted or LVM volume, at least not with Alpine&#039;s default bootloader (extlinux). (Grub2 can deal with {{Path|/boot}} being on an LVM volume.) The usual practice is to create a small partition for {{Path|/boot}}, then devote the rest of your disk to a separate partition on which you layer one or more of RAID, encryption, and/or Logical Volumes.&lt;br /&gt;
&lt;br /&gt;
Sometimes {{Path|/boot}} is also set up as a mirrored (RAID1) volume. However, this is just for post-init access. That way, when you write a new kernel or bootloader config file to {{Path|/boot}}, it gets written to multiple physical partitions. During the pre-init, bootloader phase, only one of those partitions will be read from.&lt;br /&gt;
&lt;br /&gt;
A typical setup might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
One-disk system&lt;br /&gt;
---------------&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
  |  small partition (32--100M), holding           |&lt;br /&gt;
  |  only /boot, filesystem needn&#039;t be journaled   |&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
  |  rest of disk in second partition              |&lt;br /&gt;
  |  +------------------------------------------+  |&lt;br /&gt;
  |  | cryptsetup volume                        |  |&lt;br /&gt;
  |  |  +-------------------------------------+ |  |&lt;br /&gt;
  |  |  |  LVM PV, containing single VG,      | |  |&lt;br /&gt;
  |  |  |  containing multiple LVs, holding   | |  |&lt;br /&gt;
  |  |  |  /, /home, swap, etc                | |  |&lt;br /&gt;
  |  |  +-------------------------------------+ |  |&lt;br /&gt;
  |  +------------------------------------------+  |&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two-disk system&lt;br /&gt;
---------------&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+&lt;br /&gt;
  |  small partition (32--100M), holding           |  |  small partition (32--100M), holding           | These 2 partitions might&lt;br /&gt;
  |  only /boot, filesystem needn&#039;t be journaled   |  |  only /boot, filesystem needn&#039;t be journaled   | form a mirrored (RAID1)&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+ volume&lt;br /&gt;
  |  rest of disk in second partition              |  |  rest of disk in second partition              |&lt;br /&gt;
  | T================================================================================================T | These 2 partitions form&lt;br /&gt;
  | T +--------------------------------------------------------------------------------------------+ T | a second mirrored&lt;br /&gt;
  | T | cryptsetup volume                                                                          | T | (RAID1) volume&lt;br /&gt;
  | T |  +---------------------------------------------------------------------------------------+ | T |&lt;br /&gt;
  | T |  | LVM PV, containing single VG,                                                         | | T |&lt;br /&gt;
  | T |  | containing multiple LVs, holding                                                      | | T |&lt;br /&gt;
  | T |  | /, /home, swap, etc                                                                   | | T |&lt;br /&gt;
  | T |  +---------------------------------------------------------------------------------------+ | T |&lt;br /&gt;
  | T +--------------------------------------------------------------------------------------------+ T |&lt;br /&gt;
  | T================================================================================================T |&lt;br /&gt;
  |                                                |  |                                                |&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a three-disk system, the {{Path|/boot}} would still be RAID1, but the larger partition might, in that case, be RAID5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RAID ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will automatically build a RAID array if you supply the &#039;&#039;&#039;-r&#039;&#039;&#039; switch, or if you specify more than one device.&lt;br /&gt;
&lt;br /&gt;
If you want to build your RAID array manually, see [[Setting up a software RAID array]]. Then you can add additional layers of encryption and/or Logical Volumes, or just assemble the RAID array, and supply the {{Path|/dev/md&amp;lt;i&amp;gt;i&amp;lt;/i&amp;gt;}} device directly to [[setup-disk]]. When you&#039;re finished, be sure to disassemble the RAID array before rebooting.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; sees that you&#039;re using RAID, either because you gave it the &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; switch, or multiple devices, or a {{Path|/dev/md&amp;lt;i&amp;gt;i&amp;lt;/i&amp;gt;}} device, then it will set up your initramfs and extlinux.conf file properly. However, in other cases, such as when you&#039;re also using encryption, or you invoke &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; with a mounted directory argument, these might not be properly set up for RAID. In that case, you may need to manually edit/rebuild them. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=echo &amp;quot;/sbin/mdadm&amp;quot; &amp;gt; $MNT/etc/mkinitfs/files.d/raid&lt;br /&gt;
echo &amp;quot;/etc/mdadm.conf&amp;quot; &amp;gt;&amp;gt; $MNT/etc/mkinitfs/files.d/raid&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes raid (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure modules=... contains&lt;br /&gt;
&amp;amp;#35; raid1 or raid456 (whichever your / is on; this field is comma-separated)&lt;br /&gt;
&amp;amp;#35; also check the root= setting&lt;br /&gt;
extlinux --raid --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}. And you might need to copy {{Path|/usr/share/syslinux/mbr.bin}} to your disk&#039;s MBR.&lt;br /&gt;
&lt;br /&gt;
=== Encryption ===&lt;br /&gt;
&lt;br /&gt;
See [[Setting up encrypted volumes with LUKS]]. You can add an additional Logical Volume layer, or just unlock the volume you&#039;ve created (using &amp;lt;code&amp;gt;cryptsetup luksOpen ...&amp;lt;/code&amp;gt;), and supply the {{Path|/dev/mapper/&amp;lt;i&amp;gt;something&amp;lt;/i&amp;gt;}} device directly to [[setup-disk]]. When you&#039;re finished, be sure to relock the volume (using &amp;lt;code&amp;gt;cryptsetup luksClose ...&amp;lt;/code&amp;gt;) before rebooting.&lt;br /&gt;
&lt;br /&gt;
If you install your {{Path|/}} (root) on an encrypted volume, you&#039;ll need to manually edit/rebuild your initram and your extlinux.conf file. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into, that you&#039;ve created the cryptvolume on the device {{Path|/dev/md2}}, and that you want to unlock the encrypted volume into a virtual volume named &amp;quot;crypt&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes cryptsetup (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure default_kernel_opts=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; contains cryptroot=/dev/md1 and cryptdm=crypt (this field is also space-separated and quoted)&lt;br /&gt;
&amp;amp;#35; also check the root= setting&lt;br /&gt;
extlinux --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LVM ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will automatically build and use volumes in a LVM group if you supply the &#039;&#039;&#039;-L&#039;&#039;&#039; switch.&lt;br /&gt;
&lt;br /&gt;
If you instead want to build your LVM system manually, see [[Setting up Logical Volumes with LVM]]. Then &amp;lt;code&amp;gt;vgchange -ay&amp;lt;/code&amp;gt;, format and mount your volumes, and supply the root mountpoint to [[setup-disk]]. When you&#039;re finished, be sure to&lt;br /&gt;
{{Cmd|umount ...&lt;br /&gt;
vgchange -an}}&lt;br /&gt;
before rebooting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; sees that you&#039;re using LVM, perhaps because you gave it the &amp;lt;code&amp;gt;-L&amp;lt;/code&amp;gt; switch, then it will set up your initram and extlinux.conf file properly. However, in other cases, these might not be properly set up. In that case, you may need to manually edit/rebuild them. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes lvm (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure root= is set correctly&lt;br /&gt;
extlinux --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Manual partitioning =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== For &amp;quot;diskless&amp;quot; and &amp;quot;data&amp;quot; disk mode installs ==&lt;br /&gt;
&lt;br /&gt;
The installation image enviroment may have only the very basic busybox built-in &amp;lt;code&amp;gt;fdisk&amp;lt;/code&amp;gt; command available. However, alpine allows you to install more complete partitioning tool packages like &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt; (scriptable fdisk), &amp;lt;code&amp;gt;gptfdisk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt; (CLI), &amp;lt;code&amp;gt;cfdisk&amp;lt;/code&amp;gt; (text menus), or even &amp;lt;code&amp;gt;gparted&amp;lt;/code&amp;gt; (after [[Installation#Post-Install|setting up a graphical environment]]).&lt;br /&gt;
&lt;br /&gt;
The following example installs &amp;lt;code&amp;gt;cfdisk&amp;lt;/code&amp;gt;, looks for existing partitions, and runs cfdisk against &amp;lt;code&amp;gt;/dev/sdX&amp;lt;/code&amp;gt;:&lt;br /&gt;
 # apk add cfdisk&lt;br /&gt;
 # blkid&lt;br /&gt;
 /dev/sdX1: LABEL=&amp;quot;some&amp;quot; UUID=&amp;quot;...&amp;quot; TYPE=&amp;quot;vfat&amp;quot;&lt;br /&gt;
 /dev/sdX2: LABEL=&amp;quot;other&amp;quot; UUID=&amp;quot;...&amp;quot; TYPE=&amp;quot;ext4&amp;quot;&lt;br /&gt;
 # cfdisk /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Be aware of this Bug: [https://gitlab.alpinelinux.org/alpine/aports/-/issues/11589 The APKOVL loading of diskless setups doesn&#039;t work on btrfs and xfs filesystems, or nvme-based devices] =&amp;gt; So, for the moment, use only ext4 filesystem partitions on classic drives to store diskless mode states.&lt;br /&gt;
&lt;br /&gt;
The following creates an ext4 partition with disabled journaling, to reduce write operations and allow the disk to spin down after the .apkovl and the packages have been read from the partition during the boot.&lt;br /&gt;
 # apk add e2fsprogs&lt;br /&gt;
 # mkfs.ext4 -O ^has_journal /dev/sdXY   # the &amp;quot;-O ^has_journal&amp;quot; DISABLES journaling (&amp;quot;^&amp;quot; means &amp;quot;not&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
{{Note|IMPORTANT! There may be additional steps necessary to make proper use of the partition, see&lt;br /&gt;
[[Alpine_local_backup#Saving_and_loading_ISO_image_customizations|Saving_and_loading_ISO_image_customizations]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== For &amp;quot;sys&amp;quot; disk mode installs ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will by default set up a root partition, a separate /boot partition and a swap partition. If you want a different layout, you can manually create the partitions, filesystems and mount them on {{Path|/mnt}} (or any other mount point) then run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|setup-disk /mnt}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will install your running system on the mounted root, detect your file system layout and generate an fstab.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re using the MBR, you are responsible for making the proper partition bootable and make sure the MBR is OK for extlinux. If you&#039;re going to use EFI, make sure you set &amp;lt;code&amp;gt;BOOTLOADER=grub&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;USE_EFI=1&amp;lt;/code&amp;gt;, and that {{Pkg|grub-efi}} and {{Pkg|efibootmgr}} are installed before running &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;. If your system still does not boot, you can try to manually create a boot entry with {{Pkg|efibootmgr}}, for which instructions can be found at [https://wiki.alpinelinux.org/wiki/Bootloaders#efibootmgr].&lt;br /&gt;
&lt;br /&gt;
See also [https://github.com/itoffshore/alpine-linux-scripts setup-partitions]&lt;br /&gt;
&lt;br /&gt;
=== Dual-booting ===&lt;br /&gt;
See [[Installing Alpine on HDD dualbooting|Install to HDD with dual-boot]]&lt;br /&gt;
&lt;br /&gt;
=== Other needs ===&lt;br /&gt;
* [[Installing Alpine Linux in a chroot]]&lt;br /&gt;
* [[Replacing non-Alpine Linux with Alpine remotely]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 Create partition with with type &amp;quot;Linux&amp;quot; (83).&lt;br /&gt;
 apk_add e2fsprogs rsync&lt;br /&gt;
 mkfs.ext3 /dev/hda1&lt;br /&gt;
 mount -t ext3 /dev/hda1 /mnt&lt;br /&gt;
 ROOT=/mnt apk_add uclibc busybox apk-tools alpine-baselayout alpine-conf&lt;br /&gt;
 # Install busybox links&lt;br /&gt;
 mkdir /mnt/proc &amp;amp;&amp;amp; mount --bind /proc /mnt/proc &amp;amp;&amp;amp; chroot /mnt /bin/busybox --install -s &amp;amp;&amp;amp; umount /mnt/proc&lt;br /&gt;
 # Copy the apk repository&lt;br /&gt;
 rsync -ruav /media/cdrom/apks /mnt&lt;br /&gt;
 mkdir /mnt/etc/apk &amp;amp;&amp;amp; echo &amp;quot;APK_PATH=file://apks&amp;quot; &amp;gt; /mnt/etc/apk/apk.conf&lt;br /&gt;
 # Copy the hd/ext3 initramfs image, kernel and kernel modules&lt;br /&gt;
 rsync -ruav /media/cdrom/kernel/generic/hd-ext3.gz /media/cdrom/kernel/generic/bzImage /mnt&lt;br /&gt;
 rsync -ruav /lib/modules/* /mnt/lib/modules/&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Setting up RAID ==&lt;br /&gt;
Set up a raid array as described [[Setting up a software RAID1 array|here]].&lt;br /&gt;
In this document, two raid arrays are configured: md0 for swap (512MB) and md1 for /var. &lt;br /&gt;
&lt;br /&gt;
== Create filesystem ==&lt;br /&gt;
We need to install the software to create the filesystem (&amp;quot;format&amp;quot; the partition).&lt;br /&gt;
 apk_add e2fsprogs&lt;br /&gt;
&lt;br /&gt;
If you use an Alpine release older than 1.3.8 you will need to manually create a link to /etc/mtab.&lt;br /&gt;
 ln -fs /proc/mounts /etc/mtab&lt;br /&gt;
&lt;br /&gt;
Create the filesystem. The -j option makes it ext&#039;&#039;&#039;3&#039;&#039;&#039;. Without the -j option it will become non-journaling ext&#039;&#039;&#039;2&#039;&#039;&#039;. This step might take some time if your partition is big.&lt;br /&gt;
 mke2fs -j /dev/md1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now edit /etc/fstab and add your new partitions. Mine looks like this:&lt;br /&gt;
 none            /proc           proc    defaults 0 0&lt;br /&gt;
 none            /sys            sysfs   defaults 0 0&lt;br /&gt;
 udev            /dev            tmpfs   size=100k 0 0&lt;br /&gt;
 none            /dev/pts        devpts  defaults 0 0&lt;br /&gt;
 tmpfs           /dev/shm        tmpfs   defaults 0 0&lt;br /&gt;
 /dev/cdrom      /media/cdrom    iso9660 ro 0 0&lt;br /&gt;
 /dev/fd0        /media/floppy   vfat    noauto  0 0&lt;br /&gt;
 /dev/usba1      /media/usb      vfat    noauto  0 0&lt;br /&gt;
 none            /proc/bus/usb   usbfs noauto 0 0&lt;br /&gt;
  &lt;br /&gt;
 /dev/md0        swap            swap    defaults 0 0&lt;br /&gt;
 /dev/md1        /var            ext3    defaults 0 0&lt;br /&gt;
&lt;br /&gt;
== Move the data ==&lt;br /&gt;
Stop aall services running that put anything in /var (syslog for example). If you have booted on a clean installation and not run setup-alpine, then no services should be running. However, some packages might have created dirs in /var, so we need to backup /var, mount the new /var directory and move all backed up dirs to the raided /var.&lt;br /&gt;
&lt;br /&gt;
 mv /var /var.tmp&lt;br /&gt;
 mkdir /var&lt;br /&gt;
 mount /var&lt;br /&gt;
 mv /var.tmp/* /var&lt;br /&gt;
 rmdir /var.tmp&lt;br /&gt;
&lt;br /&gt;
Verify that everyting looks ok with the &#039;&#039;df&#039;&#039; utility.&lt;br /&gt;
 ~ $ df&lt;br /&gt;
 Filesystem           1k-blocks      Used Available Use% Mounted on&lt;br /&gt;
 none                    255172     23544    231628   9% /&lt;br /&gt;
 udev                       100         0       100   0% /dev&lt;br /&gt;
 /dev/cdrom              142276    142276         0 100% /media/cdrom&lt;br /&gt;
 /dev/md1              37977060    181056  35866876   1% /var&lt;br /&gt;
&lt;br /&gt;
== Survive reboots ==&lt;br /&gt;
Now we have everything up and running. We need to make sure that everything will be restored during next reboot.&lt;br /&gt;
&lt;br /&gt;
Create an initscript that will mount /var for you during boot. I call it /etc/init.d/mountdisk and it looks like this:&lt;br /&gt;
 #!/sbin/runscript&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
         ebegin &amp;quot;Mounting /var&amp;quot;&lt;br /&gt;
         mount /var&lt;br /&gt;
         eend $?&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
         ebegin &amp;quot;Unmounting /var&amp;quot;&lt;br /&gt;
         umount /var&lt;br /&gt;
         eend $?&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Make it exectutable:&lt;br /&gt;
 chmod +x /etc/init.d/mountdisk&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Since Alpine-1.7.3 a script named &#039;&#039;localmount&#039;&#039; is included so you will not need to create your own &#039;&#039;mountdisk&#039;&#039; script.&lt;br /&gt;
&lt;br /&gt;
/var needs to be mounted *after* raid is created. The -k option will make alpine unmount the /var partition during boot. Add start swap to boot:&lt;br /&gt;
 rc_add -k -s 06 mountdisk&lt;br /&gt;
 rc_add -k -s 06 swap&lt;br /&gt;
&lt;br /&gt;
The /dev/md* device nodes will not be created automatically, so we need to put them on floppy too.&lt;br /&gt;
 lbu include /dev/md*&lt;br /&gt;
&lt;br /&gt;
If you have users on the server and want /home to be permanent, you can create a directory /var/home and create links to /var/home.&lt;br /&gt;
 mkdir /var/home&lt;br /&gt;
 mv /home/* /var/home/&lt;br /&gt;
 ln -s /var/home/* /home/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; You cannot just replace /home with a link that points to /var/home since the base has a /home directory. When the system tries to copy the config from floppy it will fail because of the already existing /home directory.&lt;br /&gt;
&lt;br /&gt;
Make sure the links are stored to floppy:&lt;br /&gt;
 lbu include /home/*&lt;br /&gt;
&lt;br /&gt;
Also remember to move any newly created users to /var/home and create a link:&lt;br /&gt;
 adduser bob&lt;br /&gt;
 mv /home/bob /var/home/&lt;br /&gt;
 ln -s /var/home/bob /home/bob&lt;br /&gt;
 lbu include /home/bob&lt;br /&gt;
&lt;br /&gt;
Save to floppy:&lt;br /&gt;
 lbu commit floppy&lt;br /&gt;
&lt;br /&gt;
== Operational Test ==&lt;br /&gt;
Reboot computer. Now the raid should start and /var should be mounted. Check with df:&lt;br /&gt;
 ~ $ df&lt;br /&gt;
 Filesystem           1k-blocks      Used Available Use% Mounted on&lt;br /&gt;
 none                    255172     23976    231196   9% /&lt;br /&gt;
 mdev                       100         0       100   0% /dev&lt;br /&gt;
 /dev/cdrom              140932    140932         0 100% /media/cdrom&lt;br /&gt;
 /dev/md1              37977060    180984  35866948   1% /var&lt;br /&gt;
&lt;br /&gt;
== Upgrades ==&lt;br /&gt;
Since the package database is on disk, you cannot update by simply replacing the CDROM. You will have to either run the upgrade on the new CDROM or run &#039;&#039;apk_add -u ... &amp;amp;&amp;amp; update-conf&#039;&#039; manually.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting up swap ==&lt;br /&gt;
&lt;br /&gt;
# create a partition with the type set to &amp;quot;linux swap&amp;quot; (82) (If you&#039;re going to use a logical volume for swap, skip this step and &amp;lt;code&amp;gt;lvcreate&amp;lt;/code&amp;gt; that instead.)&lt;br /&gt;
# &amp;lt;code&amp;gt;mkswap /dev/sda2&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;echo -e &amp;quot;/dev/sda2 none swap sw 0 0&amp;quot; &amp;gt;&amp;gt; /mnt/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;swapon /dev/sda2&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;rc-service swap start&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
{{Cmd|free -m}} will show how much swap space is available (in MB).&lt;br /&gt;
&lt;br /&gt;
If you prefer maximum speed, you don&#039;t need configure any raid devices for swap. Just add 2 swap partitions on different disks and linux will stripe them automatically. The downside is that the moment one disk fails, the system will go down. For better reliability, put swap on RAID1. &lt;br /&gt;
&lt;br /&gt;
{{Todo|Instructions for cryptswap?}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Storage]]&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Sway&amp;diff=20227</id>
		<title>Sway</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Sway&amp;diff=20227"/>
		<updated>2021-11-03T09:17:06Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* Running Sway */ Added note for swaylock&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://swaywm.org Sway] is a tiling Wayland compositor. It&#039;s a drop-in replacement for the i3 window manager.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
First, install &amp;amp; configure eudev:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add eudev&lt;br /&gt;
# setup-udev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install graphics drivers appropriate to your system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add mesa-dri-gallium  # gallium&lt;br /&gt;
# apk add mesa-dri-classic  # or classic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following links contain guides for setting up the video stack.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.alpinelinux.org/wiki/Intel_Video Intel Video]&lt;br /&gt;
* [https://wiki.alpinelinux.org/wiki/Radeon_Video Radeon Video]&lt;br /&gt;
&lt;br /&gt;
Add yourself to the input and video groups:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# adduser $USER input&lt;br /&gt;
# adduser $USER video&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You have to log out and back in for this to take effect. &lt;br /&gt;
&lt;br /&gt;
Install some TTF fonts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add ttf-dejavu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since sway 1.6.1 (more specifically, since wlroots 0.14), you need to set up libseat backend if you wish to run sway directly (without nesting it in another wayland compositor). To do that, choose one of the following methods:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;seatd daemon&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add seatd&lt;br /&gt;
# rc-update add seatd&lt;br /&gt;
# rc-service seatd start&lt;br /&gt;
# adduser $USER seat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are already logged in as a $USER, you will need to relogin.&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;seatd-launch&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add seatd-launch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When starting sway, you will need to prefix invocation with &amp;lt;code&amp;gt;seatd-launch&amp;lt;/code&amp;gt;.  &lt;br /&gt;
Note: &amp;lt;code&amp;gt;seatd-launch&amp;lt;/code&amp;gt; is a suid binary, so it might be wise to use one of the other methods from a security perspective.&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;elogind daemon&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
We can now install sway:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add sway sway-doc&lt;br /&gt;
# apk add                \ # Install optional dependencies:&lt;br /&gt;
    xwayland             \ # strongly reccommended for compatibility reasons&lt;br /&gt;
    alacritty            \ # default terminal emulator&lt;br /&gt;
    dmenu                \ # default application launcher&lt;br /&gt;
    swaylock             \ # lockscreen tool&lt;br /&gt;
    swayidle               # idle management (DPMS) daemon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running Sway ==&lt;br /&gt;
&lt;br /&gt;
To run sway, first set XDG_RUNTIME_DIR to a suitable location (e.g. /tmp). Install &amp;amp; configure elogind to skip this step. Then run sway from the Linux console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ XDG_RUNTIME_DIR=/tmp sway&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(if you run sway with seatd-launch, you will need to use &amp;lt;code&amp;gt;$ XDG_RUNTIME_DIR=/tmp seatd-launch sway&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
See the [https://wiki.alpinelinux.org/wiki/Wayland Wayland] page for a permanent configuration&lt;br /&gt;
&lt;br /&gt;
Note: swaylock needs to be able to read your /etc/shadow file to be able to validate your password&lt;br /&gt;
&lt;br /&gt;
== Configuration and Usage ==&lt;br /&gt;
&lt;br /&gt;
An example config is provided at &amp;lt;code&amp;gt;/etc/sway/config&amp;lt;/code&amp;gt;. Copy it to &amp;lt;code&amp;gt;~/.config/sway/config&amp;lt;/code&amp;gt; and read through it to learn the default keybindings.&lt;br /&gt;
&lt;br /&gt;
For additional information, start at &amp;lt;code&amp;gt;man 5 sway&amp;lt;/code&amp;gt; and read the [https://github.com/swaywm/sway/wiki upstream FAQ].&lt;br /&gt;
&lt;br /&gt;
[[Category:Desktop]]&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=UEFI&amp;diff=20090</id>
		<title>UEFI</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=UEFI&amp;diff=20090"/>
		<updated>2021-08-17T05:33:46Z</updated>

		<summary type="html">&lt;p&gt;Owbk: /* BIOS boot process for newbies */ Changed &amp;quot;Ruindows&amp;quot; to &amp;quot;Windows&amp;quot;, and fixed formatting and grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
= UEFI and BIOS definitions and introduction =&lt;br /&gt;
&lt;br /&gt;
In the old days, BIOS (for &#039;&#039;&#039;B&#039;&#039;&#039;asic &#039;&#039;&#039;I&#039;&#039;&#039;nput &#039;&#039;&#039;O&#039;&#039;&#039;utput &#039;&#039;&#039;S&#039;&#039;&#039;ystem) was how computers booted from the 1980s onwards. But now in newer hardware for devices, servers, laptops and desktops computers the UEFI (for &#039;&#039;&#039;U&#039;&#039;&#039;nified &#039;&#039;&#039;E&#039;&#039;&#039;xtensible &#039;&#039;&#039;F&#039;&#039;&#039;irmware &#039;&#039;&#039;I&#039;&#039;&#039;nterface) defines a software interface between an operating system and platform firmware into the vendor hardware.&lt;br /&gt;
&lt;br /&gt;
UEFI replaces the BIOS firmware interface originally present in all IBM PC-compatible personal computers, early modern computer&#039;s UEFI firmware implementations provide legacy support for BIOS services.&lt;br /&gt;
&lt;br /&gt;
== The history so far ==&lt;br /&gt;
&lt;br /&gt;
Due newer incoming 64-bit incoming processors the older computers boot process are not more possible. It started life on Itanium (Intel&#039;s first 64-bit processor) systems. Itanium had no support for 32-bit, and certainly no embedded 80286, so they had to come up with a different system. &lt;br /&gt;
&lt;br /&gt;
All this was driven by a problem in the most extensive and used architecture: x86 32-bit, inclusivelly a new 2019&#039;s Skylake i7-6700k still has an 80286 embedded in it because all x86 BIOS strictly only supports 16-bit 8088-derivative processors.&lt;br /&gt;
&lt;br /&gt;
Intel developed the original Extensible Firmware Interface (EFI) specification. Some of the EFI&#039;s practices and data formats mirror those from M$ Redmon&#039;s OS. In 2005, UEFI deprecated EFI 1.10 (the final release of EFI). The Unified EFI Forum is the industry body that (seems) &amp;quot;manages&amp;quot; the UEFI specification. &lt;br /&gt;
&lt;br /&gt;
= Alpine UEFI support =&lt;br /&gt;
&lt;br /&gt;
Currently are only in basic form, not all the architectures are complete supported.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;support for &lt;br /&gt;
[https://en.wikipedia.org/wiki/EFI_system_partition EFI System Partition] was started in the [https://alpinelinux.org/posts/Alpine-3.7.0-released.html Alpine 3.7.0 new mayor release]&#039;&#039;&#039;, preliminary support in that version does not create the &lt;br /&gt;
[https://en.wikipedia.org/wiki/EFI_system_partition EFI Partition], only has support for existing ones or manually created.&lt;br /&gt;
&lt;br /&gt;
Started &#039;&#039;&#039;in the [https://alpinelinux.org/posts/Alpine-3.8.0-released.html Alpine 3.8.0 new mayor release] support in the installer for the GRUB boot loader was added&#039;&#039;&#039; so now Linux experimental users can play with combinations of solutions and proper &lt;br /&gt;
[https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface UEFI] complete installations. Please refer to [[Alpine_and_UEFI#UEFI_and_BIOS_definitions_and_introduction|UEFI_and_BIOS section of this page]] first.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#EFI_system_partition EFI System Partition] are not the complete overall of the [https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface UEFI], it&#039;s just the need minimal infrastructure to property boot by and [https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Implementation_and_adoption UEFI modern machine]. See the [[Alpine_and_UEFI#UEFI_mandatory_partition_mechanics|Alpine UEFI partition mechanics notes]] section in this page for details.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please read carefully the [[Alpine_and_UEFI#UEFI_and_BIOS_definitions_and_introduction|UEFI_and_BIOS section of this page]].&lt;br /&gt;
&lt;br /&gt;
== Minimum Alpine partition sheme ==&lt;br /&gt;
&lt;br /&gt;
Alpine Linux only require a root partition for system and a swap partition, but, UEFI systems require an EFI system partition. Needs a bootloader program in \EFI\$bootloader.efi on a EFI System Partition, a specially tagged partition. The current status of that mechanics to boot &#039;&#039;&#039;in Alpine Linux are still in development and only basic support to existing mades are provided&#039;&#039;&#039;. See [[Alpine_and_UEFI#UEFI_mandatory_partition_mechanics|UEFI_mandatory_partition_mechanics]] for details.&lt;br /&gt;
&lt;br /&gt;
== Notes about the boot flags and boot partition ==&lt;br /&gt;
&lt;br /&gt;
UEFI booting does not involve any &amp;quot;boot&amp;quot; flag, that&#039;s it&#039;s a need only for BIOS booting. The UEFI booting relies solely on the boot entries in NVRAM. Parted and its front-ends use a &amp;quot;boot&amp;quot; flag on GPT to indicate that a partition is an EFI system partition.&lt;br /&gt;
&lt;br /&gt;
A BIOS boot partition is only required when using GRUB for BIOS booting from a GPT disk. The partition has nothing to do and it must not be formatted with a file system or mounted.&lt;br /&gt;
&lt;br /&gt;
== Alpine disk layout for UEFI ==&lt;br /&gt;
&lt;br /&gt;
You will need a disk layout that your system firmware is capable of booting, you &#039;&#039;&#039;will need a boot partition and a root partition&#039;&#039;&#039;. Other architectures may have different requirements an not all are supported, please read [[Alpine_and_UEFI#UEFI_mandatory_partition_mechanics|UEFI_mandatory_partition_mechanics]] for details.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t already know what filesystem format you want your boot partition, choose &#039;&#039;&#039;ext2&#039;&#039;&#039;. The &#039;&#039;&#039;root partition, and any additional partitions or LVM volume groups, may be in any format that the kernel is capable of reading&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== UEFI/GPT minimal layout ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Mount point&lt;br /&gt;
! Partition&lt;br /&gt;
! Partition type Purpose&lt;br /&gt;
! Recommended minimum size&lt;br /&gt;
|-&lt;br /&gt;
| /boot or /efi&lt;br /&gt;
| /dev/sda1&lt;br /&gt;
| Boot system partition for EFI&lt;br /&gt;
| 260 MiB&lt;br /&gt;
|-&lt;br /&gt;
| /&lt;br /&gt;
| /dev/sda2&lt;br /&gt;
| Alpine Linux root system OS&lt;br /&gt;
| 1–32 GiB&lt;br /&gt;
|-&lt;br /&gt;
| none&lt;br /&gt;
| /dev/sda3&lt;br /&gt;
| Linux swap memory&lt;br /&gt;
| 1-2Gb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== BIOS/MBR minimal layout ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Mount point&lt;br /&gt;
! Partition&lt;br /&gt;
! Partition type Purpose&lt;br /&gt;
! Recommended minimum size&lt;br /&gt;
|-&lt;br /&gt;
| /boot&lt;br /&gt;
| /dev/sda1&lt;br /&gt;
| Boot grub partition (optional)&lt;br /&gt;
| 100 MiB&lt;br /&gt;
|-&lt;br /&gt;
| /&lt;br /&gt;
| /dev/sda2&lt;br /&gt;
| Alpine Linux root system OS&lt;br /&gt;
| 1–32 GiB&lt;br /&gt;
|-&lt;br /&gt;
| none&lt;br /&gt;
| /dev/sda3&lt;br /&gt;
| Linux swap memory&lt;br /&gt;
| 1-2Gb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== BIOS/GPT minimal layout ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Mount point&lt;br /&gt;
! Partition&lt;br /&gt;
! Partition type Purpose&lt;br /&gt;
! Recommended minimum size&lt;br /&gt;
|-&lt;br /&gt;
| None&lt;br /&gt;
| /dev/sda1&lt;br /&gt;
| BIOS boot partition&lt;br /&gt;
| 8 MiB&lt;br /&gt;
|-&lt;br /&gt;
| /&lt;br /&gt;
| /dev/sda2&lt;br /&gt;
| Alpine Linux root system OS&lt;br /&gt;
| 1–32 GiB&lt;br /&gt;
|-&lt;br /&gt;
| none&lt;br /&gt;
| /dev/sda3&lt;br /&gt;
| Linux swap memory&lt;br /&gt;
| 1-2Gb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= BIOS boot process for newbies =&lt;br /&gt;
&lt;br /&gt;
BIOS only supports two methods of booting - loading 448ish bytes of 8088 machine code from the start of a floppy disk, or the same from the start of a fixed IDE disk.&lt;br /&gt;
&lt;br /&gt;
BIOS can only assume one boot loader occupying the start of hard drive. So each OS overwrites it with its own boot loader. This is very messy. There&#039;s also the 2 TiB issue with MBR.&lt;br /&gt;
&lt;br /&gt;
In order to make your drive more useful, it&#039;s split up into partitions - chunks of disk space which can be treated as independent drives from inside your OS. Windows (following on from MS-DOS) only supports one method for partitioning its boot drive on BIOS systems, which is MBR.&lt;br /&gt;
&lt;br /&gt;
MBR cannot handle disks larger than 2 TiB (2&amp;lt;sup&amp;gt;32&amp;lt;/sup&amp;gt; × 512 bytes). Therefore, it is impossible to use any drive space beyond 2 TiB using MBR layout. So if you&#039;re booting from it and use BIOS, you MUST use MBR (because that&#039;s all Windows supports) - and you simply can&#039;t use any space beyond that if your boot drive is 2TB or bigger.&lt;br /&gt;
&lt;br /&gt;
For now, any modern motherboard (since 2011 onwards) is using UEFI natively, but most can emulate BIOS enough for you to keep booting with BIOS.&lt;br /&gt;
&lt;br /&gt;
= UEFI boot process explained =&lt;br /&gt;
&lt;br /&gt;
Well, let&#039;s start with installers. It&#039;ll read a UDF or FAT32-formatted USB drive or DVD, and look for the file /efi/boot/bootx64.efi and run it. An app, written in the UEFI &amp;quot;OS&amp;quot;. It can be anything! Here&#039;s classic text adventure Zork, as a UEFI app.&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible to make boot media which is valid for both UEFI and BIOS. Unfortunately, in a slightly user-unfriendly twist, you (the user) need to pick the right boot entry. For example, on the wife&#039;s PC, a USB stick gets listed as both &amp;quot;UEFI: Sandisk Cruzer Edge&amp;quot; and &amp;quot;USB: Sandisk Cruzer Edge&amp;quot;. Just... make sure you pick the right entry. It&#039;s impossible to change mode after this point.&lt;br /&gt;
&lt;br /&gt;
It uses a different partitioning system called GPT instead of MBR, and secondly it creates an extra ~100 meg partition called the &amp;quot;EFI System Partition&amp;quot; - a FAT32 partition where the boot loader apps get installed to (no more boot sectors).&lt;br /&gt;
&lt;br /&gt;
Each OS will stick its boot loader somewhere in the ESP, then send a signal to the firmware to write this new loader&#039;s location into the CMOS. Each entry installed in this manner will get its own listing in your &amp;quot;boot devices&amp;quot; list on the firmware - so if you installed MACOSX, you&#039;ll have &amp;quot;MACOSX Boot Manager&amp;quot; as an entry next to your DVD drive and hard drive after you reboot. This is why you don&#039;t do the old &amp;quot;unplug drive A when installing a different OS to drive B&amp;quot; thing, or swap cables, or anything like that. You should only have one ESP, the one on drive A. &lt;br /&gt;
&lt;br /&gt;
== UEFI mandatory partition mechanics ==&lt;br /&gt;
&lt;br /&gt;
Regular UEFI boot has several lists of possible boot entries, stored in UEFI config variables (normally in NVRAM), and boot order config variables stored alongside them. Unfortunately, a lot of PC UEFI implementations have got this wrong and so don&#039;t work properly.&lt;br /&gt;
&lt;br /&gt;
The correct way for this to work when booting off local disk is for a boot variable to point to a vendor-specific bootloader program in &amp;lt;code&amp;gt;\EFI\$bootloader.efi&amp;lt;/code&amp;gt; on the EFI System Partition (ESP), a specially tagged partition (Some OS&#039;s formatted as Fat32.. that&#039;s are unnecessary due it&#039;s just to able to poor OS&#039;s to boot like M$ Redmond OS&#039;s). The current status of that mechanics to boot in Alpine Linux are still in development and only basic support to existing made are provided.&lt;br /&gt;
&lt;br /&gt;
== What&#039;s this infamous &amp;quot;Secure Boot&amp;quot;? ==&lt;br /&gt;
&lt;br /&gt;
It&#039;s a way for your motherboard to prevent tampering of your OS (e.g. boot-sector viruses, or backdoors installed without your knowledge). You can provide a list of certificates you trust, then the firmware enforces that everything involved with the boot process (not just the boot loader, but the OS kernel itself, and all your device firmware like your GPU BIOS) are signed with a trusted key.&lt;br /&gt;
&lt;br /&gt;
Works using cryptographic checksums and signatures. It &#039;&#039;&#039;stops your system from booting unsigned code&#039;&#039;&#039;. You can sign your own, and trust the certificate you used to do that signing. Or you can get the boot code signed by M$ - every motherboard has a small list of pre-trusted certificates which almost (always) includes M$ redmon&#039;s certs, which they currently let anyone use for a small fee.&lt;br /&gt;
&lt;br /&gt;
Most of the programs that are expected to run in the UEFI environment are boot loaders, but others exist too. There are also programs to deal with firmware updates before operating system startup (like fwupdate and fwupd), and other utilities may live here too.&lt;br /&gt;
&lt;br /&gt;
Due the &amp;quot;Unsigned code curse&amp;quot;, Alpine linux [https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#EFI_system_partition EFI System Partition] &#039;&#039;&#039;are not the complete overall of the [https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface UEFI], it&#039;s just the need minimal infrastructure to property boot&#039;&#039;&#039; it!&lt;br /&gt;
&lt;br /&gt;
== How to boot unsigned code? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You must disable Secure Boot. Alpine has no support due there&#039;s no Alpine Cert boot!&#039;&#039;&#039; Other Linux distros (mostly enterprise made related) have had. This meant that on many new computer systems, users had to first disable Secure Boot to be able to install and the methods for doing this vary massively from one system to another, making this potentially quite difficult for users. &lt;br /&gt;
&lt;br /&gt;
This are due M$crosoft act as a Certification Authority (CA) for SB, and they will sign programs/bootloaders on behalf of other trusted organizations so that their programs will also run, that of course have a cost.. and there&#039;s nothing related to free software but affects to.. There&#039;s no Alpine Linux Certification like are with other enterprise related Linux.&lt;br /&gt;
&lt;br /&gt;
Take in consideration that for Alpine linux [https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#EFI_system_partition EFI System Partition] are not the complete overall of the [https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface UEFI], it&#039;s &#039;&#039;&#039;just the need minimal infrastructure to property boot&#039;&#039;&#039; by an [https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Implementation_and_adoption UEFI modern machine]. See the [[Alpine_and_UEFI#UEFI_mandatory_partition_mechanics|Alpine UEFI partition mechanics notes]] section in this page for details.&lt;br /&gt;
&lt;br /&gt;
= Overall notes and conclusions =&lt;br /&gt;
&lt;br /&gt;
Currently Alpine UEFI and Secure Boot are very early stage.. enough support was made and enabled but Secure Boot must be disabled due obviously reasons.&lt;br /&gt;
&lt;br /&gt;
BIOS only or compatible old BIOS computers are a most easily way to install Linux in general, that does not need of extra partition layer to boot.. and does not need extra special files into.&lt;br /&gt;
&lt;br /&gt;
UEFI only or newer UEFI computers are very common in nomadays and not so easy to install Alpine linux, that will need extra partition layer to boot.. a extra EFI partition with special files into.&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
&lt;br /&gt;
* [[Newbie_Alpine_Ecosystem]]&lt;br /&gt;
* [[Alpine_newbie_install_manual|Alpine Installation]]&lt;br /&gt;
* [[Create a Bootable Compact Flash]]&lt;br /&gt;
* [[Create a bootable SDHC from a Mac]]&lt;br /&gt;
* [[Create a Bootable USB]]&lt;br /&gt;
* [[Create UEFI boot USB]]&lt;br /&gt;
* [[Create UEFI seureboot USB]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Newbie]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Owbk</name></author>
	</entry>
</feed>