<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Troubleshooting &#8211; Giovanni F. Mazzeo De Santolo</title>
	<atom:link href="https://desantolo.com/category/troubleshooting/feed/" rel="self" type="application/rss+xml" />
	<link>https://desantolo.com</link>
	<description>That italian IT guy</description>
	<lastBuildDate>Sun, 01 May 2022 17:58:19 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
<site xmlns="com-wordpress:feed-additions:1">123042357</site>	<item>
		<title>How to: Samsung Odyssey G9 firmware update</title>
		<link>https://desantolo.com/2022/05/how-to-samsung-odyssey-g9-firmware-update/</link>
					<comments>https://desantolo.com/2022/05/how-to-samsung-odyssey-g9-firmware-update/#respond</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Sun, 01 May 2022 17:03:23 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[samsung]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=657</guid>

					<description><![CDATA[After a few hours of struggling to get my Samsung G9 monitor to &#8220;find update files&#8221; in order to flash a newer firmware I decided to make a post listing everything that you need to do &#8216;end-to-end&#8217; to get a &#8230; <a href="https://desantolo.com/2022/05/how-to-samsung-odyssey-g9-firmware-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>After a few hours of struggling to get my Samsung G9 monitor to &#8220;find update files&#8221; in order to flash a newer firmware I decided to make a post listing everything that you need to do &#8216;end-to-end&#8217; to get a new firmware flashed on this device.</p>



<span id="more-657"></span>



<p><strong>Note: this guide is for Windows</strong>, you may use it for getting an idea of what the requirements are for a successful firmware but don&#8217;t expect a guide for any other OS to be made. If you find this guide saving you time and hassle you can <a href="https://www.buymeacoffee.com/thelinuxguy" data-type="URL" data-id="https://www.buymeacoffee.com/thelinuxguy">thank me here</a>.</p>



<h1 class="wp-block-heading">Prepare your USB stick</h1>



<p>You will need to property format and partition your USB in order for the monitor to detect the files. Let&#8217;s wipe all the data in a USB stick below.</p>



<ul class="wp-block-list"><li>Open a Command Window (cmd)</li><li>Enter&nbsp;<em>diskpart</em></li><li>Enter&nbsp;<em>list disk</em>&nbsp;(it is important you KNOW which disk is the USB key you are formatting)</li><li>Enter&nbsp;<em>select disk x</em>&nbsp;where&nbsp;<em>x</em>&nbsp;is your USB key</li><li>Enter&nbsp;<em>clean</em></li><li>Enter <em>convert MBR</em></li><li>Enter&nbsp;<em>create part primary</em></li><li>Enter&nbsp;<em>select part 1</em></li><li>Enter&nbsp;<em>active</em></li><li>Enter&nbsp;<em>format fs=fat32 label=&#8221;firmware&#8221;</em>&nbsp;(Label is optional &#8211; ensures USB key is labelled as &#8221;firmware&#8221; in Explorer etc)</li></ul>



<h1 class="wp-block-heading">Download firmware and copy to USB</h1>



<p>Visit samsung.com <a href="https://www.samsung.com/uk/support/model/LC49G95TSSUXEN/">support page for the G9 monito</a>r, grab the .zip file containing the update. It should look like something like &#8220;<em>M-T9549GGAA-1016.0[1109]</em>&#8221; (1016.0 is the current version as of this posting).</p>



<ol class="wp-block-list"><li>Download .zip file from samsung.</li><li>Unpack .zip </li><li>Grab the single file &#8220;<em>M-T9549GGAA-1016.0[1109]</em>&#8221; and put it on the USB stick on the parent (never put inside a folder inside usb stick).</li><li>Connect USB to back of monitor; ensure all other USB plugs are unplugged and only the USB stick is connected.</li><li>Turn on monitor (if not already on), go to <em>MENU &gt; Support &gt; Software Update</em> and hit enter.</li><li>Monitor should detect the update file/usb stick and apply the newest firmware.</li></ol>



<h1 class="wp-block-heading">Validate a successful update</h1>



<p>Before and after a firmware update do these steps to check your firmware version on the monitor.</p>



<ol class="wp-block-list"><li>Turn on monitor (if not already on).</li><li>Go to MENU &gt; Support &gt; Information</li><li>Your Model, Serial Number, Software version is displayed. Take note of it.</li></ol>



<p>If samsung.com says your current version is equal or higher than their download then your firmware does not need to be updated.</p>



<p></p>



<h2 class="wp-block-heading">Important notes (read this!)</h2>



<ul class="wp-block-list"><li>DO NOT RENAME the .img files after unzipping. Just copy them to USB as it is named.</li><li>SAMSUNG ARE IDIOTS. Upgrading a very old firmware to latest version may not be detected as an update; regardless of the proper naming and format in the USB stick. If you face errors of &#8216;no update files detected&#8217; then find the next firmware release after your current running firmware. I was forced to upgrade from 1008 firmware to <em>M-T9549GGAA-1012.1[984C].img</em> before I was able to flash the latest version downloaded from samsung&#8217;s website.</li></ul>



<p>If this guide / tips / how-to saved you time consider <a href="https://www.buymeacoffee.com/thelinuxguy" data-type="URL" data-id="https://www.buymeacoffee.com/thelinuxguy">thanking me here</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2022/05/how-to-samsung-odyssey-g9-firmware-update/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">657</post-id>	</item>
		<item>
		<title>How to setup dual-stack IPv4 IPv6 Azure VM without a load-balancer</title>
		<link>https://desantolo.com/2021/04/how-to-setup-dual-stack-ipv4-ipv6-azure-vm-without-a-load-balancer/</link>
					<comments>https://desantolo.com/2021/04/how-to-setup-dual-stack-ipv4-ipv6-azure-vm-without-a-load-balancer/#respond</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Sun, 11 Apr 2021 20:32:31 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[dual stack]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[virtual server]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[vm]]></category>
		<category><![CDATA[vmnet]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=616</guid>

					<description><![CDATA[I wanted to document my Microsoft Azure saga in getting a public IPv6 address to work in a virtual machine without a load balancer in front of it. My needs were pretty simple and straightforward I wanted a virtual server &#8230; <a href="https://desantolo.com/2021/04/how-to-setup-dual-stack-ipv4-ipv6-azure-vm-without-a-load-balancer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>I wanted to document my Microsoft Azure saga in getting a public IPv6 address to work in a virtual machine without a load balancer in front of it. My needs were pretty simple and straightforward <strong>I wanted a virtual server that had a static IPv4 and IPv6 public addresses</strong> so that I can monitor my home network and other websites. </p>



<p>You would think this would be pretty easy, a few clicks and done? That wasn&#8217;t my experience on Azure and setting this up isn&#8217;t easy nor straightforward. Below is how to get it done, if this helps you &#8211; you can <a rel="noreferrer noopener" href="https://www.buymeacoffee.com/thelinuxguy" target="_blank">buy me a coffee or beer</a>.</p>



<span id="more-616"></span>



<div class="wp-block-jetpack-markdown"><h3>What Microsoft documentation said</h3>
<p>You can use public IPv6 address on a load balancer which needs to be a separate paid server/product in front of your servers. This isn&#8217;t what I was looking &#8211; I complained about it on github with screenshots <a href="https://github.com/MicrosoftDocs/azure-docs/issues/69167">issue #69167</a>.</p>
<p><strong>Disclaimer:</strong> I have no expertise on Microsoft Azure prior to this (I currently work at Google and GCP is what we do). I chose to use Azure for my hobby/playground primarily because I get $50 a month free credit with my MSDN subscription.</p>
<h3>My hacky (undocumented) way of getting it set up</h3>
<ol>
<li>Create a new Virtual Machine</li>
</ol>
<p>Use <a href="http://portal.azure.com/">portal.azure.com</a> &#8211; I am not going to go in depth here but I will call out the items you need to make sure to enable or change at setup.</p>
<p><strong>Do pay attention to these when creating VM</strong>:</p>
<ul>
<li>Use &quot;create a resource&quot; select &quot;Ubuntu Server 18.04 LTS&quot; and should default to virtual server.</li>
<li>Make sure to select &#8216;create new resource group&#8217; to bundle everything of this server together.</li>
<li>Disable default &#8216;scheduled shutdown&#8217;</li>
</ul>
<p>Deploy it. Go back to the newly created resource group.</p>
<ol start="2">
<li>Edit Virtual Network to add IPv6 (address space)</li>
</ol>
<p>You should see only IPv4 listed here. Like 10.0.0.0/24 &#8211; add IPv6.</p>
<p>Input: <strong>ace:cab:deca::/48</strong></p>
<p>Hit save.</p>
<ol start="3">
<li>Edit Virtual Network to add IPv6 (subnets)</li>
</ol>
<p>You should see <strong>default</strong> click it. On the right dialog that opens click <strong>Add IPv6 address space</strong></p>
<p>Input: <strong>ace:cab:deca::/64</strong></p>
<p>Make sure to select a network Security Group. (whatever the name you gave it). Save.</p>
<ol start="4">
<li>Create a dual-stack IPv4 and IPv6 public address</li>
</ol>
<p>Search Azure for <strong>Public IP addresses</strong> create one.</p>
<p><strong>Pay attention at creation</strong>:</p>
<ul>
<li>Select IP version <strong>both</strong></li>
<li>Select SKU <strong>standard</strong></li>
<li><strong>Ensure you associate it to your VM resource group and zone otherwise it won&#8217;t work</strong></li>
</ul>
<ol start="5">
<li>Stop virtual machine.</li>
</ol>
<p>Self explanatory, or during step 1 make sure to ensure it won&#8217;t be auto started.</p>
<ol start="6">
<li>Associate the new NIC and delete the old NIC from the VM</li>
</ol>
<p>With the VM shutdown, networking settings &gt; &quot;Attach network interface&quot; menu. Select create and attach network interface.</p>
<p>At <strong>NIC create</strong>:</p>
<ul>
<li>NIC security group select NONE.</li>
<li>Select Private IPv6 address. Give it a name &quot;v6&quot; for me.</li>
</ul>
<p>Detach the old NIC and delete from resource group (self-explanatory).</p>
<ol start="8">
<li>Associate the public IPv6 and IPv6 to the network interface</li>
</ol>
<p>Go to the new NIC we created and associated, &quot;IP configuration&quot; menu.</p>
<p>You should see &#8216;ipconfig1&#8217; is IPv4 and &quot;v6&quot; is secondary with our local IPv6 we gave on step 2.</p>
<p><strong>Associate IPv4 public address by clicking ipconfig1</strong> a new menu with a drop-down box and the new IPv4 (dual-stack) shows up. Select and save.</p>
<p><strong>Associate IPv6 public address</strong> same as above. You should end up with something like this</p>
</div>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?ssl=1"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="500" height="382" data-attachment-id="618" data-permalink="https://desantolo.com/2021/04/how-to-setup-dual-stack-ipv4-ipv6-azure-vm-without-a-load-balancer/2021-04-11_16-24-18/" data-orig-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?fit=1179%2C901&amp;ssl=1" data-orig-size="1179,901" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2021-04-11_16-24-18" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?fit=300%2C229&amp;ssl=1" data-large-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?fit=500%2C382&amp;ssl=1" src="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?resize=500%2C382&#038;ssl=1" alt="" class="wp-image-618" srcset="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?resize=1024%2C783&amp;ssl=1 1024w, https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?resize=300%2C229&amp;ssl=1 300w, https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?resize=768%2C587&amp;ssl=1 768w, https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?resize=800%2C611&amp;ssl=1 800w, https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?w=1179&amp;ssl=1 1179w" sizes="(max-width: 500px) 100vw, 500px" /></a></figure>



<div class="wp-block-jetpack-markdown"><ol start="9">
<li>Incoming firewall rules</li>
</ol>
<p>Make sure to add necessary firewall rules, if you created the default settings on the security group you probably already have SSH (port 22) and that&#8217;s it.</p>
<p>You probably want to add a rule for ICMP traffic (ping).</p>
<p>If you like to have no security at all (or implement your own firewall on the virtual server) you can add a blanked incoming rule for all ports 0-65535 and this should open everything.</p>
<p><strong>Note microsoft IPv6 implementation sucks and <a href="https://docs.microsoft.com/en-us/answers/questions/279687/ipv6-icmp-tofrom-the-internet-with-public-ip.html">ICMP ping on IPv6 incoming/outgoing WILL NOT WORK</a>! This is what tripped me out and I spent several hours trying to troubleshoot something that Microsoft could have easily documented&#8230; but here we are&#8230; I spent hours frustrated but hopefully with this guide I wrote for you it saved you all this time. If you appreciated it &#8211; remember you can <a href="https://www.buymeacoffee.com/thelinuxguy">buy me a coffee</a></strong> <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Go ahead start your virtual server and you should be able to use nmap on its IPv6 address or SSH remotely and see it work. See above in:re ping on IPv6.</p>
</div>



<h2 class="wp-block-heading">Updates</h2>



<p><strong>June 2021</strong>: Reader &#8220;Ben R&#8221; contacted me about this article and shared some noteworthy information for folks using older VM images or installations. <strong>DHCPv6 may be disabled and must be manually enabled</strong>. See this article for <a href="https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-ipv6-for-linux" data-type="URL" data-id="https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-ipv6-for-linux">enabling DHCPv6 on Azure</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2021/04/how-to-setup-dual-stack-ipv4-ipv6-azure-vm-without-a-load-balancer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">616</post-id>	</item>
		<item>
		<title>Linux IPv6 command cheatsheet</title>
		<link>https://desantolo.com/2021/03/linux-ipv6-command-cheatsheet/</link>
					<comments>https://desantolo.com/2021/03/linux-ipv6-command-cheatsheet/#respond</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Fri, 05 Mar 2021 05:02:14 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[dhclient]]></category>
		<category><![CDATA[ip route]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[netstat]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=596</guid>

					<description><![CDATA[Good articles about IPv6: IPv6 range blocks IPv6 unicast, anycast, multicast &#8211; well known addresses. Troubleshooting tools: IPv6 ping from multiple locations. Bonus section &#8216;ufw&#8217; firewall Check status of firewall and enable or disable.# ufw status# ufw enable# ufw disable &#8230; <a href="https://desantolo.com/2021/03/linux-ipv6-command-cheatsheet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>This post is intended to be a quick note to self on linux IPv6 commands, for quick reference when needed.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>



<pre class="wp-block-code"><code># Find the route decision for a given address.
ip route get 2a00:1450:4001:820::200e

ip -6 route
route -A inet6 (apt-get install net-tools) # equivalent to netstat -rn -A inet6
netstat -A inet6 -rn
netstat -r
ip -6 route show table 51820
ip -6 neigh
ip -6 neigh show proxy

# DHCPv6 release / renew
dhclient -6 -r ens18
dhclient -6 ens18

# Flush IPv6 neighbors cache
ip -family inet6 neigh flush any

# Find the route decision for a given address.
ip route get 2a00:1450:4001:820::200e

# Request a router advertisement (apt-get install -y ndisc6)
rdisc6 eth0

# Perform a Neighbor Solicitation (arp IPv4 equivalent) (apt-get install -y ndisc6)
ndisc6 2001:db8::42 eth0

# ping multicast address to have all link-local hosts to respond.
ping ff02::1%eth0</code></pre>



<p>Good articles about IPv6:</p>
<ul>
<li><a href="https://www.mediawiki.org/wiki/Help:Range_blocks/IPv6">IPv6 range</a> blocks</li>
<li><a href="https://menandmice.com/blog/ipv6-reference-multicast">IPv6 unicast, anycast, multicast</a> &#8211; well known addresses.</li>
</ul>
<p>Troubleshooting tools:</p>
<ul>
<li><a href="https://tools.keycdn.com/ipv6-ping">IPv6 ping</a> from multiple locations.</li>
</ul>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<h2 class="wp-block-heading">Bonus section &#8216;ufw&#8217; firewall</h2>



<p>Check status of firewall and enable or disable.<br># ufw status<br># ufw enable<br># ufw disable</p>



<p>View firewall rules and number to delete a specific rule.<br># ufw status verbose<br># ufw status numbered</p>



<p>Delete a firewall rule (from number of last cmd)<br># ufw delete 12</p>



<p>Rules needed to allow IPv6 routing via wireguard to endpoint (no iptables forwarding would be needed on IPv6 as the other peer carries the public IP &#8211; they also should implement a firewall before using the below command!)<br># ufw route allow in on eth0 out on wghub to 2602:xxx:730b:xxx:cafe::12</p>



<p>IPv4 firewall and routing rule to open Plex Media Server port 32400 and internal IPv4 space of wireguard peer.<br># ufw allow in on eth0 out on wghub to 10.100.100.11 port 32400<br># ufw route allow in on eth0 out on wghub to 10.100.100.11 port 32400</p>



<p>Add rule and get logs for matches of that rule:<br># ufw allow log proto any from any to 192.168.1.x</p>



<p>View logs:<br># tail -f /var/log/ufw.log</p>



<h3 class="wp-block-heading">Extra bonus iptables NAT forwarding</h3>



<p>On VPS (public endpoint) forward IPv4 traffic on tcp/32400 to wireguard peer. (recall IPv6 doesn&#8217;t need a rule)<br># iptables -A PREROUTING -t nat -i eth0 -p tcp &#8211;dport 32400 -j DNAT &#8211;to 10.100.100.11:32400</p>



<h3 class="wp-block-heading">Test your port forwards</h3>



<p>For IPv6 I use:<br><a href="http://www.ipv6scanner.com/cgi-bin/main.py">http://www.ipv6scanner.com/cgi-bin/main.py </a></p>



<p>For IPv4:<br><a href="https://www.yougetsignal.com/tools/open-ports/">https://www.yougetsignal.com/tools/open-ports/</a><br></p>
</div>
</div>
</div>
</div>
</div></div>
</div>
</div>


]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2021/03/linux-ipv6-command-cheatsheet/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">596</post-id>	</item>
		<item>
		<title>Fix ZFSonLinux pool  auto expanding</title>
		<link>https://desantolo.com/2017/07/fix-zfsonlinux-pool-auto-expanding/</link>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Mon, 24 Jul 2017 05:00:16 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[zfs]]></category>
		<category><![CDATA[zpool]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=560</guid>

					<description><![CDATA[If you&#8217;re having issues with zfsonlinux and your pool not expanding after replacing your hard drives with larger ones then here is a trick to fix it. # zpool set autoexpand=on {pool name} # zpool online -e {pool-name} {disk name/id &#8230; <a href="https://desantolo.com/2017/07/fix-zfsonlinux-pool-auto-expanding/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>If you&#8217;re having issues with zfsonlinux and your pool not expanding after replacing your hard drives with larger ones then here is a trick to fix it.<span id="more-560"></span></p>
<p class="p1"><span class="s1"># zpool set autoexpand=on {pool name}</span></p>
<p class="p1"># zpool online -e {pool-name} {disk name/id as displayed on zpool status}</p>
<p>Your pool should resize after running the second command. The first command was only to make sure you had set the zfs property that&#8217;s needed for the second command to expand the pool.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">560</post-id>	</item>
		<item>
		<title>Scheduled task to reset wireless network adapter after hibernate on Windows</title>
		<link>https://desantolo.com/2017/07/scheduled-task-to-reset-wireless-network-adapter-after-hibernate-on-windows/</link>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Thu, 06 Jul 2017 03:06:59 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=557</guid>

					<description><![CDATA[One of my Edimax wireless adapters fails to resume network connectivity when restoring the system from hibernation. So I created a scheduled task that resets the device, after resuming from hibernate open your Event Viewer &#62; System. Look for event &#8230; <a href="https://desantolo.com/2017/07/scheduled-task-to-reset-wireless-network-adapter-after-hibernate-on-windows/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>One of my Edimax wireless adapters fails to resume network connectivity when restoring the system from hibernation.</p>
<p>So I created a scheduled task that resets the device, after resuming from hibernate open your Event Viewer &gt; System.</p>
<p>Look for <strong>event ID 27 &#8211; &#8220;The boot type was 0x2.&#8221;</strong> right click  &#8220;Attach task to this event&#8221;</p>
<p>Run program: powershell.exe</p>
<p>Arguments: <strong>Restart-NetAdapter -InterfaceDescription &#8216;Edimax AC1750 Wi-Fi USB Adapter&#8217; -Confirm:$false</strong></p>
<p>This should fix the issue automatically after every reboot. Your interface description may be different, in powershell run &#8220;Get-NetAdapter&#8221; to get the device&#8217;s specific and edit the arguments above as needed.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">557</post-id>	</item>
		<item>
		<title>Fix zfs-mount.service failing after reboot on Proxmox</title>
		<link>https://desantolo.com/2017/07/fix-zfs-mount-service-failing-after-reboot-on-proxmox/</link>
					<comments>https://desantolo.com/2017/07/fix-zfs-mount-service-failing-after-reboot-on-proxmox/#comments</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Sat, 01 Jul 2017 01:33:33 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[containers]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[zfs]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=545</guid>

					<description><![CDATA[In my new homelab migration to Proxmox I came across a bug that will prevent you from being able to mount all your ZFS mount points and be a pain in the ass even more if you host containers in &#8230; <a href="https://desantolo.com/2017/07/fix-zfs-mount-service-failing-after-reboot-on-proxmox/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>In my new homelab migration to Proxmox I came across a bug that will prevent you from being able to mount all your ZFS mount points and be a pain in the ass even more if you host containers in that folder.<br />
<span id="more-545"></span><br />
<strong>Cause of the problem:</strong> When you use a different zpool than the default rpool, and setup a directory mount for PVE to use for ISO datastore, VZ dump, etc on reboot if the zfs mount points have not completed mounting at boot time. Proxmox will attempt to create the directory path structure.</p>
<p>The problem with creating a directory for something before is mounted is that when zfs-mount.service runs and attempts to mount the zfs mount points you will get these kind of errors:</p>
<p><code>root@pve:~# <strong>systemctl status zfs-mount.service</strong></code><br />
<code>● zfs-mount.service - Mount ZFS filesystems</code><br />
<code> Loaded: loaded (/lib/systemd/system/zfs-mount.service; enabled; vendor preset: enabled)</code><br />
<code> Active: failed (Result: exit-code) since Fri 2017-06-30 18:10:21 PDT; 21s ago</code><br />
<code> Process: 6590 ExecStart=/sbin/zfs mount -a (code=exited, status=1/FAILURE)</code><br />
<code> Main PID: 6590 (code=exited, status=1/FAILURE)</code></p>
<p><code>Jun 30 18:10:19 pve systemd[1]: Starting Mount ZFS filesystems...</code><br />
<code>Jun 30 18:10:20 pve zfs[6590]: cannot mount '/gdata/pve/subvol-102-disk-1': directory is not empty</code><br />
<code>Jun 30 18:10:20 pve zfs[6590]: cannot mount '/gdata/pve/subvol-106-disk-1': directory is not empty</code><br />
<code>Jun 30 18:10:20 pve zfs[6590]: cannot mount '/gdata/pve/subvol-109-disk-1': directory is not empty</code><br />
<code>Jun 30 18:10:21 pve systemd[1]: zfs-mount.service: Main process exited, code=exited, status=1/FAILURE</code><br />
<code>Jun 30 18:10:21 pve systemd[1]: Failed to start Mount ZFS filesystems.</code><br />
<code>Jun 30 18:10:21 pve systemd[1]: zfs-mount.service: Unit entered failed state.</code><br />
<code>Jun 30 18:10:21 pve systemd[1]: zfs-mount.service: Failed with result 'exit-code'.</code></p>
<p><strong>Fixing the root of the problem:</strong> change how proxmox deals with mounts by editing /etc/pve/storage.cfg &#8211; you need to add &#8220;mkdir 0&#8221; and &#8220;is_mountpoint&#8221; to the directory mount. Example:</p>
<p><code>dir: gdata-dump</code><br />
<code> path /gdata/vz</code><br />
<code> content iso,vztmpl,backup</code><br />
<code> maxfiles 0</code><br />
<code> shared 0</code><br />
<code> mkdir 0</code><br />
<code> is_mountpoint 1</code></p>
<p>Now we need to do some system cleanup before we reboot and confirm the problem is fixed.</p>
<p>Let&#8217;s check which mount points have failed:<br />
<code>root@pve:~# <strong>zfs list -r -o name,mountpoint,mounted</strong></code></p>
<p>Now let&#8217;s umount all zfs mount points (except rpool of course &#8211; assuming the rootfs is zfs)</p>
<p><code># zfs umount -a</code></p>
<p>After making sure ZFS mount points are unmounted, now we can delete the empty folders. Recall the failed mount points that the zfs list command gave you and one by one delete them like so:</p>
<p><code># rm -rf /gdata/pve/subvol-102-disk-1</code></p>
<p>Do this for each folder that showed issues mounting. You have a choice to remount everything with zfs mount -O -a &#8212; or better&#8230; reboot the system and check its fixed. I like the later better. So reboot.</p>
<p>After it boots back up check that service was able to mount zfs without issues:</p>
<p><code># systemctl status zfs-mount.service</code><br />
<code># zfs list -r -o name,mountpoint,mounted</code></p>
<p>That&#8217;s all folks&#8230; if you made the edit to storage.cfg and added the two variables this should not occur again. This was an annoying bug to deal with but good to have found a better solution than a startup script doing some dirty tricks!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2017/07/fix-zfs-mount-service-failing-after-reboot-on-proxmox/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">545</post-id>	</item>
		<item>
		<title>Allow non-root processes to bind to privileged (ports </title>
		<link>https://desantolo.com/2017/06/allow-non-root-processes-to-bind-to-privileged-ports/</link>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Wed, 28 Jun 2017 07:53:49 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[containers]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[proxmox]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=538</guid>

					<description><![CDATA[As I work on my homelab migration from FreeNAS into Linux containers, I need to move my freebsd jails to LXC. In *nix any usage of well-known ports (aka 1024 or less) requires special privileges or a kernel setting. In &#8230; <a href="https://desantolo.com/2017/06/allow-non-root-processes-to-bind-to-privileged-ports/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>As I work on my homelab migration from FreeNAS into Linux containers, I need to move my freebsd jails to LXC.</p>
<p>In *nix any usage of well-known ports (aka 1024 or less) requires special privileges or a kernel setting. In FreeBSD a simple sysctl net.inet.ip.portrange.reservedhigh =1 was enough to allow the BSD jail to use any port on the jail.</p>
<p>On LXC, I had to figure out how to do the same thing and its quite different. My environment is a debian stretch LXC container but should work on other linux versions.</p>
<p><code><strong># apt-get install libcap2-bin</strong></code><br />
<code><strong># setcap 'cap_net_bind_service=+ep' /usr/bin/transmission-daemon</strong></code></p>
<p>In the example above, the binary /usr/bin/transmission-daemon is now able to open any port, or port 80 http in my case all while running a service as a non-root user.</p>
<p>Hopefully these helps folks out there, the answer took some digging but I already had an idea on what was needed thanks to my FreeBSD experience in zones <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">538</post-id>	</item>
		<item>
		<title>FreeBSD/FreeNAS USB_ERR_TIMEOUT fix</title>
		<link>https://desantolo.com/2017/06/freebsd-freenas-usb_err_timeout-fix/</link>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Sun, 11 Jun 2017 19:26:20 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[freenas]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=534</guid>

					<description><![CDATA[As I prepare my migration to my new Debian ZFS system I wanted to backup my zpool onto an external 8TB hard drive. I came across this issue where after plugging in the external USB 3.0 hard drive it would &#8230; <a href="https://desantolo.com/2017/06/freebsd-freenas-usb_err_timeout-fix/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>As I prepare my migration to my new Debian ZFS system I wanted to backup my zpool onto an external 8TB hard drive. I came across this issue where after plugging in the external USB 3.0 hard drive it would loop and not work:</p>
<p><span id="more-534"></span><br />
<code>Jun 11 12:15:54 gserver xhci_do_command: Command timeout!<br />
Jun 11 12:15:54 gserver xhci_do_command: Controller reset!<br />
Jun 11 12:15:54 gserver xhci0: Resetting controller<br />
Jun 11 12:15:54 gserver usb_alloc_device: device init 2 failed (USB_ERR_TIMEOUT, ignored)<br />
Jun 11 12:15:54 gserver xhci_device_state_change:<br />
Jun 11 12:15:54 gserver ugen0.2: &lt;Unknown&gt; at usbus0 (disconnected)<br />
Jun 11 12:15:54 gserver uhub_reattach_port: could not allocate new device<br />
Jun 11 12:15:54 gserver xhci_root_intr: port 2 changed<br />
Jun 11 12:15:55 gserver xhci_root_intr: port 2 changed<br />
Jun 11 12:15:55 gserver xhci_root_intr: port 4 changed<br />
Jun 11 12:15:55 gserver xhci_ep_clear_stall:<br />
Jun 11 12:15:55 gserver xhci_cmd_enable_slot:<br />
Jun 11 12:15:55 gserver xhci_do_command: Command timeout!<br />
Jun 11 12:15:55 gserver xhci_reset_command_queue_locked:<br />
Jun 11 12:15:55 gserver xhci_reset_command_queue_locked: Command ring running<br />
Jun 11 12:15:55 gserver xhci_reset_command_queue_locked: CRCR=0x00000000057cfd80<br />
Jun 11 12:15:55 gserver xhci_do_command: Command timeout!<br />
Jun 11 12:15:55 gserver xhci_do_command: Controller reset!<br />
Jun 11 12:15:55 gserver usb_alloc_device: device init 2 failed (USB_ERR_TIMEOUT, ignored)<br />
Jun 11 12:15:55 gserver xhci_device_state_change:<br />
Jun 11 12:15:55 gserver ugen0.2: &lt;Unknown&gt; at usbus0 (disconnected)<br />
Jun 11 12:15:55 gserver uhub_reattach_port: could not allocate new device<br />
Jun 11 12:15:55 gserver uhub0: at usbus0, port 1, addr 1 (disconnected)<br />
Jun 11 12:15:55 gserver xhci_set_hw_power:<br />
Jun 11 12:15:55 gserver xhci_set_hw_power_sleep: Stopping the XHCI<br />
Jun 11 12:15:55 gserver xhci_halt_controller:<br />
Jun 11 12:15:55 gserver xhci_set_hw_power_sleep: Starting the XHCI<br />
Jun 11 12:15:55 gserver xhci_start_controller:<br />
Jun 11 12:15:56 gserver xhci_start_controller: CONFIG=0x00000000 -&gt; 0x00000020<br />
Jun 11 12:15:56 gserver xhci_start_controller: ERSTSZ=0x00000000 -&gt; 0x00000001<br />
Jun 11 12:15:56 gserver xhci_start_controller: ERDP(0)=0x00000000057cf080<br />
Jun 11 12:15:56 gserver xhci_start_controller: ERSTBA(0)=0x00000000057cf000<br />
Jun 11 12:15:56 gserver xhci_start_controller: CRCR=0x00000000057cfd80<br />
Jun 11 12:15:56 gserver xhci_set_hw_power:<br />
Jun 11 12:15:56 gserver uhub0: &lt;0x1912 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1&gt; on usbus0<br />
Jun 11 12:15:56 gserver uhub0: 4 ports with 4 removable, self powered<br />
Jun 11 12:15:56 gserver xhci_set_hw_power:<br />
Jun 11 12:15:56 gserver xhci_root_intr: port 2 changed<br />
Jun 11 12:15:56 gserver xhci_root_intr: port 4 changed<br />
Jun 11 12:15:56 gserver xhci_ep_clear_stall:<br />
Jun 11 12:15:56 gserver xhci_cmd_enable_slot:<br />
Jun 11 12:15:57 gserver xhci_do_command: Command timeout!<br />
</code><br />
Trying the following without rebooting did not work</p>
<p>[root@gserver] ~# sysctl hw.usb.xhci.xhci_port_route=-1</p>
<p>I enabled debugging to get the logs:</p>
<p>[root@gserver] ~# sysctl hw.usb.xhci.debug=1</p>
<p>Apparently we need to add this to: /boot/loader.conf and reboot then try again.</p>
<p><code># Workaround desantolo.com USB3 loop<br />
sysctl hw.usb.xhci.xhci_port_route=-1</code></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">534</post-id>	</item>
		<item>
		<title>Troubleshooting networking issues after fresh install of proxmox VE 4.4</title>
		<link>https://desantolo.com/2017/02/troubleshooting-networking-issues-after-fresh-install-of-proxmox-ve-4-4/</link>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Fri, 10 Feb 2017 06:04:02 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=504</guid>

					<description><![CDATA[Writing a quick troubleshooting guide and informative post to address an issue I came across when installing Proxmox VE 4.4 on two of my machines. On servers with more than two network interfaces Debian/Proxmox renames all interfaces and does not &#8230; <a href="https://desantolo.com/2017/02/troubleshooting-networking-issues-after-fresh-install-of-proxmox-ve-4-4/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Writing a quick troubleshooting guide and informative post to address an issue I came across when installing Proxmox VE 4.4 on two of my machines.</p>
<p>On servers with more than two network interfaces Debian/Proxmox renames all interfaces and does not properly detect eth0 as the on-board ethernet as many other linux flavors. This may cause a mild headache if you just installed Proxmox with static IP addresses using the installer and upon reboot you can&#8217;t access any network resources.<span id="more-504"></span></p>
<p>I already explained the cause and you could argue that on the Proxmox installer they could add a built-in network detection check to properly label eth0 as eth0 as the device is named in many other linux distros. That currently does not exist so I will walk you around the troubleshooting.</p>
<p>Upon reboot or first boot after the installation is complete:<br />
<strong># ip link</strong></p>
<p>The bridge interface (<strong>vmbr0</strong>) should read &#8220;<strong>NO-CARRIER</strong>, MULTICAST, UP&#8221; as well as &#8220;<strong>state down</strong>&#8221; a few words further to the left of the results.</p>
<p><strong># dmesg | grep eth</strong></p>
<p>Read the entries in the dmesg logs, it tells you the name of network interfaces on your system.</p>
<p>&#8220;<strong>NO-CARRIER</strong>&#8221; indicates it does not detect an uplink, the interface is configured but none of its bridge members have a network cable or connection being detected.</p>
<p>To fix this you will want to run the following commands:<br />
<strong># ifdown -a</strong><br />
<strong># vi /etc/network/interfaces</strong></p>
<p>By default the installer sets up &#8220;eth0&#8221; as your only bridge member since the network card numbering got setup differently, the logical name on proxmox for eth0 is actually eth2.</p>
<p><strong>Edit the single instance of eth0 with eth2</strong> &#8211; save the file and exit the editor.</p>
<p><strong># ifup -a</strong><br />
should try to bring back up your interfaces. Trying pinging your network gateway, it should be working now. Cheers.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">504</post-id>	</item>
		<item>
		<title>Configure Webstorm to use Github Desktop for Windows git-bash</title>
		<link>https://desantolo.com/2016/12/configure-webstorm-github-desktop-windows-git-bash/</link>
					<comments>https://desantolo.com/2016/12/configure-webstorm-github-desktop-windows-git-bash/#respond</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Fri, 30 Dec 2016 08:12:48 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Github]]></category>
		<category><![CDATA[webstorm]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=471</guid>

					<description><![CDATA[If you have installed Github Desktop on Windows, you may have noticed that the application itself comes with a &#8220;Git Shell&#8221; which is basically a linux terminal emulator running on windows and its very useful for developers or linux users &#8230; <a href="https://desantolo.com/2016/12/configure-webstorm-github-desktop-windows-git-bash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>If you have installed Github Desktop on Windows, you may have noticed that the application itself comes with a &#8220;Git Shell&#8221; which is basically a linux terminal emulator running on windows and its very useful for developers or linux users that are familiar with bash.</p>
<p>The problem I recently encountered was trying to find the executable PATH of the git-bash.exe so that I can configure my Webstorm IDE to use it. All the documentation on the internet seems to point to C:/Program Files/Git folder but Github may have changed this as in the latest release I downloaded (v 3.3.3.0) the files reside elsewhere and I will share where to find them.<br />
<span id="more-471"></span><br />
To find your git-bash.exe path try the following:</p>
<ol>
<li>Open File Explorer and put <strong>%AppData%</strong> in the address bar, hit enter.</li>
<li>It should redirect to something like:  <strong>C:\Users\Giovanni\AppData\Roaming</strong></li>
<li>Now change folders from Roaming to Local</li>
<li>You should now be at: C:\Users\Giovanni\<strong>AppData\Local </strong></li>
<li>Find the <strong>Github</strong> folder, enter it.</li>
<li>You should see a list of files and folders, we care about &#8220;PortableGit&#8221; it has a longer name that just PortableGit, so enter it.</li>
<li>You will see git-bash.exe in there.</li>
<li>Go back into Webstorm &gt; Settings &gt; Terminal</li>
<li>Set your terminal to this new path, in my case: <strong>&#8220;C:\Users\Giovanni\AppData\Local\GitHub\PortableGit_d7effa1a4a322478cd29c826b52a0c118ad3db11\git-bash.exe&#8221;</strong></li>
</ol>
<p>You&#8217;re all set! Webstorm should now be able to launch Github Desktop&#8217;s git-bash.exe as the terminal, no additional software required.</p>
<p>There is a gotcha: the terminal window will open separate from Webstorm window, if you want a tab under your code then I suggest to download and install git for windows in addition to Github Desktop.<a href="https://git-for-windows.github.io/">https://git-for-windows.github.io/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2016/12/configure-webstorm-github-desktop-windows-git-bash/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">471</post-id>	</item>
	</channel>
</rss>
