2015年4月11日 星期六

docker - 從 container 產生 dockerfile 行不行


最近剛摸 docker ,在學習的時後,就一直有一個問題困擾我。
那就是 docker 可以用 dockerfile 產生 image 也是可以用來作版本控管或分享的一個方式。但是我們在 run 一個 container 時,可能會為了創建環境,而在裡面安了很多 package ,而且應該都是缺什麼裝什麼,一個一個手動裝的。所以等環境建立完,可能自已也忘了裝了什麼 package。 這個時後又想要用 dockerfile 來控管版本或分享給別人,怎麼辨呢?
剛好在 "Docker —— 從入門到實踐" 中看到 "從映像檔產生 Dockerfile" 的說明,覺得應該有機會,因此我從了下面的嘗試。

1. 從在 container 中裝一些 package ex. vim
2. 透過 docker commit 將其 container commit 到某版 image.
3. 透過 command 將 dockerfile 導出。
docker run -v /var/run/docker.sock:/var/run/docker.sock \ centurylink/dockerfile-from-image <IMAGE_TAG_OR_ID> > Dockerfile.txt
4. 只看出導出之 dockerfile 只有一行
FROM ubuntu:vivid

所以,看來目前還是不行的 ....

2015年4月9日 星期四

µBlock - Android 手機看網頁不再有煩人廣告

朋友介紹 µBlock 這個在 PC 版的 Chrome/Firebox/Opera 上的plugin 可以擋廣告,因為 Firefox Android 版也可以裝 plugin (add-ons) 所以就想說應該可以支援囉。
但是從 Android 點入安裝卻出現目前版本不支援?!




原來是最新版還沒有放到首頁,所以可以從 All version 點進去,就看到 0.9.1.0 最新版,就可以安裝囉~






2015年2月26日 星期四

2014年12月17日 星期三

[Linux - Ubuntu]小米 2S 突破 4GB APP 安裝空間限制




最近小米2s的APP 4GB 安裝空間有點不夠了... 因為它不能另外插 SD card,所以 link2SD 也不能用,只好用爆力法更動partition size.

主要注意是這幾個 partition
/system => 用來放系統 App ,這個不用動
/data => 用來放使用者 App ,這個要變大
/sdcard => 用來放Mp3,相片等等假裝成 sdcard 的 partition,這個要變小

因為儲存空間固定,所以就得切一些 /sdcard 空間給 /data
在 Ubuntu 下,大家應該有玩過 gparted 可以直接 resize,就像它的原理。

首先需要先裝含有 repartition 工具的 CM 出版 recovery
CWM for MIUI
http://forum.xda-developers.com/mi-2/development/2014-07-08-clockworkmod-recovery-6-0-5-0-t2878549
how to install by fastboot


http://wiki.cyanogenmod.org/w/Install_CM_for_aries

然後記得備份,我是用鈦備份備份 App,沒試過直接將 /data 整個 copy 下來,如果你成功了,再請分享哦 ;)
另外提醒,如果是用開發版的人,要記得備份 Google Play market 的apk ,我就是忘了備份,還要上網找半天 .....

接下來開進 CWM 後 adb 進手機,
因為我們要動到 /data 所以先 umount 它
$ umount /data
(網上說要 umount /cache 不知為何,我覺得只要 umount /data 就可以)

執行 repartition 工具
$ parted /dev/block/mmcblk0

設定單位
(parted) unit MB

列出目前 partition
(parted) print

