<?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>16.04 &#8211; richliu&#039;s blog</title>
	<atom:link href="https://richliu.com/tag/16-04/feed/" rel="self" type="application/rss+xml" />
	<link>https://richliu.com</link>
	<description>Linux, 工作, 生活, 家人</description>
	<lastBuildDate>Sat, 25 Aug 2018 14:39:21 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Change Ubuntu Cloud Image Size</title>
		<link>https://richliu.com/2018/08/25/2318/change-ubuntu-cloud-image-size/</link>
					<comments>https://richliu.com/2018/08/25/2318/change-ubuntu-cloud-image-size/#respond</comments>
		
		<dc:creator><![CDATA[richliu]]></dc:creator>
		<pubDate>Sat, 25 Aug 2018 14:39:21 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[16.04]]></category>
		<category><![CDATA[cloud image]]></category>
		<category><![CDATA[kpartx]]></category>
		<category><![CDATA[parted]]></category>
		<category><![CDATA[resize]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">https://richliu.com/?p=2318</guid>

					<description><![CDATA[<p>Ubuntu Cloud Image Size 似乎各個版本的特性不太一樣, 而且似乎也要用不同的方式修改 I [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://richliu.com/2018/08/25/2318/change-ubuntu-cloud-image-size/">Change Ubuntu Cloud Image Size</a> appeared first on <a rel="nofollow" href="https://richliu.com">richliu&#039;s blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Ubuntu Cloud Image Size 似乎各個版本的特性不太一樣, 而且似乎也要用不同的方式修改 Image size</p>
<p><span id="more-2318"></span></p>
<p>一般 change image size 是用這個指令</p>
<p>$ sudo qemu-img resize $UBUNTUVERSION-server-cloudimg-$ARCH.img +50G0<br />
ex:</p>
<pre lang="bash">
$ sudo qemu-img resize xenial-server-cloudimg-amd64-uefi1.img +50G
</pre>
<p>將 qcow2 image format 變成 raw disk </p>
<pre lang="bash">
$ sudo qemu-img convert  xenial-server-cloudimg-amd64-uefi1.img xenial-server-cloudimg-amd64-uefi1.raw
</pre>
<p>之前測 ARM64 17.04 和 17.10 都會自動增加 partition size<br />
但是最近碰到 18.04 似乎不會. (Both X64 and ARM64)</p>
<p>如果碰到的是 16.04 要增加 partition size 有問題, 要用 parted 修改 (似乎 fdisk 和 gdisk 都有問題)<br />
ex:</p>
<pre lang="bash">
$ parted xenial-server-cloudimg-amd64-uefi1.raw
(parted) p
Model:  (file)
Disk /work/research/vm/1.raw: 56.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
14      1049kB  5243kB  4194kB                     bios_grub
15      5243kB  116MB   111MB   fat32              boot, esp
 1      116MB   2361MB  2245MB  ext4

(parted) resizepart
Warning: Not all of the space available to /work/research/vm/1.raw appears to be used, you can fix the GPT to use
all of the space (an extra 104857600 blocks) or continue with the current setting?
parted: invalid token: 1

Partition number? 1
End?  [2361MB]? 56G
</pre>
<p>離開就會儲存</p>
<p>Ubuntu 16.04 的 cloud image 不知道為什麼 cloud-init 會無法結束, 如果不能接觸到 login 那 cloud image 也沒有用. </p>
<p>這時可以用另一個方式移除 cloud-init 相關的套件,<br />
1. 使用 kpartx 將 image 掛到 loop devices 如果沒有, 就先安裝 kpartx 套件</p>
<pre lang="bash">
$ sudo apt install kpartx 
</pre>
<p>2. mount partition (還有 proc, dev, sys)<br />
3. 移除 cloud 相關套件<br />
4. umount partition (要先 umount proc, dev, sys<br />
5. 移除 loop device<br />
6. convert raw file 到 qcow2 格式 </p>
<p>mount cloud image partition </p>
<pre lang="bash">
$ sudo kpartx -av xenial-server-cloudimg-amd64-uefi1.raw
add map loop0p1 (253:0): 0 109147673 linear 7:0 227328
add map loop0p14 (253:1): 0 8192 linear 7:0 2048
add map loop0p15 (253:2): 0 217088 linear 7:0 10240
</pre>
<p>loop0p1 就是我們要 mount 的 disk , (註: 有可能因系統不同, 所以會有其他的 device name)</p>
<p>mount disk</p>
<pre lang="bash">
$ sudo su
$ mkdir disk
$ mount /dev/mapper/loop0p1 disk 
$ cd disk
$ mount --bind /proc proc
$ mount --bind /dev dev
$ mount --bind /sys sys
$ cd ..
$ chroot disk 
</pre>
<p>移除 cloud-init 相關的套件</p>
<pre lang="bash">
$ dpkg  -l |grep cloud
ii  cloud-guest-utils                0.27-0ubuntu25.1                           all          cloud guest utilities
ii  cloud-init                       18.3-9-g2e62cb8a-0ubuntu1~16.04.2          all          Init scripts for cloud instances
ii  cloud-initramfs-copymods         0.27ubuntu1.5                              all          copy initramfs modules into root filesystem for later use
ii  cloud-initramfs-dyn-netconf      0.27ubuntu1.5                              all          write a network interface file in /run for BOOTIF
ii  ubuntu-cloudimage-keyring        2013.11.11                                 all          GnuPG keys of the Ubuntu Cloud Image builder

$ dpkg -r cloud-guest-utils  cloud-init cloud-initramfs-copymods  ubuntu-server
</pre>
<p>umount disk </p>
<pre lang="bash">
$ exit 
$ cd disk 
$ umount proc
$ umount dev
$ umount sys
$ cd ..
$ umount disk
</pre>
<p>最後將 raw disk image 轉成 qcow2 </p>
<pre lang="bash">
$ sudo qemu-img convert  xenial-server-cloudimg-amd64-uefi1.raw xenial-server-cloudimg-amd64-uefi1.img
</pre>
<p>這樣 16.04 開機就不會卡在 cloud init script 了. </p>
<p>The post <a rel="nofollow" href="https://richliu.com/2018/08/25/2318/change-ubuntu-cloud-image-size/">Change Ubuntu Cloud Image Size</a> appeared first on <a rel="nofollow" href="https://richliu.com">richliu&#039;s blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://richliu.com/2018/08/25/2318/change-ubuntu-cloud-image-size/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ubuntu 16.04 error: undefined reference to `create_module&#8217;</title>
		<link>https://richliu.com/2016/11/30/2044/ubuntu-16-04-error-undefined-reference-to-create_module/</link>
					<comments>https://richliu.com/2016/11/30/2044/ubuntu-16-04-error-undefined-reference-to-create_module/#respond</comments>
		
		<dc:creator><![CDATA[richliu]]></dc:creator>
		<pubDate>Tue, 29 Nov 2016 16:31:56 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[16.04]]></category>
		<guid isPermaLink="false">https://richliu.com/?p=2044</guid>

					<description><![CDATA[<p>Ubuntu 16.04 error: undefined reference to `create_modu [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://richliu.com/2016/11/30/2044/ubuntu-16-04-error-undefined-reference-to-create_module/">Ubuntu 16.04 error: undefined reference to `create_module&#8217;</a> appeared first on <a rel="nofollow" href="https://richliu.com">richliu&#039;s blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Ubuntu 16.04 error: undefined reference to `create_module&#8217;</p>
<pre lang="text">Building module-init-tools-3.2 in Ubuntu16.04 failed:
lsmod.o: In function `try_old_version':
./module-init-tools-3.2/backwards_compat.c:56: undefined reference to `create_module'
</pre>
<p>這一篇<a href="http://mkl-note.blogspot.tw/2016/04/ubuntu-1604-error-undefined-reference.html" target="_blank" rel="noopener">Ubuntu 16.04 error: undefined reference to `create_module&#8217;</a>對我沒有用, 但是解法是對的, 這時就要用粗暴的方式, 直接改 backwards_compat.c<br />
加上 </p>
<pre lang="C">
#define CONFIG_NO_BACKWARDS_COMPAT 
</pre>
<p>暫時解決問題</p>
<p>The post <a rel="nofollow" href="https://richliu.com/2016/11/30/2044/ubuntu-16-04-error-undefined-reference-to-create_module/">Ubuntu 16.04 error: undefined reference to `create_module&#8217;</a> appeared first on <a rel="nofollow" href="https://richliu.com">richliu&#039;s blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://richliu.com/2016/11/30/2044/ubuntu-16-04-error-undefined-reference-to-create_module/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
