CINXE.COM
Stable IT: December 2022
<!DOCTYPE html> <html class='v2' dir='ltr' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'> <head> <link href='https://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css' rel='stylesheet' type='text/css'/> <meta content='width=1100' name='viewport'/> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> <meta content='blogger' name='generator'/> <link href='https://www.stableit.blog/favicon.ico' rel='icon' type='image/x-icon'/> <link href='https://www.stableit.blog/2022/12/' rel='canonical'/> <link rel="alternate" type="application/atom+xml" title="Stable IT - Atom" href="https://www.stableit.blog/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="Stable IT - RSS" href="https://www.stableit.blog/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="Stable IT - Atom" href="https://www.blogger.com/feeds/1386140445493682484/posts/default" /> <!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> <meta content='Blog about system engineering, programming and networks' name='description'/> <meta content='https://www.stableit.blog/2022/12/' property='og:url'/> <meta content='Stable IT' property='og:title'/> <meta content='Blog about system engineering, programming and networks' property='og:description'/> <title> Stable IT: December 2022 </title> <style id='page-skin-1' type='text/css'><!-- /* ----------------------------------------------- Blogger Template Style Name: Simple Designer: Josh Peterson URL: www.noaesthetic.com ----------------------------------------------- */ /* Variable definitions ==================== <Variable name="keycolor" description="Main Color" type="color" default="#66bbdd"/> <Group description="Page Text" selector="body"> <Variable name="body.font" description="Font" type="font" default="normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="body.text.color" description="Text Color" type="color" default="#222222"/> </Group> <Group description="Backgrounds" selector=".body-fauxcolumns-outer"> <Variable name="body.background.color" description="Outer Background" type="color" default="#66bbdd"/> <Variable name="content.background.color" description="Main Background" type="color" default="#ffffff"/> <Variable name="header.background.color" description="Header Background" type="color" default="transparent"/> </Group> <Group description="Links" selector=".main-outer"> <Variable name="link.color" description="Link Color" type="color" default="#2288bb"/> <Variable name="link.visited.color" description="Visited Color" type="color" default="#888888"/> <Variable name="link.hover.color" description="Hover Color" type="color" default="#33aaff"/> </Group> <Group description="Blog Title" selector=".header h1"> <Variable name="header.font" description="Font" type="font" default="normal normal 60px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="header.text.color" description="Title Color" type="color" default="#3399bb" /> </Group> <Group description="Blog Description" selector=".header .description"> <Variable name="description.text.color" description="Description Color" type="color" default="#777777" /> </Group> <Group description="Tabs Text" selector=".tabs-inner .widget li a"> <Variable name="tabs.font" description="Font" type="font" default="normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="tabs.text.color" description="Text Color" type="color" default="#999999"/> <Variable name="tabs.selected.text.color" description="Selected Color" type="color" default="#000000"/> </Group> <Group description="Tabs Background" selector=".tabs-outer .PageList"> <Variable name="tabs.background.color" description="Background Color" type="color" default="#f5f5f5"/> <Variable name="tabs.selected.background.color" description="Selected Color" type="color" default="#eeeeee"/> </Group> <Group description="Post Title" selector="h3.post-title, .comments h4"> <Variable name="post.title.font" description="Font" type="font" default="normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> </Group> <Group description="Date Header" selector=".date-header"> <Variable name="date.header.color" description="Text Color" type="color" default="#222222"/> <Variable name="date.header.background.color" description="Background Color" type="color" default="transparent"/> <Variable name="date.header.font" description="Text Font" type="font" default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="date.header.padding" description="Date Header Padding" type="string" default="inherit"/> <Variable name="date.header.letterspacing" description="Date Header Letter Spacing" type="string" default="inherit"/> <Variable name="date.header.margin" description="Date Header Margin" type="string" default="inherit"/> </Group> <Group description="Post Footer" selector=".post-footer"> <Variable name="post.footer.text.color" description="Text Color" type="color" default="#666666"/> <Variable name="post.footer.background.color" description="Background Color" type="color" default="#f9f9f9"/> <Variable name="post.footer.border.color" description="Shadow Color" type="color" default="#eeeeee"/> </Group> <Group description="Gadgets" selector="h2"> <Variable name="widget.title.font" description="Title Font" type="font" default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="widget.title.text.color" description="Title Color" type="color" default="#000000"/> <Variable name="widget.alternate.text.color" description="Alternate Color" type="color" default="#999999"/> </Group> <Group description="Images" selector=".main-inner"> <Variable name="image.background.color" description="Background Color" type="color" default="#ffffff"/> <Variable name="image.border.color" description="Border Color" type="color" default="#eeeeee"/> <Variable name="image.text.color" description="Caption Text Color" type="color" default="#222222"/> </Group> <Group description="Accents" selector=".content-inner"> <Variable name="body.rule.color" description="Separator Line Color" type="color" default="#eeeeee"/> <Variable name="tabs.border.color" description="Tabs Border Color" type="color" default="#eeeeee"/> </Group> <Variable name="body.background" description="Body Background" type="background" color="#eeaa00" default="$(color) none repeat scroll top left"/> <Variable name="body.background.override" description="Body Background Override" type="string" default=""/> <Variable name="body.background.gradient.cap" description="Body Gradient Cap" type="url" default="url(https://www.blogblog.com/1kt/simple/gradients_light.png)"/> <Variable name="body.background.gradient.tile" description="Body Gradient Tile" type="url" default="url(https://www.blogblog.com/1kt/simple/body_gradient_tile_light.png)"/> <Variable name="content.background.color.selector" description="Content Background Color Selector" type="string" default=".content-inner"/> <Variable name="content.padding" description="Content Padding" type="length" default="10px" min="0" max="100px"/> <Variable name="content.padding.horizontal" description="Content Horizontal Padding" type="length" default="10px" min="0" max="100px"/> <Variable name="content.shadow.spread" description="Content Shadow Spread" type="length" default="40px" min="0" max="100px"/> <Variable name="content.shadow.spread.webkit" description="Content Shadow Spread (WebKit)" type="length" default="5px" min="0" max="100px"/> <Variable name="content.shadow.spread.ie" description="Content Shadow Spread (IE)" type="length" default="10px" min="0" max="100px"/> <Variable name="main.border.width" description="Main Border Width" type="length" default="0" min="0" max="10px"/> <Variable name="header.background.gradient" description="Header Gradient" type="url" default="none"/> <Variable name="header.shadow.offset.left" description="Header Shadow Offset Left" type="length" default="-1px" min="-50px" max="50px"/> <Variable name="header.shadow.offset.top" description="Header Shadow Offset Top" type="length" default="-1px" min="-50px" max="50px"/> <Variable name="header.shadow.spread" description="Header Shadow Spread" type="length" default="1px" min="0" max="100px"/> <Variable name="header.padding" description="Header Padding" type="length" default="30px" min="0" max="100px"/> <Variable name="header.border.size" description="Header Border Size" type="length" default="1px" min="0" max="10px"/> <Variable name="header.bottom.border.size" description="Header Bottom Border Size" type="length" default="0" min="0" max="10px"/> <Variable name="header.border.horizontalsize" description="Header Horizontal Border Size" type="length" default="0" min="0" max="10px"/> <Variable name="description.text.size" description="Description Text Size" type="string" default="140%"/> <Variable name="tabs.margin.top" description="Tabs Margin Top" type="length" default="0" min="0" max="100px"/> <Variable name="tabs.margin.side" description="Tabs Side Margin" type="length" default="30px" min="0" max="100px"/> <Variable name="tabs.background.gradient" description="Tabs Background Gradient" type="url" default="url(https://www.blogblog.com/1kt/simple/gradients_light.png)"/> <Variable name="tabs.border.width" description="Tabs Border Width" type="length" default="1px" min="0" max="10px"/> <Variable name="tabs.bevel.border.width" description="Tabs Bevel Border Width" type="length" default="1px" min="0" max="10px"/> <Variable name="post.margin.bottom" description="Post Bottom Margin" type="length" default="25px" min="0" max="100px"/> <Variable name="image.border.small.size" description="Image Border Small Size" type="length" default="2px" min="0" max="10px"/> <Variable name="image.border.large.size" description="Image Border Large Size" type="length" default="5px" min="0" max="10px"/> <Variable name="page.width.selector" description="Page Width Selector" type="string" default=".region-inner"/> <Variable name="page.width" description="Page Width" type="string" default="auto"/> <Variable name="main.section.margin" description="Main Section Margin" type="length" default="15px" min="0" max="100px"/> <Variable name="main.padding" description="Main Padding" type="length" default="15px" min="0" max="100px"/> <Variable name="main.padding.top" description="Main Padding Top" type="length" default="30px" min="0" max="100px"/> <Variable name="main.padding.bottom" description="Main Padding Bottom" type="length" default="30px" min="0" max="100px"/> <Variable name="paging.background" color="#ffffff" description="Background of blog paging area" type="background" default="transparent none no-repeat scroll top center"/> <Variable name="footer.bevel" description="Bevel border length of footer" type="length" default="0" min="0" max="10px"/> <Variable name="mobile.background.overlay" description="Mobile Background Overlay" type="string" default="transparent none repeat scroll top left"/> <Variable name="mobile.background.size" description="Mobile Background Size" type="string" default="auto"/> <Variable name="mobile.button.color" description="Mobile Button Color" type="color" default="#ffffff" /> <Variable name="startSide" description="Side where text starts in blog language" type="automatic" default="left"/> <Variable name="endSide" description="Side where text ends in blog language" type="automatic" default="right"/> */ /* Content ----------------------------------------------- */ body { font: normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #222222; background: #eeaa00 none repeat scroll top left; padding: 0 40px 40px 40px; } html body .region-inner { min-width: 0; max-width: 100%; width: auto; } h2 { font-size: 22px; } a:link { text-decoration:none; color: #cc6611; } a:visited { text-decoration:none; color: #888888; } a:hover { text-decoration:underline; color: #ff9900; } .body-fauxcolumn-outer .fauxcolumn-inner { background: transparent url(https://www.blogblog.com/1kt/simple/body_gradient_tile_light.png) repeat scroll top left; _background-image: none; } .body-fauxcolumn-outer .cap-top { position: absolute; z-index: 1; height: 400px; width: 100%; } .body-fauxcolumn-outer .cap-top .cap-left { width: 100%; background: transparent url(https://www.blogblog.com/1kt/simple/gradients_light.png) repeat-x scroll top left; _background-image: none; } .content-outer { -moz-box-shadow: 0 0 40px rgba(0, 0, 0, .15); -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .15); -goog-ms-box-shadow: 0 0 10px #333333; box-shadow: 0 0 40px rgba(0, 0, 0, .15); margin-bottom: 1px; } .content-inner { padding: 10px 10px; } .content-inner { background-color: #ffffff; } /* Header ----------------------------------------------- */ .header-outer { background: #cc6611 url(https://www.blogblog.com/1kt/simple/gradients_light.png) repeat-x scroll 0 -400px; _background-image: none; } .Header h1 { font: normal normal 60px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #ffffff; text-shadow: 1px 2px 3px rgba(0, 0, 0, .2); } .Header h1 a { color: #ffffff; } .Header .description { font-size: 140%; color: #ffffff; } .header-inner .Header .titlewrapper { padding: 22px 30px; } .header-inner .Header .descriptionwrapper { padding: 0 30px; } /* Tabs ----------------------------------------------- */ .tabs-inner .section:first-child { border-top: 0 solid #eeeeee; } .tabs-inner .section:first-child ul { margin-top: -0; border-top: 0 solid #eeeeee; border-left: 0 solid #eeeeee; border-right: 0 solid #eeeeee; } .tabs-inner .widget ul { background: #f5f5f5 url(https://www.blogblog.com/1kt/simple/gradients_light.png) repeat-x scroll 0 -800px; _background-image: none; border-bottom: 1px solid #eeeeee; margin-top: 0; margin-left: -30px; margin-right: -30px; } .tabs-inner .widget li a { display: inline-block; padding: .6em 1em; font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #999999; border-left: 1px solid #ffffff; border-right: 1px solid #eeeeee; } .tabs-inner .widget li:first-child a { border-left: none; } .tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover { color: #000000; background-color: #eeeeee; text-decoration: none; } /* Columns ----------------------------------------------- */ .main-outer { border-top: 0 solid #eeeeee; } .fauxcolumn-left-outer .fauxcolumn-inner { border-right: 1px solid #eeeeee; } .fauxcolumn-right-outer .fauxcolumn-inner { border-left: 1px solid #eeeeee; } /* Headings ----------------------------------------------- */ div.widget > h2, div.widget h2.title { margin: 0 0 1em 0; font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #000000; } /* Widgets ----------------------------------------------- */ .widget .zippy { color: #999999; text-shadow: 2px 2px 1px rgba(0, 0, 0, .1); } .widget .popular-posts ul { list-style: none; } /* Posts ----------------------------------------------- */ h2.date-header { font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif; } .date-header span { background-color: transparent; color: #222222; padding: inherit; letter-spacing: inherit; margin: inherit; } .main-inner { padding-top: 30px; padding-bottom: 30px; } .main-inner .column-center-inner { padding: 0 15px; } .main-inner .column-center-inner .section { margin: 0 15px; } .post { margin: 0 0 25px 0; } h3.post-title, .comments h4 { font: normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif; margin: .75em 0 0; } .post-body { font-size: 110%; line-height: 1.4; position: relative; } .post-body img, .post-body .tr-caption-container, .Profile img, .Image img, .BlogList .item-thumbnail img { padding: 2px; background: #ffffff; border: 1px solid #eeeeee; -moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); -webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); } .post-body img, .post-body .tr-caption-container { padding: 5px; } .post-body .tr-caption-container { color: #222222; } .post-body .tr-caption-container img { padding: 0; background: transparent; border: none; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1); box-shadow: 0 0 0 rgba(0, 0, 0, .1); } .post-header { margin: 0 0 1.5em; line-height: 1.6; font-size: 90%; } .post-footer { margin: 20px -2px 0; padding: 5px 10px; color: #666666; background-color: #f9f9f9; border-bottom: 1px solid #eeeeee; line-height: 1.6; font-size: 90%; } #comments .comment-author { padding-top: 1.5em; border-top: 1px solid #eeeeee; background-position: 0 1.5em; } #comments .comment-author:first-child { padding-top: 0; border-top: none; } .avatar-image-container { margin: .2em 0 0; } #comments .avatar-image-container img { border: 1px solid #eeeeee; } /* Comments ----------------------------------------------- */ .comments .comments-content .icon.blog-author { background-repeat: no-repeat; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==); } .comments .comments-content .loadmore a { border-top: 1px solid #999999; border-bottom: 1px solid #999999; } .comments .comment-thread.inline-thread { background-color: #f9f9f9; } .comments .continue { border-top: 2px solid #999999; } /* Accents ---------------------------------------------- */ .section-columns td.columns-cell { border-left: 1px solid #eeeeee; } .blog-pager { background: transparent none no-repeat scroll top center; } .blog-pager-older-link, .home-link, .blog-pager-newer-link { background-color: #ffffff; padding: 5px; } .footer-outer { border-top: 0 dashed #bbbbbb; } /* Mobile ----------------------------------------------- */ body.mobile { background-size: auto; } .mobile .body-fauxcolumn-outer { background: transparent none repeat scroll top left; } .mobile .body-fauxcolumn-outer .cap-top { background-size: 100% auto; } .mobile .content-outer { -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); box-shadow: 0 0 3px rgba(0, 0, 0, .15); } .mobile .tabs-inner .widget ul { margin-left: 0; margin-right: 0; } .mobile .post { margin: 0; } .mobile .main-inner .column-center-inner .section { margin: 0; } .mobile .date-header span { padding: 0.1em 10px; margin: 0 -10px; } .mobile h3.post-title { margin: 0; } .mobile .blog-pager { background: transparent none no-repeat scroll top center; } .mobile .footer-outer { border-top: none; } .mobile .main-inner, .mobile .footer-inner { background-color: #ffffff; } .mobile-index-contents { color: #222222; } .mobile-link-button { background-color: #cc6611; } .mobile-link-button a:link, .mobile-link-button a:visited { color: #ffffff; } .mobile .tabs-inner .section:first-child { border-top: none; } .mobile .tabs-inner .PageList .widget-content { background-color: #eeeeee; color: #000000; border-top: 1px solid #eeeeee; border-bottom: 1px solid #eeeeee; } .mobile .tabs-inner .PageList .widget-content .pagelist-arrow { border-left: 1px solid #eeeeee; } --></style> <style id='template-skin-1' type='text/css'><!-- body { min-width: 960px; } .content-outer, .content-fauxcolumn-outer, .region-inner { min-width: 960px; max-width: 960px; _width: 960px; } .main-inner .columns { padding-left: 0; padding-right: 310px; } .main-inner .fauxcolumn-center-outer { left: 0; right: 310px; /* IE6 does not respect left and right together */ _width: expression(this.parentNode.offsetWidth - parseInt("0") - parseInt("310px") + 'px'); } .main-inner .fauxcolumn-left-outer { width: 0; } .main-inner .fauxcolumn-right-outer { width: 310px; } .main-inner .column-left-outer { width: 0; right: 100%; margin-left: -0; } .main-inner .column-right-outer { width: 310px; margin-right: -310px; } #layout { min-width: 0; } #layout .content-outer { min-width: 0; width: 800px; } #layout .region-inner { min-width: 0; width: auto; } body#layout div.add_widget { padding: 8px; } body#layout div.add_widget a { margin-left: 32px; } --></style> <script type='text/javascript'> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-2844992-3', 'auto', 'blogger'); ga('blogger.send', 'pageview'); </script> <link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=1386140445493682484&zx=746b5b85-fc44-4506-8216-21682f8a76d6' media='none' onload='if(media!='all')media='all'' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=1386140445493682484&zx=746b5b85-fc44-4506-8216-21682f8a76d6' rel='stylesheet'/></noscript> <meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> <meta name='google-adsense-platform-domain' content='blogspot.com'/> <!-- data-ad-client=ca-pub-5586011525661238 --> </head> <body class='loading'> <div class='navbar no-items section' id='navbar' name='Navbar'> </div> <div class='body-fauxcolumns'> <div class='fauxcolumn-outer body-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content'> <div class='content-fauxcolumns'> <div class='fauxcolumn-outer content-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content-outer'> <div class='content-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left content-fauxborder-left'> <div class='fauxborder-right content-fauxborder-right'></div> <div class='content-inner'> <header> <div class='header-outer'> <div class='header-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left header-fauxborder-left'> <div class='fauxborder-right header-fauxborder-right'></div> <div class='region-inner header-inner'> <div class='header section' id='header' name='Header'><div class='widget Header' data-version='1' id='Header1'> <div id='header-inner'> <div class='titlewrapper'> <h1 class='title'> <a href='https://www.stableit.blog/'> Stable IT </a> </h1> </div> <div class='descriptionwrapper'> <p class='description'> <span> Blog about system engineering, programming and networks </span> </p> </div> </div> </div></div> </div> </div> <div class='header-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </header> <div class='tabs-outer'> <div class='tabs-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left tabs-fauxborder-left'> <div class='fauxborder-right tabs-fauxborder-right'></div> <div class='region-inner tabs-inner'> <div class='tabs section' id='crosscol' name='Cross-column'><div class='widget HTML' data-version='1' id='HTML3'> <h2 class='title'>FastNetMon</h2> <div class='widget-content'> <a href="https://fastnetmon.com" target="_blank"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRz9YjtBzqQfgWRREVe0hfzAfFe2gEAt7QeFFZ5C6DcC7w24_0mERW6sIVigwaTkiiHU0wFv52vVTKphMqwIcuenzhOLHonXj2se7KK1VEgA0Q5JGjEFh9HqrOLQ3fAfeaG66HiZ0JkH0/s512/cropped-new_logo_3var-e1515443553507-1.png" /></a> </div> <div class='clear'></div> </div></div> <div class='tabs no-items section' id='crosscol-overflow' name='Cross-Column 2'></div> </div> </div> <div class='tabs-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='main-outer'> <div class='main-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left main-fauxborder-left'> <div class='fauxborder-right main-fauxborder-right'></div> <div class='region-inner main-inner'> <div class='columns fauxcolumns'> <div class='fauxcolumn-outer fauxcolumn-center-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-left-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-right-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <!-- corrects IE6 width calculation --> <div class='columns-inner'> <div class='column-center-outer'> <div class='column-center-inner'> <div class='main section' id='main' name='Main'><div class='widget Blog' data-version='1' id='Blog1'> <div class='blog-posts hfeed'> <div class="date-outer"> <h2 class='date-header'> <span> Saturday, 31 December 2022 </span> </h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYeuchtcVD_dFO35I8-h8_W9OTkSpPVCts4yPHZqgXHdmsMPJMLC_o6kUSiidU4N5HdB4XEoQoNlXVhGcjW-8rGalEvIBMpKQPxCUQ-MKMV-ZvVJs3y7mFLWj9kBFdn_TJnDJR_S2PEuJQvfOgaA_1a7uzbDOZ-Cn_RXdX8NsPqH1ss0tWgWRA9j0/s320/legacy.jpeg' itemprop='image_url'/> <meta content='1386140445493682484' itemprop='blogId'/> <meta content='5286600487696158865' itemprop='postId'/> <a name='5286600487696158865'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://www.stableit.blog/2022/12/nat64-on-debian-12-bookworm-box.html'> NAT64 on Debian 12 Bookworm box </a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-5286600487696158865' itemprop='articleBody'> <p>Want to be among leading engineers testing IPv6 protocol by disabling IPv4 completely for your PC or laptop but keeping access to obsoleted IPv4 based Internet? </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYeuchtcVD_dFO35I8-h8_W9OTkSpPVCts4yPHZqgXHdmsMPJMLC_o6kUSiidU4N5HdB4XEoQoNlXVhGcjW-8rGalEvIBMpKQPxCUQ-MKMV-ZvVJs3y7mFLWj9kBFdn_TJnDJR_S2PEuJQvfOgaA_1a7uzbDOZ-Cn_RXdX8NsPqH1ss0tWgWRA9j0/s1135/legacy.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1135" data-original-width="828" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYeuchtcVD_dFO35I8-h8_W9OTkSpPVCts4yPHZqgXHdmsMPJMLC_o6kUSiidU4N5HdB4XEoQoNlXVhGcjW-8rGalEvIBMpKQPxCUQ-MKMV-ZvVJs3y7mFLWj9kBFdn_TJnDJR_S2PEuJQvfOgaA_1a7uzbDOZ-Cn_RXdX8NsPqH1ss0tWgWRA9j0/s320/legacy.jpeg" width="233" /></a></div><br /><p>That's pretty simple and can be accomplished by using NAT64. </p><p>I'll use Debian 12 on my SBC board as server and Ubuntu 22.04 as client. </p><p>First of all you will need to install your own Recursive DNS server. You may use cloud DNS offerings for NAT64 but you still need server for NAT translations and there are no reasons to leak your personal browsing to companies and countries with weak data protection policies. </p><p>I used <a href="https://www.stableit.blog/2022/12/ipv6-friendly-unbound-configuration-for.html">Unbound</a> for my setup and you can use any other guide.</p><p>To enable DNS64 you just need to make few configuration changes for module config:</p><p></p><blockquote><p>module-config: "dns64 validator iterator"</p><p></p></blockquote><p>And then manually add prefix for DNS64:</p><p><span style="white-space: pre;"> </span># DNS64 prefix for NAT64:</p><p><span style="white-space: pre;"> </span>dns64-prefix: 64:ff9b::/96</p><div>Then you need to install Tayga and configure it.</div><div><br /></div><div>Install is simple:</div><div></div><blockquote><div>sudo apt install -y tayga</div></blockquote><p>Configuration is relatively easy too:</p><p></p><blockquote>sudo vim /etc/tayga.conf </blockquote><p></p><p>And then add following (you will need to replace xx by actual IP addresses of your NAT64 server):</p><p></p><blockquote><p>tun-device nat64</p><p># TAYGA's IPv4 address</p><p>ipv4-addr 192.168.1.xx</p><p># TAYGA's IPv6 address</p><p>ipv6-addr XXXX</p><p># The NAT64 prefix.</p><p>prefix 64:ff9b::/96</p><p># Dynamic pool prefix, not clear what is it</p><p>dynamic-pool 192.168.255.0/24</p><p># Persistent data storage directory</p><p>data-dir /var/spool/tayga</p></blockquote><p></p><p> Then apply configuration and enable auto-start:</p><p></p><blockquote><p>sudo systemctl restart tayga</p><p>sudo systemctl enable tayga</p></blockquote><p></p><div>This machine will work as router and we will need to enable forwarding for Linux kernel:</div><div><blockquote>echo -e "net.ipv4.ip_forward=1\nnet.ipv6.conf.all.forwarding=1" | sudo tee /etc/sysctl.d/98-enable-forwarding.conf</blockquote><p>And then apply these changes:</p><p></p><blockquote>sudo sysctl --system </blockquote><p>Then create iptables rules for NAT:</p><p></p><p></p><blockquote><p>sudo iptables -t nat -A POSTROUTING -o nat64 -j MASQUERADE</p><p></p><p>sudo iptables -t nat -A POSTROUTING -s 192.168.255.0/24 -j MASQUERADE </p><p></p></blockquote></div><div>Then I can recommend installing iptables-persistent. It will ask you to save your current confdiguration into file and you will need to confirm it:</div><div></div><blockquote><div>sudo apt install -y iptables-persistent</div><div></div></blockquote><div>After making all these changes I recommend doing full reboot for server to confirm that all daemons started on boot.</div><div><br /></div><div>After that you need to change configuration for client machine in network manager (yes, using UI) that way:</div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh4oT9mJfmNa1alCvinRrsWYUmPxGqUV7pCoroEarQ4E4BerUY6LZW9s8Gb3PffIZlOXR3jzOoWhwRHE8FJtyuA-kZenBqAI4PqqBpcWj1k_NyasbQ8-l6OSumeGk2seTPHDtfdlkUSTq-CELst3IsZRziwMzcqeUZUTXX77OLhm1Tzptcs8a0QRgg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="965" data-original-width="1167" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEh4oT9mJfmNa1alCvinRrsWYUmPxGqUV7pCoroEarQ4E4BerUY6LZW9s8Gb3PffIZlOXR3jzOoWhwRHE8FJtyuA-kZenBqAI4PqqBpcWj1k_NyasbQ8-l6OSumeGk2seTPHDtfdlkUSTq-CELst3IsZRziwMzcqeUZUTXX77OLhm1Tzptcs8a0QRgg" width="290" /></a></div></div><div>After that you can finally try disabling IPv4 this way:</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj7LY8YJeybIPT_67EI3CbrMecg2-SzMZ_ClK6j3mSmiN_5pk-DhBfQDhhjuJuDwmiKExO8Oj4XsFuoI3Hm5uOLb3tpw5y0Uh_jvi4WHZrLSSRpkqdwzhPJC9KxZnicW9YKzpMQuau5zE0MAlzuu3i3oQpKef_badrED9VV5c5B30XKJlu7_8AbMMc" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="965" data-original-width="1167" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEj7LY8YJeybIPT_67EI3CbrMecg2-SzMZ_ClK6j3mSmiN_5pk-DhBfQDhhjuJuDwmiKExO8Oj4XsFuoI3Hm5uOLb3tpw5y0Uh_jvi4WHZrLSSRpkqdwzhPJC9KxZnicW9YKzpMQuau5zE0MAlzuu3i3oQpKef_badrED9VV5c5B30XKJlu7_8AbMMc" width="290" /></a></div><br />And checking access to some IPv4 only site like <a href="http://github.com">github.com</a>. </div><div><br /></div><div>Congrats! You may face some issues as some apps may not work and you will need to investigate root cause and kindly ask service provider to fix it. </div><div><br /></div><div>My guide was based on <a href="https://robin.meis.space/2022/05/18/setup-nat64-on-debian-using-unbound-and-tayga/">this</a> one.</div><div><br /></div><div>I have reworked this article and published it on my <a href="https://pavel.network/building-gateway-to-access-legacy-ipv4-internet-from-ipv6-only-work-laptop/">new blog</a>.</div><p><br /></p> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/05424682716332865946' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/05424682716332865946' rel='author' title='author profile'> <span itemprop='name'> Pavel Odintsov </span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://www.stableit.blog/2022/12/nat64-on-debian-12-bookworm-box.html' itemprop='url'/> <a class='timestamp-link' href='https://www.stableit.blog/2022/12/nat64-on-debian-12-bookworm-box.html' rel='bookmark' title='permanent link'> <abbr class='published' itemprop='datePublished' title='2022-12-31T21:12:00Z'> 21:12 </abbr> </a> </span> <span class='reaction-buttons'> </span> <span class='post-comment-link'> <a class='comment-link' href='https://www.stableit.blog/2022/12/nat64-on-debian-12-bookworm-box.html#comment-form' onclick=''> No comments : </a> </span> <span class='post-backlinks post-comment-link'> </span> <span class='post-icons'> <span class='item-action'> <a href='https://www.blogger.com/email-post/1386140445493682484/5286600487696158865' title='Email Post'> <img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-285460659'> <a href='https://www.blogger.com/post-edit.g?blogID=1386140445493682484&postID=5286600487696158865&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=5286600487696158865&target=email' target='_blank' title='Email This'> <span class='share-button-link-text'> Email This </span> </a> <a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=5286600487696158865&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'> <span class='share-button-link-text'> BlogThis! </span> </a> <a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=5286600487696158865&target=twitter' target='_blank' title='Share to X'> <span class='share-button-link-text'> Share to X </span> </a> <a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=5286600487696158865&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'> <span class='share-button-link-text'> Share to Facebook </span> </a> <a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=5286600487696158865&target=pinterest' target='_blank' title='Share to Pinterest'> <span class='share-button-link-text'> Share to Pinterest </span> </a> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='1386140445493682484' itemprop='blogId'/> <meta content='8832770404766581594' itemprop='postId'/> <a name='8832770404766581594'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://www.stableit.blog/2022/12/ipv6-friendly-unbound-configuration-for.html'> IPv6 friendly Unbound configuration for home DNS recursor on SBC </a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-8832770404766581594' itemprop='articleBody'> <p>I recently discovered how unfriendly is Unbound configuration for Debian installations. I had to spent few hours to craft my own <a href="https://gist.github.com/pavel-odintsov/2367902fe58123d35337d6dc4279f5a7">configuration</a> for it and put it to /etc/unbound/unbound.conf.d/recursor.conf. </p><p>This configuration has preference to use IPv6 for DNS lookup when possible. </p> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/05424682716332865946' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/05424682716332865946' rel='author' title='author profile'> <span itemprop='name'> Pavel Odintsov </span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://www.stableit.blog/2022/12/ipv6-friendly-unbound-configuration-for.html' itemprop='url'/> <a class='timestamp-link' href='https://www.stableit.blog/2022/12/ipv6-friendly-unbound-configuration-for.html' rel='bookmark' title='permanent link'> <abbr class='published' itemprop='datePublished' title='2022-12-31T18:10:00Z'> 18:10 </abbr> </a> </span> <span class='reaction-buttons'> </span> <span class='post-comment-link'> <a class='comment-link' href='https://www.stableit.blog/2022/12/ipv6-friendly-unbound-configuration-for.html#comment-form' onclick=''> No comments : </a> </span> <span class='post-backlinks post-comment-link'> </span> <span class='post-icons'> <span class='item-action'> <a href='https://www.blogger.com/email-post/1386140445493682484/8832770404766581594' title='Email Post'> <img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-285460659'> <a href='https://www.blogger.com/post-edit.g?blogID=1386140445493682484&postID=8832770404766581594&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=8832770404766581594&target=email' target='_blank' title='Email This'> <span class='share-button-link-text'> Email This </span> </a> <a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=8832770404766581594&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'> <span class='share-button-link-text'> BlogThis! </span> </a> <a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=8832770404766581594&target=twitter' target='_blank' title='Share to X'> <span class='share-button-link-text'> Share to X </span> </a> <a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=8832770404766581594&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'> <span class='share-button-link-text'> Share to Facebook </span> </a> <a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=8832770404766581594&target=pinterest' target='_blank' title='Share to Pinterest'> <span class='share-button-link-text'> Share to Pinterest </span> </a> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'> <span> Tuesday, 27 December 2022 </span> </h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhbzi7q8ILwX3qFzslQtHoeUXhgAUwd2nWn7HnTKvJ6RM1JRAEg0s9AgdqcvmYK_bmwef8T6NhvFgP_x3wGP9U-tCSMpNBbubNou3WkGYVBJByl_JTufSG_HJrrc0NCq640M2OkfbvXp32f2gOBAElyPzMots8CXIIJ7TyWuQNchjYgx1__yN98zI/s320/wd.jpeg' itemprop='image_url'/> <meta content='1386140445493682484' itemprop='blogId'/> <meta content='3259144719755696465' itemprop='postId'/> <a name='3259144719755696465'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://www.stableit.blog/2022/12/installing-debian-12-bookworm-rockpro64.html'> Installing Debian 12 Bookworm RockPro64 on NVME </a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-3259144719755696465' itemprop='articleBody'> For few last days I've been playing with RockPro64 in attempts to install standard upstream Debian Bookworm on it using standard Debian installer and I succeeded.<div><br /></div><div>To accomplish it I used custom <a href="https://www.stableit.blog/2022/12/boot-rockpro64-from-usb-or-pxe.html">U-Boot</a> to run <a href="https://www.stableit.blog/2022/12/installing-vanilla-debian-11-on-rockpro.html">Debian installer</a> from USB stick:<br /><div><br /></div><div>I used PCI-E adaptor for NVME WD Black SN 750 250G:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhbzi7q8ILwX3qFzslQtHoeUXhgAUwd2nWn7HnTKvJ6RM1JRAEg0s9AgdqcvmYK_bmwef8T6NhvFgP_x3wGP9U-tCSMpNBbubNou3WkGYVBJByl_JTufSG_HJrrc0NCq640M2OkfbvXp32f2gOBAElyPzMots8CXIIJ7TyWuQNchjYgx1__yN98zI/s1600/wd.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhbzi7q8ILwX3qFzslQtHoeUXhgAUwd2nWn7HnTKvJ6RM1JRAEg0s9AgdqcvmYK_bmwef8T6NhvFgP_x3wGP9U-tCSMpNBbubNou3WkGYVBJByl_JTufSG_HJrrc0NCq640M2OkfbvXp32f2gOBAElyPzMots8CXIIJ7TyWuQNchjYgx1__yN98zI/s320/wd.jpeg" width="240" /></a></div><br /><div>One of the main tricks was to install /boot partition on SD card this way from Debian Installer:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsDEi1YuehWsRW6gQr-quW3BP4FqVpH9MleYMaeFdUs2uYbxJz3rLzB_qWtGJpvGPD-26P5e-66tQFikNkj6zFkrmHUgq6-pj-fvGSYIrpeaB8wkG7VSFm-vkYAAG3vNILRrMdJwKRJUhyRPzANkWT11W2dDOf3xBkU-SXX83GXHh0zZvgPo9TSkA/s1600/part.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsDEi1YuehWsRW6gQr-quW3BP4FqVpH9MleYMaeFdUs2uYbxJz3rLzB_qWtGJpvGPD-26P5e-66tQFikNkj6zFkrmHUgq6-pj-fvGSYIrpeaB8wkG7VSFm-vkYAAG3vNILRrMdJwKRJUhyRPzANkWT11W2dDOf3xBkU-SXX83GXHh0zZvgPo9TSkA/s320/part.jpeg" width="320" /></a></div><br /><div>As you can see I used ext2 partition on SD card for /boot partition. It does not cause any performance issues and significantly simplifies our lives.</div><div><br /></div><div>Finally, I got completely working Debian using upstream / vanilla Debian installer:</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjV0t6PYNgQxU0-Q3jC1PZsQ6sqN0OY92Z9JA1XkvyqNIy78LLQVYllTX9c2B2_aZwgMEDTseQOopPgDsxphiXEivp1Od_-tdkI8mlh24Z1EOP8n9TZukEDzI5dTVRmOj6AUK5--_M-QuWG4jn1WzNbuB6XRfGhhE5VkRKP6mJlXvzU5VjePZ0OM0g" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="370" data-original-width="973" height="122" src="https://blogger.googleusercontent.com/img/a/AVvXsEjV0t6PYNgQxU0-Q3jC1PZsQ6sqN0OY92Z9JA1XkvyqNIy78LLQVYllTX9c2B2_aZwgMEDTseQOopPgDsxphiXEivp1Od_-tdkI8mlh24Z1EOP8n9TZukEDzI5dTVRmOj6AUK5--_M-QuWG4jn1WzNbuB6XRfGhhE5VkRKP6mJlXvzU5VjePZ0OM0g" width="320" /></a></div><div><br /></div>Previously I tried using U-Boot in SPI with USB boot support but it was unable to start from my USB-3 SSD / SATA disk for some reasons. I think it was some kind of issue with Debian installer as installation on USB is quite unusual and I do not blame it for failing.</div><div><br /></div><div>Running RockPro64 from NVME is tricky too and I had no U-Boot with such capability to flesh SPI with it.</div><div><br /></div><div>What is the point to use NVME? Look, perfornance.</div><div><br /></div><div>Compare SD performance:</div><div><div></div><blockquote><div>dd if=/dev/mmcblk1 of=/dev/null bs=1M count=10000 iflag=direct</div><div>10000+0 records in</div><div>10000+0 records out</div><div>10485760000 bytes (10 GB, 9.8 GiB) copied, 454.419 s, 23.1 MB/s</div></blockquote><div></div></div><div><br /></div><div>With NVME:</div><div><div></div><blockquote><div>dd if=/dev/nvme0n1p2 of=/dev/null bs=1M count=10000 iflag=direct</div><div>10000+0 records in</div><div>10000+0 records out</div><div>10485760000 bytes (10 GB, 9.8 GiB) copied, 15.994 s, 656 MB/s</div></blockquote><p>With SATA SSD attached via USB-3 adaptor:</p></div><blockquote><div>sudo dd if=/dev/sda of=/dev/null bs=1M count=10000 iflag=direct</div><div>10000+0 records in<br />10000+0 records out<br />10485760000 bytes (10 GB, 9.8 GiB) copied, 32.7685 s, 320 MB/s </div></blockquote><div><br /><br /><br /></div><div><br /></div><div><br /></div></div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/05424682716332865946' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/05424682716332865946' rel='author' title='author profile'> <span itemprop='name'> Pavel Odintsov </span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://www.stableit.blog/2022/12/installing-debian-12-bookworm-rockpro64.html' itemprop='url'/> <a class='timestamp-link' href='https://www.stableit.blog/2022/12/installing-debian-12-bookworm-rockpro64.html' rel='bookmark' title='permanent link'> <abbr class='published' itemprop='datePublished' title='2022-12-27T19:08:00Z'> 19:08 </abbr> </a> </span> <span class='reaction-buttons'> </span> <span class='post-comment-link'> <a class='comment-link' href='https://www.stableit.blog/2022/12/installing-debian-12-bookworm-rockpro64.html#comment-form' onclick=''> No comments : </a> </span> <span class='post-backlinks post-comment-link'> </span> <span class='post-icons'> <span class='item-action'> <a href='https://www.blogger.com/email-post/1386140445493682484/3259144719755696465' title='Email Post'> <img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-285460659'> <a href='https://www.blogger.com/post-edit.g?blogID=1386140445493682484&postID=3259144719755696465&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=3259144719755696465&target=email' target='_blank' title='Email This'> <span class='share-button-link-text'> Email This </span> </a> <a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=3259144719755696465&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'> <span class='share-button-link-text'> BlogThis! </span> </a> <a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=3259144719755696465&target=twitter' target='_blank' title='Share to X'> <span class='share-button-link-text'> Share to X </span> </a> <a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=3259144719755696465&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'> <span class='share-button-link-text'> Share to Facebook </span> </a> <a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=3259144719755696465&target=pinterest' target='_blank' title='Share to Pinterest'> <span class='share-button-link-text'> Share to Pinterest </span> </a> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhKLZas2oO7iJp2uTEioIyCAymoro7SHOgc5Nh1lg7SLY7R_cGbtY7u0dwy4S8RtNA5Odyfynhozv4HuYy4WOJ4Pr8ivgKH1aPhXllIAO1TyRnxU7HYtz9prdN-Q7ZGAFiPA1rb7ONUb-ehZBENLiVkAsrtHoes-Ras4z1c9Jl8oyEe_rLHKwKxKY/w400-h204/SPI.png' itemprop='image_url'/> <meta content='1386140445493682484' itemprop='blogId'/> <meta content='142564360602887794' itemprop='postId'/> <a name='142564360602887794'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://www.stableit.blog/2022/12/boot-rockpro64-from-usb-or-pxe.html'> Boot RockPro64 from USB or PXE </a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-142564360602887794' itemprop='articleBody'> <p>By default RockPro64 can boot only from SD or eMMC card. So if you're looking for alternative options then you need to install U-Boot into bundled SPI memory using <a href="https://github.com/ayufan-rock64/linux-build/blob/master/recipes/flash-spi.md">this guide</a>.</p><p>You need to be extremely cautious and do not interrupt procedure after it started. It need around few minutes to finish.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhKLZas2oO7iJp2uTEioIyCAymoro7SHOgc5Nh1lg7SLY7R_cGbtY7u0dwy4S8RtNA5Odyfynhozv4HuYy4WOJ4Pr8ivgKH1aPhXllIAO1TyRnxU7HYtz9prdN-Q7ZGAFiPA1rb7ONUb-ehZBENLiVkAsrtHoes-Ras4z1c9Jl8oyEe_rLHKwKxKY/s2724/SPI.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1386" data-original-width="2724" height="204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhKLZas2oO7iJp2uTEioIyCAymoro7SHOgc5Nh1lg7SLY7R_cGbtY7u0dwy4S8RtNA5Odyfynhozv4HuYy4WOJ4Pr8ivgKH1aPhXllIAO1TyRnxU7HYtz9prdN-Q7ZGAFiPA1rb7ONUb-ehZBENLiVkAsrtHoes-Ras4z1c9Jl8oyEe_rLHKwKxKY/w400-h204/SPI.png" width="400" /></a></div><br /><p>After that you need to wait for text "SF: ... bytes @ 0x8000 Written: OK" and then wait little bit more until white led on board starts blinking with 1 second interval. It may mean that process finished. </p><p>Then you can power it off and remove SDcard and start normal boot procedure and in this case it will load U-Boot from SPI memory:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgnnMKhQ30Tc180L4aMvkdJbf8DWTyRiA-bDOEor0s2bfiQr0gusODqspTagnXEeVLSgvWwliP4Mivx2RJKz_8ISt_ZfUCpKeFIAbdRfEUuQQch-TfG2-ib2SSuzw1ifVpYLjHhmKXyE_4N4UNm2ExE36O5_QsQlPyRfQB9Du9WTBZhyWSPGxhgCw4" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="768" data-original-width="1956" height="126" src="https://blogger.googleusercontent.com/img/a/AVvXsEgnnMKhQ30Tc180L4aMvkdJbf8DWTyRiA-bDOEor0s2bfiQr0gusODqspTagnXEeVLSgvWwliP4Mivx2RJKz_8ISt_ZfUCpKeFIAbdRfEUuQQch-TfG2-ib2SSuzw1ifVpYLjHhmKXyE_4N4UNm2ExE36O5_QsQlPyRfQB9Du9WTBZhyWSPGxhgCw4" width="320" /></a></div><br />It will try checking your USB devices and then will try to boot from PXE:<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhNfGWdjVCw70Q-vH_fReXe5sQQsCPIoNmC7L3i6X9hxYNeh7Sj1hTR8ejlkCcEOqq__W7DjbxSgaD278N_5RnzcwppqZMR0lefaJPVLSnL5Xr80KGBfnhswZ5VPwKAGb0Y5tAhok5TJxn9w_rmqVv3lV4BU2sZ-JIiWNfR5I8_CE68XfXFmTcned0" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="981" data-original-width="1582" height="198" src="https://blogger.googleusercontent.com/img/a/AVvXsEhNfGWdjVCw70Q-vH_fReXe5sQQsCPIoNmC7L3i6X9hxYNeh7Sj1hTR8ejlkCcEOqq__W7DjbxSgaD278N_5RnzcwppqZMR0lefaJPVLSnL5Xr80KGBfnhswZ5VPwKAGb0Y5tAhok5TJxn9w_rmqVv3lV4BU2sZ-JIiWNfR5I8_CE68XfXFmTcned0" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">You can easily check that it works fine by using bootable USB stick with Linux and it was very successful in my case:</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiyfzSUeJJFEG9ZPehOe1JSk8KnHc8HsC8qIIko8aE8vwPJaLZ1CP4HzOjspRSEbq2wYqFCZUG4RGtSQIBhG1e5H3MXEoAd9MrGRmJVa0lHBK3BRT4-8ivj3SESIZLC7O_qp-SYBb9AjgCn6mZRwGNL1KLicqr-7MxWRKFi_wISEnN5Oi6lziK50P8" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1270" data-original-width="1685" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEiyfzSUeJJFEG9ZPehOe1JSk8KnHc8HsC8qIIko8aE8vwPJaLZ1CP4HzOjspRSEbq2wYqFCZUG4RGtSQIBhG1e5H3MXEoAd9MrGRmJVa0lHBK3BRT4-8ivj3SESIZLC7O_qp-SYBb9AjgCn6mZRwGNL1KLicqr-7MxWRKFi_wISEnN5Oi6lziK50P8" width="318" /></a></div><br />In case of RockPro64 you can create bootable USB using <a href="https://www.stableit.blog/2022/12/installing-vanilla-debian-11-on-rockpro.html">official Debian images</a> for RockPro64.</div><p></p> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/05424682716332865946' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/05424682716332865946' rel='author' title='author profile'> <span itemprop='name'> Pavel Odintsov </span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://www.stableit.blog/2022/12/boot-rockpro64-from-usb-or-pxe.html' itemprop='url'/> <a class='timestamp-link' href='https://www.stableit.blog/2022/12/boot-rockpro64-from-usb-or-pxe.html' rel='bookmark' title='permanent link'> <abbr class='published' itemprop='datePublished' title='2022-12-27T15:10:00Z'> 15:10 </abbr> </a> </span> <span class='reaction-buttons'> </span> <span class='post-comment-link'> <a class='comment-link' href='https://www.stableit.blog/2022/12/boot-rockpro64-from-usb-or-pxe.html#comment-form' onclick=''> No comments : </a> </span> <span class='post-backlinks post-comment-link'> </span> <span class='post-icons'> <span class='item-action'> <a href='https://www.blogger.com/email-post/1386140445493682484/142564360602887794' title='Email Post'> <img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-285460659'> <a href='https://www.blogger.com/post-edit.g?blogID=1386140445493682484&postID=142564360602887794&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=142564360602887794&target=email' target='_blank' title='Email This'> <span class='share-button-link-text'> Email This </span> </a> <a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=142564360602887794&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'> <span class='share-button-link-text'> BlogThis! </span> </a> <a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=142564360602887794&target=twitter' target='_blank' title='Share to X'> <span class='share-button-link-text'> Share to X </span> </a> <a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=142564360602887794&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'> <span class='share-button-link-text'> Share to Facebook </span> </a> <a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=142564360602887794&target=pinterest' target='_blank' title='Share to Pinterest'> <span class='share-button-link-text'> Share to Pinterest </span> </a> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'> <span> Monday, 26 December 2022 </span> </h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbFhZNaOhuS7Vi5Y-tbkcy7-4Ky9lQ7joqM_Gf3UtbvRbc01X2rIcyHjmJ6sD5EsaseJxyy9yCvO_1GjgidAxt-nrED2dyCldu-MLf_T7uz8PLWYmeyxs05HdcP_Se4gklr-lkiAqi5wpNvGvsMnUjtql28G3jyt6wmEiJZyBikWYn1ytGSeU8F54/s320/debian_installer.png' itemprop='image_url'/> <meta content='1386140445493682484' itemprop='blogId'/> <meta content='6481376157675024853' itemprop='postId'/> <a name='6481376157675024853'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://www.stableit.blog/2022/12/installing-vanilla-debian-11-on-rockpro.html'> Installing vanilla Debian 11 on RockPro 64 from Ubuntu 22.04 </a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-6481376157675024853' itemprop='articleBody'> <p>That's hard to believe but you actually can use upstream / vanilla images to install Debian for SBC RockPro 64.</p><p>NB! You can find Debian 12 Bookworm images <a href="https://deb.debian.org/debian/dists/bookworm/main/installer-arm64/current/images/netboot/SD-card-images/">here</a>. More options <a href="https://wiki.pine64.org/wiki/ROCKPro64_Software_Releases#Debian">here</a>.</p><p>First download images from <a href="https://d-i.debian.org/daily-images/arm64/daily/netboot/SD-card-images/">official</a> Debian server </p><p></p><blockquote><p>wget https://d-i.debian.org/daily-images/arm64/daily/netboot/SD-card-images/firmware.rockpro64-rk3399.img.gz </p><p>wget https://d-i.debian.org/daily-images/arm64/daily/netboot/SD-card-images/partition.img.gz</p></blockquote><p></p><p>Combine them into single image:</p><p></p><blockquote><p>zcat firmware.rockpro64-rk3399.img.gz partition.img.gz > complete_image.img</p><p></p></blockquote><p>If you like me use USB adaptor for SD card then you need to manually umount partition from console (not from Ubuntu UI as it will unplug device).</p><p>Finally, write it on SD card:</p><p></p><blockquote>sudo dd if=complete_image.img of=your_chosen_boot_device bs=4M</blockquote><p>If you have relatively <a href="https://www.stableit.blog/2022/12/boot-rockpro64-from-usb-or-pxe.html">modern U-Boot</a> installed into SPI you can use USB stick for installation. </p><p>The best option to monitor boot process to have <a href="https://www.stableit.blog/2022/12/jtag-uart-serial-console-access-for.html">serial console</a> enabled but installer is unusable from it and look this way:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbFhZNaOhuS7Vi5Y-tbkcy7-4Ky9lQ7joqM_Gf3UtbvRbc01X2rIcyHjmJ6sD5EsaseJxyy9yCvO_1GjgidAxt-nrED2dyCldu-MLf_T7uz8PLWYmeyxs05HdcP_Se4gklr-lkiAqi5wpNvGvsMnUjtql28G3jyt6wmEiJZyBikWYn1ytGSeU8F54/s2202/debian_installer.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1652" data-original-width="2202" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbFhZNaOhuS7Vi5Y-tbkcy7-4Ky9lQ7joqM_Gf3UtbvRbc01X2rIcyHjmJ6sD5EsaseJxyy9yCvO_1GjgidAxt-nrED2dyCldu-MLf_T7uz8PLWYmeyxs05HdcP_Se4gklr-lkiAqi5wpNvGvsMnUjtql28G3jyt6wmEiJZyBikWYn1ytGSeU8F54/s320/debian_installer.png" width="320" /></a></div><br /><p>Fortunately, at that exactly time you will have HDMI working fine and you can plug external display and continue installation. </p><p>Also you will need proper keyboard for it. </p><p></p><p>Based on <a href="https://wiki.pine64.org/wiki/ROCKPro64_Software_Release">official guide</a>. </p><p><br /></p> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/05424682716332865946' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/05424682716332865946' rel='author' title='author profile'> <span itemprop='name'> Pavel Odintsov </span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://www.stableit.blog/2022/12/installing-vanilla-debian-11-on-rockpro.html' itemprop='url'/> <a class='timestamp-link' href='https://www.stableit.blog/2022/12/installing-vanilla-debian-11-on-rockpro.html' rel='bookmark' title='permanent link'> <abbr class='published' itemprop='datePublished' title='2022-12-26T21:19:00Z'> 21:19 </abbr> </a> </span> <span class='reaction-buttons'> </span> <span class='post-comment-link'> <a class='comment-link' href='https://www.stableit.blog/2022/12/installing-vanilla-debian-11-on-rockpro.html#comment-form' onclick=''> No comments : </a> </span> <span class='post-backlinks post-comment-link'> </span> <span class='post-icons'> <span class='item-action'> <a href='https://www.blogger.com/email-post/1386140445493682484/6481376157675024853' title='Email Post'> <img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-285460659'> <a href='https://www.blogger.com/post-edit.g?blogID=1386140445493682484&postID=6481376157675024853&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=6481376157675024853&target=email' target='_blank' title='Email This'> <span class='share-button-link-text'> Email This </span> </a> <a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=6481376157675024853&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'> <span class='share-button-link-text'> BlogThis! </span> </a> <a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=6481376157675024853&target=twitter' target='_blank' title='Share to X'> <span class='share-button-link-text'> Share to X </span> </a> <a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=6481376157675024853&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'> <span class='share-button-link-text'> Share to Facebook </span> </a> <a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=6481376157675024853&target=pinterest' target='_blank' title='Share to Pinterest'> <span class='share-button-link-text'> Share to Pinterest </span> </a> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> <div class="date-outer"> <h2 class='date-header'> <span> Sunday, 4 December 2022 </span> </h2> <div class="date-posts"> <div class='post-outer'> <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://blogger.googleusercontent.com/img/a/AVvXsEjWfXsfrwwWSvToXTDojCeKrO4D_Acp2ylWw-tks-MOrIa97TOkKzRpZ4TeKm4ftUnRybwDbanLGSo-aK2UHrqmzsuyu18HDj-cCBVAyVs9z0Tva78V2qhEr7oqwCVgqZBmGt4ob-nuRm3tUokZuRL_uu8KZxPqp5REKppJeeSBQRBWnGB6M2yF1FY' itemprop='image_url'/> <meta content='1386140445493682484' itemprop='blogId'/> <meta content='2528690590393483494' itemprop='postId'/> <a name='2528690590393483494'></a> <h3 class='post-title entry-title' itemprop='name'> <a href='https://www.stableit.blog/2022/12/how-to-create-additional-accesskey-and.html'> How to create additional access_key and secret_key only for specific Google Storage bucket? </a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-2528690590393483494' itemprop='articleBody'> <p>It's a great example of task which looks simple but escalates to enormous complexity.</p><p>My task was very simple: create Google Storage Bucket (Same as Amazon AWS S3) and create specific user which can upload data to it without using global system account. I needed access_key and secret_key which are compatible with s3cmd and Amazon S3.</p><p>My plan was to use this key for CI/CD system and reduce potential consequence from leaking this key.</p><p>First of all, we need to enable IAM API open <a href="https://cloud.google.com/iam/docs/creating-managing-service-accounts">link</a> and then click "Enable the IAM API".</p><p>Then we need to create so called "Service account" which will belong to our CI/CD system. To do it open same <a href="https://cloud.google.com/iam/docs/creating-managing-service-accounts">link</a> and scroll to "Creating a service account".</p><p>In my case link was <a href="https://console.cloud.google.com/projectselector2/iam-admin/serviceaccounts?supportedpurview=project">this</a> but it may change with time.</p><p>Then you need to specify project where you keep your bucket.</p><p>Then click "Create service account" on the bottom of page. Fill only name and do not allocate any permisisons for it. It will create service account for you in format: xxxx@project-name.iam.gserviceaccount.com </p><p>Then go to Cloud Storage section in your management console <a href="https://console.cloud.google.com/storage/browser ">link</a> </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjWfXsfrwwWSvToXTDojCeKrO4D_Acp2ylWw-tks-MOrIa97TOkKzRpZ4TeKm4ftUnRybwDbanLGSo-aK2UHrqmzsuyu18HDj-cCBVAyVs9z0Tva78V2qhEr7oqwCVgqZBmGt4ob-nuRm3tUokZuRL_uu8KZxPqp5REKppJeeSBQRBWnGB6M2yF1FY" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="391" data-original-width="505" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEjWfXsfrwwWSvToXTDojCeKrO4D_Acp2ylWw-tks-MOrIa97TOkKzRpZ4TeKm4ftUnRybwDbanLGSo-aK2UHrqmzsuyu18HDj-cCBVAyVs9z0Tva78V2qhEr7oqwCVgqZBmGt4ob-nuRm3tUokZuRL_uu8KZxPqp5REKppJeeSBQRBWnGB6M2yF1FY" width="310" /></a></div><p></p><p>Select your bucket, go to permissions, click "Grant Access" and in section Principals insert "xxxx@project-name.iam.gserviceaccount.com" then for Assign Roles select "Cloud Storage" on the left side and select "Storage object Admin" on right side then click Save.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiuDYfCuxFI1rkqvsYy0iSz4dZC3nUnXh5TpzGWNegjm0zieR_leo_sXm1zrj8V9YIvxXSUhmwUJweF-Zx7-5Y33JHOrBOZKGPhSkMIqopx_xeF8HPDoEenGVLQPaBpNbXcn125i_CrPgdLaDvVYehSl2jUURnbwZ89LYmxVHEzuuVs0yeY7L1Pgx8" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1241" data-original-width="2265" height="175" src="https://blogger.googleusercontent.com/img/a/AVvXsEiuDYfCuxFI1rkqvsYy0iSz4dZC3nUnXh5TpzGWNegjm0zieR_leo_sXm1zrj8V9YIvxXSUhmwUJweF-Zx7-5Y33JHOrBOZKGPhSkMIqopx_xeF8HPDoEenGVLQPaBpNbXcn125i_CrPgdLaDvVYehSl2jUURnbwZ89LYmxVHEzuuVs0yeY7L1Pgx8" width="320" /></a></div><br /><br /><p></p><p>We're not done. We need to create access_key and secret_key for this user.</p><p>To do it open "Cloud Storage" <a href=" https://console.cloud.google.com/storage/browser">section</a> in console. </p><p>On the left side click "Settings". Then on the right side click Interoperability.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjHPsggwzxo1CIheOPT2kQUcxR6psgb7Rpj-mO9GK7vtUueqsQ7AZBEznonyB8TA-YUi7mFYK2qQVOqaTHaoxYQ-s0yC_A2QFBNMTh4Pz1U1deSEVPx5XUKaO_iCttkZSZHhlYgFImHZavJdiYBgrVjU4_mXa77v78zyVQjQv0044QzTvS4gnN62vY" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1259" data-original-width="1733" height="232" src="https://blogger.googleusercontent.com/img/a/AVvXsEjHPsggwzxo1CIheOPT2kQUcxR6psgb7Rpj-mO9GK7vtUueqsQ7AZBEznonyB8TA-YUi7mFYK2qQVOqaTHaoxYQ-s0yC_A2QFBNMTh4Pz1U1deSEVPx5XUKaO_iCttkZSZHhlYgFImHZavJdiYBgrVjU4_mXa77v78zyVQjQv0044QzTvS4gnN62vY" width="320" /></a></div><br /><br /><p></p><p>Then follow to "Access keys for service accounts" and click "Create a key for another service account". In this list select our service account created previously and click create key.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhyDKOQTrO9PSkg0GZvaECEsBOdd1FvgEcvuOiEVegIlhUxjxlBuGHIgf9hIfUIQC9uAMCBPn41Y6ZRdeAclhvAWWRC9J_vdcUNol4rKwnYMEhaflU-CEOs4sPHxYa6k9m6g2y-jAr6BDZXbthk7V-moZcN5J1sMxZKQs3KbpV1RKPA0BGVJsG6sBg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="115" data-original-width="720" height="51" src="https://blogger.googleusercontent.com/img/a/AVvXsEhyDKOQTrO9PSkg0GZvaECEsBOdd1FvgEcvuOiEVegIlhUxjxlBuGHIgf9hIfUIQC9uAMCBPn41Y6ZRdeAclhvAWWRC9J_vdcUNol4rKwnYMEhaflU-CEOs4sPHxYa6k9m6g2y-jAr6BDZXbthk7V-moZcN5J1sMxZKQs3KbpV1RKPA0BGVJsG6sBg" width="320" /></a></div><br /><p></p><p>Then copy both keys as they will disappear immediately after.</p><p>Then provide both keys as AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as environment variables for s3cmd.</p> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/05424682716332865946' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/05424682716332865946' rel='author' title='author profile'> <span itemprop='name'> Pavel Odintsov </span> </a> </span> </span> <span class='post-timestamp'> at <meta content='https://www.stableit.blog/2022/12/how-to-create-additional-accesskey-and.html' itemprop='url'/> <a class='timestamp-link' href='https://www.stableit.blog/2022/12/how-to-create-additional-accesskey-and.html' rel='bookmark' title='permanent link'> <abbr class='published' itemprop='datePublished' title='2022-12-04T16:53:00Z'> 16:53 </abbr> </a> </span> <span class='reaction-buttons'> </span> <span class='post-comment-link'> <a class='comment-link' href='https://www.stableit.blog/2022/12/how-to-create-additional-accesskey-and.html#comment-form' onclick=''> No comments : </a> </span> <span class='post-backlinks post-comment-link'> </span> <span class='post-icons'> <span class='item-action'> <a href='https://www.blogger.com/email-post/1386140445493682484/2528690590393483494' title='Email Post'> <img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-285460659'> <a href='https://www.blogger.com/post-edit.g?blogID=1386140445493682484&postID=2528690590393483494&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=2528690590393483494&target=email' target='_blank' title='Email This'> <span class='share-button-link-text'> Email This </span> </a> <a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=2528690590393483494&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'> <span class='share-button-link-text'> BlogThis! </span> </a> <a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=2528690590393483494&target=twitter' target='_blank' title='Share to X'> <span class='share-button-link-text'> Share to X </span> </a> <a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=2528690590393483494&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'> <span class='share-button-link-text'> Share to Facebook </span> </a> <a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=1386140445493682484&postID=2528690590393483494&target=pinterest' target='_blank' title='Share to Pinterest'> <span class='share-button-link-text'> Share to Pinterest </span> </a> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> </div> </div></div> </div> <div class='blog-pager' id='blog-pager'> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='https://www.stableit.blog/search?updated-max=2023-10-15T14:31:00%2B01:00&max-results=15&reverse-paginate=true' id='Blog1_blog-pager-newer-link' title='Newer Posts'> Newer Posts </a> </span> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='https://www.stableit.blog/search?updated-max=2022-12-04T16:53:00Z&max-results=15' id='Blog1_blog-pager-older-link' title='Older Posts'> Older Posts </a> </span> <a class='home-link' href='https://www.stableit.blog/'> Home </a> </div> <div class='clear'></div> <div class='blog-feeds'> <div class='feed-links'> Subscribe to: <a class='feed-link' href='https://www.stableit.blog/feeds/posts/default' target='_blank' type='application/atom+xml'> Posts ( Atom ) </a> </div> </div> </div></div> </div> </div> <div class='column-left-outer'> <div class='column-left-inner'> <aside> </aside> </div> </div> <div class='column-right-outer'> <div class='column-right-inner'> <aside> <div class='sidebar section' id='sidebar-right-1'><div class='widget BlogSearch' data-version='1' id='BlogSearch1'> <h2 class='title'>Search</h2> <div class='widget-content'> <div id='BlogSearch1_form'> <form action='https://www.stableit.blog/search' class='gsc-search-box' target='_top'> <table cellpadding='0' cellspacing='0' class='gsc-search-box'> <tbody> <tr> <td class='gsc-input'> <input autocomplete='off' class='gsc-input' name='q' size='10' title='search' type='text' value=''/> </td> <td class='gsc-search-button'> <input class='gsc-search-button' title='search' type='submit' value='Search'/> </td> </tr> </tbody> </table> </form> </div> </div> <div class='clear'></div> </div><div class='widget Profile' data-version='1' id='Profile1'> <div class='widget-content'> <a href='https://www.blogger.com/profile/05424682716332865946'> <img alt='My Photo' class='profile-img' height='80' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6YR7lu0IQqkIzzeOolDeN5O7eiqlYZ9QaRbxnbvrUfghCflcAP4-31izF7Mem2bmu-x-UCzPCXpmC88-OKnKjpTnq6Be6b7WBoC4Wz2bfIt4LxHTptoaWgK-m-8T8sw/s113/photo_2021-05-27_21-25-38.jpg' width='60'/> </a> <dl class='profile-datablock'> <dt class='profile-data'> <a class='profile-name-link g-profile' href='https://www.blogger.com/profile/05424682716332865946' rel='author' style='background-image: url(//www.blogger.com/img/logo-16.png);'> Pavel Odintsov </a> </dt> <dd class='profile-textblock'> If you urgently need to contact me please use email: pavel.odintsov at gmail.com <br><br> </dd> </dl> <a class='profile-link' href='https://www.blogger.com/profile/05424682716332865946' rel='author'> View my complete profile </a> <div class='clear'></div> </div> </div><div class='widget HTML' data-version='1' id='HTML4'> <div class='widget-content'> <a href="https://pavel-odintsov.com"> Pavel Odintsov CV / resume</a> </div> <div class='clear'></div> </div><div class='widget HTML' data-version='1' id='HTML1'> <div class='widget-content'> <a href="http://uk.linkedin.com/in/podintsov" onclick="yaCounter 17240089.reachGoal('LINKEDIN'); return true;" target="_blank"> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSsI3cuG4sAgCfGvIG5KPlwh_TjUeN7o96I965Z8jDrMj38KWPT2QUfxuN9Y8mhDBSOqoE-nvuTHppcni5oenHepVhGNKsuqa7N6csB-FmIADhcfKFQXCo7peJdT1S2pp-S7JTaluHoqY/s1600/LinkedInImage.png" width="160" height="33" border="0" alt="View Pavel Odintsov's profile on LinkedIn" /> </a> </div> <div class='clear'></div> </div><div class='widget Label' data-version='1' id='Label1'> <h2> Tags </h2> <div class='widget-content cloud-label-widget-content'> <span class='label-size label-size-5'> <a dir='ltr' href='https://www.stableit.blog/search/label/Debian'> Debian </a> <span class='label-count' dir='ltr'> ( 216 ) </span> </span> <span class='label-size label-size-5'> <a dir='ltr' href='https://www.stableit.blog/search/label/CentOS'> CentOS </a> <span class='label-count' dir='ltr'> ( 156 ) </span> </span> <span class='label-size label-size-5'> <a dir='ltr' href='https://www.stableit.blog/search/label/Linux%20kernel'> Linux kernel </a> <span class='label-count' dir='ltr'> ( 141 ) </span> </span> <span class='label-size label-size-5'> <a dir='ltr' href='https://www.stableit.blog/search/label/OpenVZ'> OpenVZ </a> <span class='label-count' dir='ltr'> ( 139 ) </span> </span> <span class='label-size label-size-4'> <a dir='ltr' href='https://www.stableit.blog/search/label/Python'> Python </a> <span class='label-count' dir='ltr'> ( 84 ) </span> </span> <span class='label-size label-size-4'> <a dir='ltr' href='https://www.stableit.blog/search/label/Bash'> Bash </a> <span class='label-count' dir='ltr'> ( 78 ) </span> </span> <span class='label-size label-size-4'> <a dir='ltr' href='https://www.stableit.blog/search/label/PHP'> PHP </a> <span class='label-count' dir='ltr'> ( 76 ) </span> </span> <span class='label-size label-size-4'> <a dir='ltr' href='https://www.stableit.blog/search/label/Apache2'> Apache2 </a> <span class='label-count' dir='ltr'> ( 70 ) </span> </span> <span class='label-size label-size-4'> <a dir='ltr' href='https://www.stableit.blog/search/label/MySQL'> MySQL </a> <span class='label-count' dir='ltr'> ( 69 ) </span> </span> <span class='label-size label-size-4'> <a dir='ltr' href='https://www.stableit.blog/search/label/FreeBSD'> FreeBSD </a> <span class='label-count' dir='ltr'> ( 41 ) </span> </span> <span class='label-size label-size-4'> <a dir='ltr' href='https://www.stableit.blog/search/label/Perl'> Perl </a> <span class='label-count' dir='ltr'> ( 36 ) </span> </span> <span class='label-size label-size-4'> <a dir='ltr' href='https://www.stableit.blog/search/label/%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C'> 袘械蟹芯锌邪褋薪芯褋褌褜 </a> <span class='label-count' dir='ltr'> ( 34 ) </span> </span> <span class='label-size label-size-4'> <a dir='ltr' href='https://www.stableit.blog/search/label/iptables'> iptables </a> <span class='label-count' dir='ltr'> ( 33 ) </span> </span> <span class='label-size label-size-4'> <a dir='ltr' href='https://www.stableit.blog/search/label/%D0%90%D0%B2%D0%B8%D0%B0%D1%86%D0%B8%D1%8F'> 袗胁懈邪褑懈褟 </a> <span class='label-count' dir='ltr'> ( 30 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/Mac%20OS%20X'> Mac OS X </a> <span class='label-count' dir='ltr'> ( 29 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/Hardware'> Hardware </a> <span class='label-count' dir='ltr'> ( 26 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/Postfix'> Postfix </a> <span class='label-count' dir='ltr'> ( 25 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/Adaptec'> Adaptec </a> <span class='label-count' dir='ltr'> ( 24 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/Linux%20Soft-Raid'> Linux Soft-Raid </a> <span class='label-count' dir='ltr'> ( 22 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/%D0%91%D0%B8%D0%B7%D0%BD%D0%B5%D1%81'> 袘懈蟹薪械褋 </a> <span class='label-count' dir='ltr'> ( 21 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/%D0%9F%D1%83%D1%82%D0%B5%D1%88%D0%B5%D1%81%D1%82%D0%B2%D0%B8%D1%8F'> 袩褍褌械褕械褋褌胁懈褟 </a> <span class='label-count' dir='ltr'> ( 21 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/FastVPS.ru'> FastVPS.ru </a> <span class='label-count' dir='ltr'> ( 19 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/Google'> Google </a> <span class='label-count' dir='ltr'> ( 19 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/IPv6'> IPv6 </a> <span class='label-count' dir='ltr'> ( 19 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/C%2B%2B'> C++ </a> <span class='label-count' dir='ltr'> ( 17 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/Windows%202008'> Windows 2008 </a> <span class='label-count' dir='ltr'> ( 17 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/Bind'> Bind </a> <span class='label-count' dir='ltr'> ( 16 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/Linux'> Linux </a> <span class='label-count' dir='ltr'> ( 16 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/Ubuntu'> Ubuntu </a> <span class='label-count' dir='ltr'> ( 16 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/C'> C </a> <span class='label-count' dir='ltr'> ( 15 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/VmWare%20ESXi'> VmWare ESXi </a> <span class='label-count' dir='ltr'> ( 13 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/PostgreSQL'> PostgreSQL </a> <span class='label-count' dir='ltr'> ( 11 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/Red%20Hat'> Red Hat </a> <span class='label-count' dir='ltr'> ( 11 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/kvm'> kvm </a> <span class='label-count' dir='ltr'> ( 11 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/lighttpd'> lighttpd </a> <span class='label-count' dir='ltr'> ( 10 ) </span> </span> <span class='label-size label-size-3'> <a dir='ltr' href='https://www.stableit.blog/search/label/DDoS'> DDoS </a> <span class='label-count' dir='ltr'> ( 9 ) </span> </span> <span class='label-size label-size-2'> <a dir='ltr' href='https://www.stableit.blog/search/label/Proftpd'> Proftpd </a> <span class='label-count' dir='ltr'> ( 8 ) </span> </span> <span class='label-size label-size-2'> <a dir='ltr' href='https://www.stableit.blog/search/label/PowerDNS'> PowerDNS </a> <span class='label-count' dir='ltr'> ( 7 ) </span> </span> <span class='label-size label-size-2'> <a dir='ltr' href='https://www.stableit.blog/search/label/Ruby'> Ruby </a> <span class='label-count' dir='ltr'> ( 7 ) </span> </span> <span class='label-size label-size-2'> <a dir='ltr' href='https://www.stableit.blog/search/label/XenServer'> XenServer </a> <span class='label-count' dir='ltr'> ( 7 ) </span> </span> <span class='label-size label-size-1'> <a dir='ltr' href='https://www.stableit.blog/search/label/LinuxContainters'> LinuxContainters </a> <span class='label-count' dir='ltr'> ( 2 ) </span> </span> <div class='clear'></div> </div> </div></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='sidebar no-items section' id='sidebar-right-2-1'></div> </td> <td class='columns-cell'> <div class='sidebar no-items section' id='sidebar-right-2-2'></div> </td> </tr> </tbody> </table> <div class='sidebar section' id='sidebar-right-3'><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <h2> Old posts </h2> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2097/'> 2097 </a> <span class='post-count' dir='ltr'> ( 1 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2097/12/'> December </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2025/'> 2025 </a> <span class='post-count' dir='ltr'> ( 2 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2025/03/'> March </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2025/02/'> February </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2024/'> 2024 </a> <span class='post-count' dir='ltr'> ( 7 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2024/11/'> November </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2024/09/'> September </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2024/07/'> July </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2024/03/'> March </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2024/01/'> January </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2023/'> 2023 </a> <span class='post-count' dir='ltr'> ( 16 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2023/10/'> October </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2023/05/'> May </a> <span class='post-count' dir='ltr'> ( 4 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2023/04/'> April </a> <span class='post-count' dir='ltr'> ( 5 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2023/02/'> February </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2023/01/'> January </a> <span class='post-count' dir='ltr'> ( 5 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2022/'> 2022 </a> <span class='post-count' dir='ltr'> ( 12 ) </span> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2022/12/'> December </a> <span class='post-count' dir='ltr'> ( 6 ) </span> <ul class='posts'> <li> <a href='https://www.stableit.blog/2022/12/nat64-on-debian-12-bookworm-box.html'> NAT64 on Debian 12 Bookworm box </a> </li> <li> <a href='https://www.stableit.blog/2022/12/ipv6-friendly-unbound-configuration-for.html'> IPv6 friendly Unbound configuration for home DNS r... </a> </li> <li> <a href='https://www.stableit.blog/2022/12/installing-debian-12-bookworm-rockpro64.html'> Installing Debian 12 Bookworm RockPro64 on NVME </a> </li> <li> <a href='https://www.stableit.blog/2022/12/boot-rockpro64-from-usb-or-pxe.html'> Boot RockPro64 from USB or PXE </a> </li> <li> <a href='https://www.stableit.blog/2022/12/installing-vanilla-debian-11-on-rockpro.html'> Installing vanilla Debian 11 on RockPro 64 from Ub... </a> </li> <li> <a href='https://www.stableit.blog/2022/12/how-to-create-additional-accesskey-and.html'> How to create additional access_key and secret_key... </a> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2022/11/'> November </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2022/08/'> August </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2022/05/'> May </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2022/04/'> April </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2022/03/'> March </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2021/'> 2021 </a> <span class='post-count' dir='ltr'> ( 15 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2021/12/'> December </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2021/11/'> November </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2021/09/'> September </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2021/08/'> August </a> <span class='post-count' dir='ltr'> ( 6 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2021/07/'> July </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2021/02/'> February </a> <span class='post-count' dir='ltr'> ( 3 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2021/01/'> January </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2020/'> 2020 </a> <span class='post-count' dir='ltr'> ( 2 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2020/07/'> July </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2020/06/'> June </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2019/'> 2019 </a> <span class='post-count' dir='ltr'> ( 5 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2019/11/'> November </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2019/10/'> October </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2019/06/'> June </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2019/05/'> May </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2018/'> 2018 </a> <span class='post-count' dir='ltr'> ( 6 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2018/12/'> December </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2018/11/'> November </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2018/05/'> May </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2018/04/'> April </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2018/02/'> February </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2018/01/'> January </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2017/'> 2017 </a> <span class='post-count' dir='ltr'> ( 11 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2017/12/'> December </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2017/11/'> November </a> <span class='post-count' dir='ltr'> ( 4 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2017/07/'> July </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2017/04/'> April </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2017/03/'> March </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2017/01/'> January </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/'> 2016 </a> <span class='post-count' dir='ltr'> ( 69 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/12/'> December </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/11/'> November </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/09/'> September </a> <span class='post-count' dir='ltr'> ( 9 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/08/'> August </a> <span class='post-count' dir='ltr'> ( 3 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/07/'> July </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/06/'> June </a> <span class='post-count' dir='ltr'> ( 12 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/05/'> May </a> <span class='post-count' dir='ltr'> ( 3 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/04/'> April </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/03/'> March </a> <span class='post-count' dir='ltr'> ( 7 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/02/'> February </a> <span class='post-count' dir='ltr'> ( 11 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2016/01/'> January </a> <span class='post-count' dir='ltr'> ( 18 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2015/'> 2015 </a> <span class='post-count' dir='ltr'> ( 63 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2015/11/'> November </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2015/10/'> October </a> <span class='post-count' dir='ltr'> ( 3 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2015/08/'> August </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2015/07/'> July </a> <span class='post-count' dir='ltr'> ( 3 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2015/06/'> June </a> <span class='post-count' dir='ltr'> ( 8 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2015/05/'> May </a> <span class='post-count' dir='ltr'> ( 13 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2015/04/'> April </a> <span class='post-count' dir='ltr'> ( 16 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2015/03/'> March </a> <span class='post-count' dir='ltr'> ( 8 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2015/02/'> February </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2015/01/'> January </a> <span class='post-count' dir='ltr'> ( 7 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/'> 2014 </a> <span class='post-count' dir='ltr'> ( 157 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/12/'> December </a> <span class='post-count' dir='ltr'> ( 20 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/11/'> November </a> <span class='post-count' dir='ltr'> ( 7 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/10/'> October </a> <span class='post-count' dir='ltr'> ( 12 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/09/'> September </a> <span class='post-count' dir='ltr'> ( 3 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/08/'> August </a> <span class='post-count' dir='ltr'> ( 11 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/07/'> July </a> <span class='post-count' dir='ltr'> ( 22 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/06/'> June </a> <span class='post-count' dir='ltr'> ( 26 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/05/'> May </a> <span class='post-count' dir='ltr'> ( 12 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/04/'> April </a> <span class='post-count' dir='ltr'> ( 12 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/03/'> March </a> <span class='post-count' dir='ltr'> ( 10 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/02/'> February </a> <span class='post-count' dir='ltr'> ( 9 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2014/01/'> January </a> <span class='post-count' dir='ltr'> ( 13 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/'> 2013 </a> <span class='post-count' dir='ltr'> ( 185 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/12/'> December </a> <span class='post-count' dir='ltr'> ( 18 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/11/'> November </a> <span class='post-count' dir='ltr'> ( 33 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/10/'> October </a> <span class='post-count' dir='ltr'> ( 13 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/09/'> September </a> <span class='post-count' dir='ltr'> ( 16 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/08/'> August </a> <span class='post-count' dir='ltr'> ( 15 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/07/'> July </a> <span class='post-count' dir='ltr'> ( 3 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/06/'> June </a> <span class='post-count' dir='ltr'> ( 4 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/04/'> April </a> <span class='post-count' dir='ltr'> ( 15 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/03/'> March </a> <span class='post-count' dir='ltr'> ( 23 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/02/'> February </a> <span class='post-count' dir='ltr'> ( 29 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2013/01/'> January </a> <span class='post-count' dir='ltr'> ( 16 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/'> 2012 </a> <span class='post-count' dir='ltr'> ( 216 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/12/'> December </a> <span class='post-count' dir='ltr'> ( 31 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/11/'> November </a> <span class='post-count' dir='ltr'> ( 33 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/10/'> October </a> <span class='post-count' dir='ltr'> ( 20 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/09/'> September </a> <span class='post-count' dir='ltr'> ( 14 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/07/'> July </a> <span class='post-count' dir='ltr'> ( 7 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/06/'> June </a> <span class='post-count' dir='ltr'> ( 13 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/05/'> May </a> <span class='post-count' dir='ltr'> ( 11 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/04/'> April </a> <span class='post-count' dir='ltr'> ( 17 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/03/'> March </a> <span class='post-count' dir='ltr'> ( 48 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/02/'> February </a> <span class='post-count' dir='ltr'> ( 11 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2012/01/'> January </a> <span class='post-count' dir='ltr'> ( 11 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/'> 2011 </a> <span class='post-count' dir='ltr'> ( 333 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/12/'> December </a> <span class='post-count' dir='ltr'> ( 39 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/11/'> November </a> <span class='post-count' dir='ltr'> ( 10 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/10/'> October </a> <span class='post-count' dir='ltr'> ( 11 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/09/'> September </a> <span class='post-count' dir='ltr'> ( 15 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/08/'> August </a> <span class='post-count' dir='ltr'> ( 20 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/07/'> July </a> <span class='post-count' dir='ltr'> ( 24 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/06/'> June </a> <span class='post-count' dir='ltr'> ( 15 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/05/'> May </a> <span class='post-count' dir='ltr'> ( 60 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/04/'> April </a> <span class='post-count' dir='ltr'> ( 33 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/03/'> March </a> <span class='post-count' dir='ltr'> ( 39 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/02/'> February </a> <span class='post-count' dir='ltr'> ( 33 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2011/01/'> January </a> <span class='post-count' dir='ltr'> ( 34 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/'> 2010 </a> <span class='post-count' dir='ltr'> ( 1392 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/12/'> December </a> <span class='post-count' dir='ltr'> ( 47 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/11/'> November </a> <span class='post-count' dir='ltr'> ( 107 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/10/'> October </a> <span class='post-count' dir='ltr'> ( 124 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/09/'> September </a> <span class='post-count' dir='ltr'> ( 100 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/08/'> August </a> <span class='post-count' dir='ltr'> ( 70 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/07/'> July </a> <span class='post-count' dir='ltr'> ( 37 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/06/'> June </a> <span class='post-count' dir='ltr'> ( 40 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/05/'> May </a> <span class='post-count' dir='ltr'> ( 112 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/04/'> April </a> <span class='post-count' dir='ltr'> ( 167 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/03/'> March </a> <span class='post-count' dir='ltr'> ( 202 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/02/'> February </a> <span class='post-count' dir='ltr'> ( 138 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2010/01/'> January </a> <span class='post-count' dir='ltr'> ( 248 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/'> 2009 </a> <span class='post-count' dir='ltr'> ( 606 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/12/'> December </a> <span class='post-count' dir='ltr'> ( 280 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/11/'> November </a> <span class='post-count' dir='ltr'> ( 114 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/10/'> October </a> <span class='post-count' dir='ltr'> ( 83 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/09/'> September </a> <span class='post-count' dir='ltr'> ( 8 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/08/'> August </a> <span class='post-count' dir='ltr'> ( 9 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/07/'> July </a> <span class='post-count' dir='ltr'> ( 9 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/06/'> June </a> <span class='post-count' dir='ltr'> ( 13 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/05/'> May </a> <span class='post-count' dir='ltr'> ( 12 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/04/'> April </a> <span class='post-count' dir='ltr'> ( 20 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/03/'> March </a> <span class='post-count' dir='ltr'> ( 42 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2009/02/'> February </a> <span class='post-count' dir='ltr'> ( 16 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2008/'> 2008 </a> <span class='post-count' dir='ltr'> ( 43 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2008/12/'> December </a> <span class='post-count' dir='ltr'> ( 10 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2008/11/'> November </a> <span class='post-count' dir='ltr'> ( 13 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2008/07/'> July </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2008/06/'> June </a> <span class='post-count' dir='ltr'> ( 8 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2008/05/'> May </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2008/04/'> April </a> <span class='post-count' dir='ltr'> ( 2 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2008/01/'> January </a> <span class='post-count' dir='ltr'> ( 7 ) </span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2007/'> 2007 </a> <span class='post-count' dir='ltr'> ( 36 ) </span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2007/12/'> December </a> <span class='post-count' dir='ltr'> ( 1 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2007/11/'> November </a> <span class='post-count' dir='ltr'> ( 6 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2007/10/'> October </a> <span class='post-count' dir='ltr'> ( 4 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2007/09/'> September </a> <span class='post-count' dir='ltr'> ( 15 ) </span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://www.stableit.blog/2007/08/'> August </a> <span class='post-count' dir='ltr'> ( 10 ) </span> </li> </ul> </li> </ul> </div> </div> <div class='clear'></div> </div> </div></div> </aside> </div> </div> </div> <div style='clear: both'></div> <!-- columns --> </div> <!-- main --> </div> </div> <div class='main-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <footer> <div class='footer-outer'> <div class='footer-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left footer-fauxborder-left'> <div class='fauxborder-right footer-fauxborder-right'></div> <div class='region-inner footer-inner'> <div class='foot no-items section' id='footer-1'></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='foot no-items section' id='footer-2-1'></div> </td> <td class='columns-cell'> <div class='foot no-items section' id='footer-2-2'></div> </td> </tr> </tbody> </table> <!-- outside of the include in order to lock Attribution widget --> <div class='foot section' id='footer-3' name='Footer'><div class='widget Attribution' data-version='1' id='Attribution1'> <div class='widget-content' style='text-align: center;'> Pavel Odintsov. Powered by <a href='https://www.blogger.com' target='_blank'>Blogger</a>. </div> <div class='clear'></div> </div></div> </div> </div> <div class='footer-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </footer> <!-- content --> </div> </div> <div class='content-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <script type='text/javascript'> window.setTimeout(function() { document.body.className = document.body.className.replace('loading', ''); }, 10); </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/2725212210-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY6dPMDbZcWFZ4OmAH3-5XNADhQLgw:1740868032105';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d1386140445493682484','//www.stableit.blog/2022/12/','1386140445493682484'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '1386140445493682484', 'title': 'Stable IT', 'url': 'https://www.stableit.blog/2022/12/', 'canonicalUrl': 'https://www.stableit.blog/2022/12/', 'homepageUrl': 'https://www.stableit.blog/', 'searchUrl': 'https://www.stableit.blog/search', 'canonicalHomepageUrl': 'https://www.stableit.blog/', 'blogspotFaviconUrl': 'https://www.stableit.blog/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-2844992-3', 'encoding': 'UTF-8', 'locale': 'en-GB', 'localeUnderscoreDelimited': 'en_gb', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Stable IT - Atom\x22 href\x3d\x22https://www.stableit.blog/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Stable IT - RSS\x22 href\x3d\x22https://www.stableit.blog/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Stable IT - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/1386140445493682484/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseClientId': 'ca-pub-5586011525661238', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': true, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/dbeedc0fc9862cb8', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en_GB\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'archive', 'pageName': 'December 2022', 'pageTitle': 'Stable IT: December 2022', 'metaDescription': 'Blog about system engineering, programming and networks'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard', 'ok': 'Ok', 'postLink': 'Post link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Stable IT', 'description': 'Blog about system engineering, programming and networks', 'url': 'https://www.stableit.blog/2022/12/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': true, 'isLabelSearch': false, 'archive': {'year': 2022, 'month': 12, 'rangeMessage': 'Showing posts from December, 2022'}}}]); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML3', 'crosscol', document.getElementById('HTML3'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/3845665934-lbx__en_gb.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/1964470060-lightbox_bundle.css'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogSearchView', new _WidgetInfo('BlogSearch1', 'sidebar-right-1', document.getElementById('BlogSearch1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar-right-1', document.getElementById('Profile1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML4', 'sidebar-right-1', document.getElementById('HTML4'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'sidebar-right-1', document.getElementById('HTML1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'sidebar-right-1', document.getElementById('Label1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-right-3', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', document.getElementById('Attribution1'), {}, 'displayModeFull')); </script> </body> </html>