16GB 的版本應該會像這樣:
Model: MMC SEM16G (sd/mmc)
Disk /dev/block/mmcblk0: 15.8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 89.1MB 89.1MB fat16 modem
2 89.1MB 178MB 89.1MB fat16 modem1
3 178MB 179MB 524kB sbl1
4 179MB 179MB 524kB sbl2
5 179MB 180MB 1049kB sbl3
6 180MB 181MB 1049kB rpm
7 181MB 182MB 1049kB tz
8 182MB 183MB 524kB DDR
9 183MB 187MB 4194kB aboot
10 187MB 188MB 1049kB misc
11 188MB 191MB 2990kB logo
12 191MB 192MB 799kB m9kefs1
13 192MB 193MB 799kB m9kefs2
14 193MB 193MB 1024B m9kefsc
15 193MB 201MB 8501kB bk1
16 201MB 202MB 799kB m9kefs3
17 202MB 268MB 66.3MB bk2
18 268MB 284MB 15.7MB boot
19 284MB 300MB 15.7MB boot1
20 300MB 316MB 15.7MB recovery
21 316MB 327MB 11.5MB bk3
22 327MB 336MB 8389kB ext4 persist
23 336MB 872MB 537MB ext4 system
24 872MB 1409MB 537MB ext4 system1
25 1409MB 1812MB 403MB ext4 cache
26 1812MB 5570MB 3758MB ext4 userdata27 5570MB 15758MB 10188MB ext4 storage

接下來刪掉 26, 27 (注意: 刪掉就回不去了,請先作好備份)
(parted) rm 26
(parted) rm 27

因為 parted 只有 support ext2,所以我們要建 ext2 partition 等一下再轉換成 ext4。
command 格式為 mkpartfs primary ext2 {起始 MB} {結尾 MB}
因為我想多切 2GB 給 /data 所以,是1812MB ~ 5570MB
(parted) mkpartfs primary ext2 1812 5570

剩下的切給 /sdcard 5570MB ~ 15758MB
(parted) mkpartfs primary ext2 5570 15758

給 partition name ,這裡需要跟之前的 partition name 一樣。
(parted) name 26 userdata
(parted) name 27 storage

(parted) quit

然後網路教說是說要作下面動作將 partition 轉成 ext4:
$ tune2fs -j /dev/block/mmcblk0p26
$ e2fsck -fDp /dev/block/mmcblk0p26
$ tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p26
$ e2fsck -fDp /dev/block/mmcblk0p26

$ tune2fs -j /dev/block/mmcblk0p27
$ e2fsck -fDp /dev/block/mmcblk0p27
$ tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p27
$ e2fsck -fDp /dev/block/mmcblk0p27

但我覺得應該只要用 mke2fs 就好了,但我還是乖乖照作就是了....
有興趣的人可以試看看,我等有空再試看看好了~
$ mke2fs -T ext4 /dev/block/mmcblk0p26
$ e2fsck -fDp /dev/block/mmcblk0p26

$ mke2fs -T ext4 /dev/block/mmcblk0p27
$ e2fsck -fDp /dev/block/mmcblk0p27

接下來再看一次 partition table list 就會看到不同
$parted /dev/block/mmcblk0
(parted)unit MB

(parted) print
print
Model: MMC 016G92 (sd/mmc)
Disk /dev/block/mmcblk0: 15758MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name Flags
1 0.02MB 89.1MB 89.1MB fat16 modem
2 89.1MB 178MB 89.1MB fat16 modem1
3 178MB 179MB 0.52MB sbl1
4 179MB 179MB 0.52MB sbl2
5 179MB 180MB 1.05MB sbl3
6 180MB 181MB 1.05MB rpm
7 181MB 182MB 1.05MB tz
8 182MB 183MB 0.52MB DDR
9 183MB 187MB 4.19MB aboot
10 187MB 188MB 1.05MB misc
11 188MB 191MB 2.99MB logo
12 191MB 192MB 0.80MB m9kefs1
13 192MB 193MB 0.80MB m9kefs2
14 193MB 193MB 0.00MB m9kefsc
15 193MB 201MB 8.50MB bk1
16 201MB 202MB 0.80MB m9kefs3
17 202MB 268MB 66.3MB bk2
18 268MB 284MB 15.7MB boot
19 284MB 300MB 15.7MB boot1
20 300MB 316MB 15.7MB recovery
21 316MB 327MB 11.5MB bk3
22 327MB 336MB 8.39MB ext4 persist
23 336MB 872MB 537MB ext4 system
24 872MB 1409MB 537MB ext4 system1
25 1409MB 1812MB 403MB ext4 cache
26 1812MB 5570MB 3758MB ext4 userdata
27 5570MB 15758MB 10188MB ext4 storage

接下來重開機後,就可以看到 partition 不同,再用鈦備份把 App 備份回來就可以了。






Reference:

http://xiaomi.eu/community/threads/mi2s-extending-size-of-storage-partition.21391/

2014年12月5日 星期五

airdroid 3 - 我最期待的app


看到他 airmirror 的功能,可以把手機上的 app mirror 到 pc 上,這樣就不用慢慢等各家 app 放出pc client app 了,如此 .... 我也可以在 Ubuntu 上用 Line 了
http://help.airdroid.com/customer/portal/articles/1784666-airmirror

但是,可惜現在還不 support Linux .... WTF !!

密切注意這個 thread 吧....
http://forum.xda-developers.com/apps/airdroid/linux-client-t2962111


2014年10月12日 星期日

Linux 多重開機USB disk - multiple OS bootable usb disk


之前花了很多時間想要讓多個OS live CD 放在一個隨身碟裡,試過很多方法都一直有問題,利用這篇記錄一下試過的幾個方式。

這是我比較後來找到的方法,目前是唯一成功讓我在 USB 3.0 disk 上同時放 clonezilla 及 Ubuntu 的方法,但不知為何,只要經過USB 3.0 HUB, 就無法開進 USB disk. 還要再研究。
另外,這個方法作出的 disk 在我的 X240 上面試 clonezillia開機,畫面會亂掉,但在其他PC 不會。因此我幾考其他方法作出來的 clonezillia 開機碟設定,將其 grub.cfg 裡"video=uvesafb:mode_option=800x600-16" 改成"vga=788"後就可以了。



2. GRUB - manually edit
找不到最初看到的文章了,就是自已在 usb disk 上裝 grub2 再把 iso copy 過去,在 grub.cfg 中用 mount loop 的方式 load 進來,我當時遇到的問題是 mount iso 檔的時後,我要如何指到USB 碟? 
用前是用 "set root=(hd0,1)" 指到 usb disk。
這個方法作出來的 disk ,透過 usb hub ,還是可以開進去 clonzillia,所以可以拿來和第一种方法相比較。

後來找到這個有點像,有空再試一下: Boot Multiple ISO from USB via Grub2 using Linux

這個是透過 syslinux 建立的,還沒試,但他這句話讓我有點不想試 XD
"Important Note: YUMI was intended to be used to try to run various "LIVE Linux" Operating Systems from USB. Installing Linux from the YUMI created USB Drive to a Hard Drive is not officially supported. If the installer portion of any Live Linux distro does work, consider it a bonus."

syslinux 似忽都是要將 iso 裡的檔 copy 出來,但我在 copy 時有遇到 error “operation not permitted”,裡面留言所遇到的一樣,但格主沒有回應。

不管那個 error 直接上,Ubuntu 14.04 開不進去,殘唸....

這個也是 syslinux 的方式,就是一個一個用 unetbootin 作好之後,再 copy 到到各別的 folder 再修改 syslinux.cfg 指向它。 但是我看 clonezilla 說,不推用 unetbootin 作開機碟.... 但我想用他的 Tuxboot 作結果應該一樣。

2014年6月13日 星期五

Lenovo Thinkpad X240

最近為了工作買了一台 X240 跑 Ubuntu 14.04 ,分享一下使用上的經驗:


  1. 不知為何,其 default 為 function key
  2. 當使用上面方法時,End/Insert key 就變成以 insert 為 default key.
  3. Ubuntu 14.04 好像取消了中英文輸入法的切換,而改以 super + space 來切換到下一個輸入法,而 super + shift + space 切換到上一個輸入法。
    1. will try this http://jingyan.baidu.com/article/4b07be3c60da3f48b380f3f0.html

      Written with StackEdit.