google-code-prettify

星期一, 6月 10, 2019

【Android】Sony Z5 Compact 尋根之路(ROOT)與高級磚頭的生死對決

口白:
流動的水沒有形狀,漂流的風找不到蹤跡,任何案件的 Coding 都取決於心
唯一看透真相的是,外表看似卜朧共,智慧卻低於常人的 名卜朧共 刻爛
(謎之音:把 Code 刻到爛簡稱刻爛.爛..爛...)

Music:
#表升半音 []表高八度
4 3 2 6 4 2 3 #6 6 5 4 5 4 5 6 4 3 2 5 4 3 4 2 6 4 5 [2] [1] #6 6 5 6
4 3 2 6 4 2 3 #6 6 5 4 5 4 5 6 4 3 2 4 3 2 4 2 6 4 5 [2] #6 6 5 6

刻爛:真実はいつも一つ!

欲練神功…揮到自宮…(謎之音:想練神功就準備切機機)
練完神功…無需自宮…(謎之音:神功練好就不用切機機)
環境:
Sony Z5 Compact  7.1.1 一枚
加入空軍自備 pc 一枚 (linux mint 18.x)
收集底下列出的工具、軟體、FTF刷機包

狀況:
自從 Pokemon GO 推出已有多年,
從軍以來,步兵卜朧共都是一步一腳印的攻城掠地,
但光陰似箭…炎炎夏日…
一直嚮往空軍在天上飛的自由自在…(謎之音:明明就是想在家吹涼涼…抓爽爽…)

在看了底下參考文獻的1~10篇後,(謎之音:就手賤啦…)
藉由 Flashtool 完成了 7.1.1 降版動作,版本降到 5.1
藉由 lovyroot v0.3(0.4抓不下來) 與 Dirtycow TABACKUPV2 指令交互參考,
在linux環境下導出 TA 的備份檔…但是不知道是否正確…
抱持的革命必須有所犧牲… 尋根開苞必喪失保固的決心之下…
(謎之音:明明就是過保了)
再藉由 Flashtool 完成了 6..x 升版動作,版本升到 6.0.1
透過 Flashtool 工具,取得 6.0.1 的 kernel.elf
透過 rootKernel 工具與 Magisk 的 zip 檔 ,打包 新的 kernel.img,我是選擇把 TA 也包進去(這部份我試了多次…第一次是包了7.1.1的kernel…)
接下來就是透過官網取得 Bootloader 開苞 房門密碼…
接下來我是透過 Flashtool 去 BLU(Bootloader Unlock)
(謎之音:明明就是懶的打指令)
接著 透過指令 adb reboot bootloader 將手機轉成 fastboot mode

怎麼分辨 adb mode 或是 fastboot mode?
整個過程都是在 usb debug 狀態下作業…
透過指令吧 sudo adb devices 如果有回應就是在 adb
透過指令吧 sudo fastboot devices 如果有回應就是在 fastboot
Z5C 正常開機狀態下會是在adb 來操作…

然後…刷了 7.1.1 的 kernel 跟 recovery…
重開機後就停在 sony 的 mark上(謎之音:要刷對阿…)
然後就變成了高級磚頭…
這時候 你不管按什麼按鈕都不理你…就停在 sony 的 mark上
然後就變成了高級磚頭…
這時不管 power 按多久按到天荒地老…海枯石爛…手機沒電 都不理你…
(謎之音:明明按不到十秒,就快摔手機了…)
然後就變成了高級磚頭…
                                                                                                                                           The End…





接下來找到底下那篇 sony 關機密技 …
(Sony Xperia 系列手機變磚(無法開機或不斷重開機)解救經驗分享)
就是按下電源鍵+加大音量鍵,等著等著就震震震…
感覺Z5C 發出 按你涼 的三聲振動之後它就昏過去了…

這時就是解磚的時候啦…
解救法是…
斷開所有連線…先把 Flashtool 工具準備好 FTF 包準備好…
然後…在關機的狀態下…按著 加大音量鍵 把 usb 線接上去
(記得那時候是按著降低音量鍵 接上去的, Flashtool 之後從新引導了一次 按 加大音量鍵 )
只要能進fastBoot 就有救,只要能刷機就有救…
刷完機…就跟新的一樣阿…不過這時 已經 BLU 了
把對應刷進去版本的新 kernel 刷進去 基本上就完成了
因為 kernel 打包的過程中,如果有把 Magisk or SuperSU 的 zip 二則一,
放在 rootKernel 工具路徑下
這樣就會把 root 工具 與 twrp 一併打包進去
所以刷完後…基本上 recovery 也在了
無須再刷 recovery ,想用新版的也可以刷啦…
還有一個問題…不知道是刷了哪個工具後…recovery就進不去了…
反正該刷的刷完也不用再進去啦…
想再進去也不需要在重刷 boot ,
可以直接在 fastboot  mode 用指令,fastboot boot <RECOVERY檔案>
如:sudo fastboot boot ./20190514-TWRP-3.3.0-suzuran-recovery.img
就可以直接開進去 recovery …
(謎之音:能不能有點貢獻…不要老靠谷哥…)

                                                                                                                                                 (未完待續…)


【工具】


【參考文獻】
  1.  不失去原機 DRM 的情況下,取得 Sony Xperia Z5 家族 Root 權限並重新上鎖教學
  2.  Sony Xperia 系列備份 TA 分割區 (重新上鎖用) 與 DRM Key 教學 (Android 6.x 適用)
  3.  [TOOL] XperiFirm ~ Xperia Firmware Downloader [v5.3.8]
  4.  Sony Xperia Z5 系列、Z3+ 各版本軟體 FTF 刷包下載
  5.  Sony 刷機前置作業,Flashtool 安裝及使用教學
  6.  [刷機必備]Flashtool v0.9.23.2 <含刷固件教學>
  7.  Sony XPERIA Z5 Compact – Android 7.1.1 – 32.4.A.1.54 Bootloader unlock
  8.  ADB/Fastboot工具線刷TWRP Recovery圖文教學
  9. [TWRP][E5823] Latest TWRP for Z5 Compact
  10. Sony Z5 Compact [E5803] (suzuran) Recovery install / root
  11.  I can't load in fastboot mode
  12. .如何在電腦上使用 ADB指令操作Android手機(How to use adb to manipulate android mobile phone )
  13. Sony Xperia 系列手機變磚(無法開機或不斷重開機)解救經驗分享
  14. [FTF] Newest Android 7.1.1 for Xperia Z5C (E5823) 32.4.A.0.160
  15. [更新7.1.1 0.160]Z3+、Z4平板 Z5P、Z5、Z5c Android 7.0解鎖、ROOT(Magisk)
  16. [V13.2升級]隱藏root,Magisk工具(另類root)
  17. .宇的地盤 2016/6/27 4:19PM-更新原廠FTF載點-->HERE!


【PS】
單純更新 Magisk 20 PokemonGo 會不能玩…我想因該有其他的調校方式才對…繼續研究… 20191022



星期二, 9月 25, 2018

【大冒險】偉大環道 小四換新鞋 海德瑙 K81 super sports

口白:
財富(版費)、名聲(美色)、勢力(粉絲)
---擁有全台灣美景的環島王 蕭胚‧P‧妹,
她在臨行前的一句話,讓人們趨之若鶩、奔向環道!

「想要我的財寶嗎?想要的話可以全部給你,去環吧!我把所有的財寶都放在那裡。」
 於是人們為了龐大的財寶,紛紛航向「偉大的環道」。讓台灣迎接「大環島時代」!

這世界,沒錯!一個追求自由任憑選擇的世界,
就在每個人的眼前無限地延伸。
如果我們的夢想可以引導你的方向的話,就去追尋吧,
在名為信念的旗幟下!

繼前篇【大冒險】偉大環道 是有多愛 SUZUKI大冒險 之後,在環道上,
並非風平浪靜~而是暗潮洶湧阿!!!

在9948.9公里時,油表又不正常了…

於是叫了八個小朋友去,去圍店…

分解後…疑似電阻有問題…改天再來修復看看囉…

在經歷了油表停擺…
重點來了…鞋子快磨穿了…
兩雙鞋的磨耗可是1比1…

從帶回家開始,就一直想買雙鞋給她…
像我這樣勤儉持家的…能省則省…(謎之音:能花就花吧…)

最中意的德國製的鞋子,海德瑙 K66 K81 兩個系列…

其中,K66 屬於3D全天候多功能胎 還能在雪地使用…鞋紋好像巧克力
但 K81 屬於 矽膠材質 超級運動胎…鞋紋簡單,這更是喜歡啦

於是,找了一雙 K81 前80/90-14 後90/90-14 德國製
再加上兩個金屬氣嘴


在鞋子磨了 10248 公里時…終於換上新鞋…
中秋回家跟沒力號姊姊團圓(謎之音:海德瑙是給你多少贊助費…還畫輪胎咧)

小四…會咬腳嗎?
我覺的你根本就是貼地飛行阿…

胎壓設定原本 irc 的前面設定29 後面設定31
根據這樣的設定沿用…那乾地抓地力真不是蓋的…

不過這樣的設定因該會磨很快…所以改了一下設定
改成前30 後32 來實驗看看磨耗囉

話說重點又花了多少…
這次帶了24個小朋友去圍店…帶了幾個老頭回家…

(未完待續…)

星期三, 3月 14, 2018

【大冒險】偉大環道 是有多愛 SUZUKI

口白:
財富(版費)、名聲(美色)、勢力(粉絲)
---擁有全台灣美景的環島王 蕭胚‧P‧妹,
她在臨行前的一句話,讓人們趨之若鶩、奔向環道!

「想要我的財寶嗎?想要的話可以全部給你,去環吧!我把所有的財寶都放在那裡。」
 於是人們為了龐大的財寶,紛紛航向「偉大的環道」。讓台灣迎接「大環島時代」!

這世界,沒錯!一個追求自由任憑選擇的世界,
就在每個人的眼前無限地延伸。
如果我們的夢想可以引導你的方向的話,就去追尋吧,
在名為信念的旗幟下!

繼前篇【大冒險】偉大環道 緣起 犀利小四 之後,在環道上,
並非風平浪靜~而是暗潮洶湧阿!!!

話說,從2017年初,就聽聞有新的妹子~
想說~再過幾年跟沒力號就要跑給鴿子追...於是開始了選妃之旅~

為沒力號(小三)添加個妹子(小四)後~再添加個妹子(小五),小老婆等著!我來了...

國產的兩陽…真沒興趣…

自從 Yamaha 拋棄我的沒力號後,這輩子不會再給它機會了…
想到這裡沒力號…心中莫名哀傷…老二無罪!還我路權!

因為打著環保口號~而被制裁的老二們!我沒有原廠的汽缸、曲軸、連2ss都絕版了!!!
為此!我發誓我再也不要帶我的沒力號回娘家!我的妞我自己救!!!
沒2ss以後就喝蓖麻油!!!
我要帶她再走幾十年!!!(握拳)(謎之音:那還選妃…)
老二不死!只是凋零了!

Honda 本田家族…唉~只能說它不爭氣…
Singer 大魔王訪問時,斬釘截鐵的說,不會投入白牌市場…如今咧…眼紅了吧
早一點把 CB150R 弄進來,你今年的財報會很漂亮才對…失望…
我真的很想支持你的…無緣啦…

既然都看到進口車了!
川崎咧?
我覺的台崎也不爭氣,如果把 Ninja 250 好好經營下去,這個級距因該是你的天下…
川崎‧來夢先拜(爆音少女)…看來我要成為哇沙密的日子是不可能了…

重點來了~四大家族中的Suzuki
嘴裡大叫我不要輸輸去!!!(謎之音:嘴裡說不要,身體還是挺老實的阿)

等了又等!鴿子被放了又飛回來....

台鈴要自己帶進來!台鈴要自己帶進來!台鈴要自己帶進來!
台本!別怪我不給你機會阿!!!

從年初等到5月...到6月…
終於可以下聘了…但是,一直想給台本機會…它不爭氣阿…
重點是沒錢阿…怎麼下聘…那個分期方案…又定不下去…先存錢…

台鈴一度發出新聞稿說…要2018年三月底前才能交車…

到了 2017/7/22 我家小四都跟了我一年又11天,
我算算日子…過年年終有的沒的費用評估了一下…
終於克制不住,從小想騎仿賽的夢想大爆發…
直接定下去囉…

其實還有個打算…
這樣我的因該會是2018年產…不是一年前的…哈



…光陰似箭~歲月如梭…
2017年7月22日 一段漫長的等待…
很多都在去年底就上岸了…小五你在海上漂會不會怕…
到了 2018年2月27 收到媒人通知,可以帶雙證件去辦一辦了....
趁著 228 放假,就跟小四一早,就狂飆回老家繳證件去啦~
等阿等阿等阿…3月3日台鈴才把相關文件寄出…
媒婆 3月4日休息…嗚~多等一個禮拜好了…八個月都等了…
娶小老婆就刮大風加冷氣團,這要好好請教一下劉伯溫國師…這是啥尛卦象阿!
希望牽車不要下雨阿…不要妨礙我跟我妞的相聚阿!!!
妞~妳等著!我一定帶你回家!!!
等阿等阿等阿…3月8日接到媒人電話,先把妞安置到他家去…




等阿等阿等阿…3月10日終於可以回家玩咪魯囉…
為什麼叫咪魯?因為之前GSX-250 就被稱為小阿魯阿
所以 GSX-R150 我叫它mini阿魯 簡稱咪魯…長幼有序阿~不能亂阿!
那125咧…micro阿魯…簡稱麥魯…反正我是沒錢買了,管他叫啥…

交付贖款後…媒人親自帶我操駕了一遍…
然後就帶回家研究啦…人生第一台擋車入手啦
趁著我還可以趴的下去…
趴不下去就把整流罩收起來,改成街車…
卜朧共海賊團終於又加入新成員囉

在空地玩了兩公里…






坐在路邊思考…這個性,待調校…
(謎之音:不會騎不要勉強阿…不會就不會…不要遷拖)
那個屁屁還多了小翅膀…看著就倒胃口
youshimura 吉村…下個任務就是你了…
(謎之音:你明明就是不花錢就會手癢!去看醫生啦)
編入年度預算…等議會開議…我一定會讓它通過的…

然後玩著玩著…熄火了…
嗚…練過頭沒油了…推回老家找救兵…


來~叫姊解…姊姊以後要跑給鴿子追,等一下就是靠它去解救你囉

練了一小時差不多了,有信心可以上路了…半離合的點抓住了
換檔還不熟…練個六十幾公里因該就夠了…
中野千雨一定會說座高785mm,這車不適合在路上跑…太危險了
我也是這麼打算…一路開啟零的領域…一定要避開紅燈…
萬事起頭難,一檔過了就當速可達來騎吧,笑…
(謎之音:笑個頭!去騎速克達啦!)

當然第一天就要給它震撼教育啦…慢慢凸回家

來~叫姊解…
(謎之音:又沒吃到凜的口水,體內又沒本田菌…到底台鈴是給你多少廣告費…這尛死忠)


咪魯:都不帶我出去玩…(耳朵都垂下來了)


免鑰匙可用撥剌阿工具撬開…有點像吉他的pick
編碼要記著…這以後會用到…不能給外人看…

最後~三個小老婆比較愛誰阿~小三?小四?小五?
這就像是南宋詩人盧梅坡那首…雪梅二首其一
梅雪爭春未肯降,騷人擱筆費評章。
梅須遜雪三分白,雪卻輸梅一段香。
(謎之音:你倒底是有多懶,到不想打部落格…有沒有新的阿)

(未完待續…)

星期二, 1月 09, 2018

【XenServer】用指令 (Command) 開機 (vm-start)、關機 (vm-shutdown)、建立快照 (vm-snapshot)、快照列表 (snapshot-list)、還原快照 (snapshot-revert)、刪除快照 (snapshot-uninstall)

口白:
流動的水沒有形狀,漂流的風找不到蹤跡,任何案件的 Coding 都取決於心
唯一看透真相的是,外表看似卜朧共,智慧卻低於常人的 名卜朧共 刻爛
(謎之音:把 Code 刻到爛簡稱刻爛.爛..爛...)
Music:
#表升半音 []表高八度
4 3 2 6 4 2 3 #6 6 5 4 5 4 5 6 4 3 2 5 4 3 4 2 6 4 5 [2] [1] #6 6 5 6
4 3 2 6 4 2 3 #6 6 5 4 5 4 5 6 4 3 2 4 3 2 4 2 6 4 5 [2] #6 6 5 6
口白:
刻爛:真実はいつも一つ!

環境:
Citrix XenServer 7.1

指令列表:
指令:xe help --all

[root@xenserver3 ~]# xe help --all
Usage: xe  [-s server] [-pw passwd] [-p port] [-u user] [-pwf password-file]
  [command specific arguments]

To get help on a specific command: xe help 

Full command list
-----------------
    host-all-editions, host-apply-edition, host-backup
    host-bugreport-upload, host-call-plugin, host-compute-free-memory
    host-compute-memory-overhead, host-cpu-info, host-cpu-list
    host-cpu-param-get, host-cpu-param-list, host-crashdump-destroy
    host-crashdump-list, host-crashdump-param-get, host-crashdump-param-list
    host-crashdump-upload, host-data-source-forget, host-data-source-list
    host-data-source-query, host-data-source-record, host-declare-dead
    host-disable, host-disable-display, host-disable-local-storage-caching
    host-dmesg, host-emergency-ha-disable
    host-emergency-management-reconfigure, host-enable, host-enable-display
    host-enable-local-storage-caching, host-evacuate, host-forget
    host-get-cpu-features, host-get-server-certificate
    host-get-sm-diagnostics, host-get-system-status
    host-get-system-status-capabilities, host-get-thread-diagnostics
    host-get-vms-which-prevent-evacuation, host-is-in-emergency-mode
    host-license-add, host-license-remove, host-license-view, host-list
    host-logs-download, host-management-disable, host-management-reconfigure
    host-param-add, host-param-clear, host-param-get, host-param-list
    host-param-remove, host-param-set, host-power-on, host-reboot
    host-restore, host-send-debug-keys, host-set-hostname-live
    host-set-power-on-mode, host-shutdown, host-shutdown-agent
    host-sm-dp-destroy, host-sync-data, host-syslog-reconfigure
    
    vm-assert-can-be-recovered, vm-call-plugin, vm-cd-add, vm-cd-eject
    vm-cd-insert, vm-cd-list, vm-cd-remove, vm-checkpoint, vm-clone
    vm-compute-maximum-memory, vm-compute-memory-overhead, vm-copy
    vm-copy-bios-strings, vm-crashdump-list, vm-data-source-forget
    vm-data-source-list, vm-data-source-query, vm-data-source-record
    vm-destroy, vm-disk-add, vm-disk-list, vm-disk-remove, vm-export
    vm-import, vm-install, vm-is-bios-customized, vm-list
    vm-memory-dynamic-range-set, vm-memory-limits-set, vm-memory-set
    vm-memory-shadow-multiplier-set, vm-memory-static-range-set
    vm-memory-target-set, vm-migrate, vm-param-add, vm-param-clear
    vm-param-get, vm-param-list, vm-param-remove, vm-param-set, vm-pause
    vm-reboot, vm-recover, vm-reset-powerstate, vm-resume
    vm-retrieve-wlb-recommendations, vm-shutdown, vm-snapshot
    vm-snapshot-with-quiesce, vm-start, vm-suspend, vm-uninstall, vm-unpause
    vm-vcpu-hotplug, vm-vif-list
    
    appliance-assert-can-be-recovered, appliance-create, appliance-destroy
    appliance-list, appliance-param-clear, appliance-param-get
    appliance-param-list, appliance-param-set, appliance-recover
    appliance-shutdown, appliance-start, audit-log-get, bond-create
    bond-destroy, bond-list, bond-param-clear, bond-param-get
    bond-param-list, bond-param-set, bond-set-mode, cd-list, console
    console-list, console-param-add, console-param-clear, console-param-get
    console-param-list, console-param-remove, console-param-set
    diagnostic-compact, diagnostic-db-log, diagnostic-db-stats
    diagnostic-gc-stats, diagnostic-license-status, diagnostic-net-stats
    diagnostic-timing-stats, diagnostic-vdi-status, diagnostic-vm-status
    drtask-create, drtask-destroy, drtask-list, drtask-param-get
    drtask-param-list, event-wait, gpu-group-create, gpu-group-destroy
    gpu-group-get-remaining-capacity, gpu-group-list, gpu-group-param-add
    gpu-group-param-clear, gpu-group-param-get, gpu-group-param-list
    gpu-group-param-remove, gpu-group-param-set, log-get, log-get-keys
    log-reopen, log-set-output, lvhd-enable-thin-provisioning
    message-create, message-destroy, message-list, message-param-get
    message-param-list, network-create, network-destroy, network-list
    network-param-add, network-param-clear, network-param-get
    network-param-list, network-param-remove, network-param-set, patch-apply
    patch-clean, patch-destroy, patch-list, patch-param-clear
    patch-param-get, patch-param-list, patch-pool-apply, patch-pool-clean
    patch-precheck, patch-upload, pbd-create, pbd-destroy, pbd-list
    pbd-param-add, pbd-param-clear, pbd-param-get, pbd-param-list
    pbd-param-remove, pbd-param-set, pbd-plug, pbd-unplug
    pgpu-disable-dom0-access, pgpu-enable-dom0-access, pgpu-list
    pgpu-param-add, pgpu-param-clear, pgpu-param-get, pgpu-param-list
    pgpu-param-remove, pgpu-param-set, pif-forget, pif-introduce, pif-list
    pif-param-add, pif-param-clear, pif-param-get, pif-param-list
    pif-param-remove, pif-param-set, pif-plug, pif-reconfigure-ip
    pif-reconfigure-ipv6, pif-scan, pif-set-primary-address-type, pif-unplug
    pool-apply-edition, pool-certificate-install, pool-certificate-list
    pool-certificate-sync, pool-certificate-uninstall, pool-crl-install
    pool-crl-list, pool-crl-uninstall, pool-deconfigure-wlb
    pool-designate-new-master, pool-disable-external-auth
    pool-disable-local-storage-caching, pool-disable-redo-log
    pool-disable-ssl-legacy, pool-dump-database, pool-eject
    pool-emergency-reset-master, pool-emergency-transition-to-master
    pool-enable-external-auth, pool-enable-local-storage-caching
    pool-enable-redo-log, pool-enable-ssl-legacy
    pool-ha-compute-hypothetical-max-host-failures-to-tolerate
    pool-ha-compute-max-host-failures-to-tolerate, pool-ha-disable
    pool-ha-enable, pool-initialize-wlb, pool-join, pool-list
    pool-param-add, pool-param-clear, pool-param-get, pool-param-list
    pool-param-remove, pool-param-set, pool-recover-slaves
    pool-restore-database, pool-retrieve-wlb-configuration
    pool-retrieve-wlb-diagnostics, pool-retrieve-wlb-recommendations
    pool-retrieve-wlb-report, pool-send-test-post
    pool-send-wlb-configuration, pool-sync-database, pool-vlan-create
    pvs-cache-storage-create, pvs-cache-storage-destroy
    pvs-cache-storage-list, pvs-cache-storage-param-get
    pvs-cache-storage-param-list, pvs-proxy-create, pvs-proxy-destroy
    pvs-proxy-list, pvs-proxy-param-get, pvs-proxy-param-list
    pvs-server-forget, pvs-server-introduce, pvs-server-list
    pvs-server-param-clear, pvs-server-param-get, pvs-server-param-list
    pvs-site-forget, pvs-site-introduce, pvs-site-list, pvs-site-param-clear
    pvs-site-param-get, pvs-site-param-list, pvs-site-param-set, role-list
    role-param-get, role-param-list, secret-create, secret-destroy
    secret-list, secret-param-clear, secret-param-get, secret-param-list
    secret-param-set, session-subject-identifier-list
    session-subject-identifier-logout, session-subject-identifier-logout-all
    sm-list, sm-param-clear, sm-param-get, sm-param-list, snapshot-clone
    snapshot-copy, snapshot-destroy, snapshot-disk-list
    snapshot-export-to-template, snapshot-list, snapshot-param-add
    snapshot-param-clear, snapshot-param-get, snapshot-param-list
    snapshot-param-remove, snapshot-param-set, snapshot-reset-powerstate
    snapshot-revert, snapshot-uninstall, sr-create, sr-data-source-forget
    sr-data-source-list, sr-data-source-query, sr-data-source-record
    sr-destroy, sr-disable-database-replication
    sr-enable-database-replication, sr-forget, sr-introduce, sr-list
    sr-param-add, sr-param-clear, sr-param-get, sr-param-list
    sr-param-remove, sr-param-set, sr-probe, sr-scan, sr-update, subject-add
    subject-list, subject-param-clear, subject-param-get, subject-param-list
    subject-remove, subject-role-add, subject-role-remove, task-cancel
    task-list, task-param-add, task-param-clear, task-param-get
    task-param-list, task-param-remove, task-param-set, template-export
    template-list, template-param-add, template-param-clear
    template-param-get, template-param-list, template-param-remove
    template-param-set, template-uninstall, tunnel-create, tunnel-destroy
    tunnel-list, tunnel-param-add, tunnel-param-clear, tunnel-param-get
    tunnel-param-list, tunnel-param-remove, tunnel-param-set, update-apply
    update-destroy, update-introduce, update-list, update-param-clear
    update-param-get, update-param-list, update-pool-apply
    update-pool-clean, update-precheck, update-upload, user-password-change
    vbd-create, vbd-destroy, vbd-eject, vbd-insert, vbd-list, vbd-param-add
    vbd-param-clear, vbd-param-get, vbd-param-list, vbd-param-remove
    vbd-param-set, vbd-plug, vbd-unplug, vdi-clone, vdi-copy, vdi-create
    vdi-destroy, vdi-export, vdi-forget, vdi-import, vdi-introduce, vdi-list
    vdi-param-add, vdi-param-clear, vdi-param-get, vdi-param-list
    vdi-param-remove, vdi-param-set, vdi-pool-migrate, vdi-resize
    vdi-snapshot, vdi-unlock, vdi-update, vgpu-create, vgpu-destroy
    vgpu-list, vgpu-param-add, vgpu-param-clear, vgpu-param-get
    vgpu-param-list, vgpu-param-remove, vgpu-param-set, vgpu-type-list
    vgpu-type-param-get, vgpu-type-param-list, vif-configure-ipv4
    vif-configure-ipv6, vif-create, vif-destroy, vif-list, vif-move
    vif-param-add, vif-param-clear, vif-param-get, vif-param-list
    vif-param-remove, vif-param-set, vif-plug, vif-unplug, vlan-create
    vlan-destroy, vlan-list, vlan-param-get, vlan-param-list

列表:
指令:xe vm-list
[root@xenserver3 ~]# xe vm-list 
uuid ( RO)           : 831797cb-265a-4469-856d-bacef341015d
     name-label ( RW): Control domain on host: xenserver3
    power-state ( RO): running

uuid ( RO)           : 11626c5a-463c-6303-a7c0-7bb51079365e
     name-label ( RW): LinuxMint18.3mate
    power-state ( RO): halted

開機:
指令:xe vm-start uuid=<vm uuid>
[root@xenserver3 ~]# xe vm-start uuid=11626c5a-463c-6303-a7c0-7bb51079365e

關機:
指令:xe vm-shutdown uuid=<vm uuid>
[root@xenserver3 ~]# xe vm-shutdown uuid=11626c5a-463c-6303-a7c0-7bb51079365e

建立快照:
指令:xe vm-snapshot uuid=<vm uuid>
[root@xenserver3 ~]# xe vm-snapshot new-name-label="LinuxMint18.3mate" vm=11626c5a-463c-6303-a7c0-7bb51079365e new-name-description="test Create snapshut"
0f5ef421-8ea6-0043-23c7-6c550066b0d5

快照列表:
指令:xe snapshot-list
[root@xenserver3 ~]# xe snapshot-list
uuid ( RO)                : 0f5ef421-8ea6-0043-23c7-6c550066b0d5
          name-label ( RW): LinuxMint18.3mate
    name-description ( RW): test Create snapshut

uuid ( RO)                : 24da34fe-5234-2dba-ee04-fe15dbbc7d6c
          name-label ( RW): 初始狀態
    name-description ( RW): 

還原快照:
指令:xe snapshot-revert snapshot-uuid=<還原點uuid>
[root@xenserver3 ~]# xe snapshot-revert snapshot-uuid=24da34fe-5234-2dba-ee04-fe15dbbc7d6c

刪除快照:
指令:xe snapshot-uninstall snapshot-uuid=<還原點uuid>
[root@xenserver3 ~]# xe snapshot-uninstall snapshot-uuid=0f5ef421-8ea6-0043-23c7-6c550066b0d5
The following items are about to be destroyed
VM : 0f5ef421-8ea6-0043-23c7-6c550066b0d5 (LinuxMint18.3mate)
VDI: 5c476c47-7643-4deb-a84d-1a81e0de56d0 (LinuxMint18.3mate 0) 
Type 'yes' to continue
yes
All objects destroyed

(謎之音…通通都抄來的…你還有什麼貢獻…)

【參考文獻】
(1) Restore/revert to snapshot
(2) How to take and restore VM snapshot using command line on XenServer
(3) How to export/import VM to/from a backup file using command line on XenServer
(4) Restore XenServer VM snapshots from the CLI / command line

星期三, 12月 20, 2017

【QGIS】將 QGIS Server 安裝在 windows 2016 的 IIS 10 手把手教學

口白:
流動的水沒有形狀,漂流的風找不到蹤跡,任何案件的 Coding 都取決於心
唯一看透真相的是,外表看似卜朧共,智慧卻低於常人的 名卜朧共 刻爛
(謎之音:把 Code 刻到爛簡稱刻爛.爛..爛...)
Music:
#表升半音 []表高八度
4 3 2 6 4 2 3 #6 6 5 4 5 4 5 6 4 3 2 5 4 3 4 2 6 4 5 [2] [1] #6 6 5 6
4 3 2 6 4 2 3 #6 6 5 4 5 4 5 6 4 3 2 4 3 2 4 2 6 4 5 [2] #6 6 5 6
口白:
刻爛:真実はいつも一つ!

環境:
Oracle VM VirtualBox 5.1.30
VM 作業系統:Windows 2016、Windows 2012
IIS 版本:10.0.14393、8.5(測試成功)7.x (理論上都一樣未試過)
qgis server:2.14.20 ltr
qgis desktop:2.14.20 ltr

狀況:
1. 台灣的代理商、經銷商,就像是水貨商一樣
賣你東西之前,說的他的東西有多好用…會飛天會遁地…
賣你東西之後,它錢收了爽完…就不理你了…就跟花錢玩的牛郎一樣(因該吧我也沒玩過)
2. 就是喜歡不一樣,要站在巨人的頭頂上(那裡風景好阿),不要塞在水貨商的屁眼裡!
在那兩個禮拜學會寫 python 的日子裡,看了 Mosky Liu youtube 影片 年會:群在故我在,你的簡單信念是什麼 ,為了讓那些像水貨商的代理商、經銷商去呷賽(吃屎、kiss ass hole),
為了著偉大的理想,發了一篇有極微貢獻的 blog 文章,讓 QGIS Server 因使用而產生價值!
更重要的是讓那些像水貨商的代理商、經銷商去呷賽
3. 實現奧卡姆剃刀原則
奧卡姆剃刀(英語:Occam's Razor, Ockham's Razor),又稱「奧卡姆的剃刀」,拉丁文為lex parsimoniae,意思是簡約之法則是由14世紀邏輯學家、聖方濟各會修士奧卡姆的威廉(William of Occam,約1287年至1347年,奧卡姆(Ockham)位於英格蘭的薩里郡)提出的一個解決問題的法則,而其中最流行的「若無必要,勿增實體」(Non sunt multiplicanda entia sine necessitate)
「切勿浪費較多東西,去做『用較少的東西,同樣可以做好的事情』。」
我深深的覺的QGIS SERVER做到了這點…

大綱:
1. 安裝基礎環境
2. QGIS LTR 安裝
2.1 下載 qgis server 安裝包
2.2 安裝程式
3. IIS 相關設定
3.1 在 IIS 安裝 fcgi
3.2 接下來設定系統變數吧
3.3 目錄權限設定
3.4 IIS 設定
4. 建立 qgis 地圖專案
5. 測試

概略說明:
在谷哥庇佑下,遍尋天下文章…找的安裝 QGIS Server 幾乎都是安裝在 Apache 下,
只有極少數的粗略說明,幾乎毫無幫助…
IIS 也一樣有提共網站服務阿,為什麼在 windows 下還要在裝 Apache?
基於奧卡姆剃刀原則,不因該拿牛刀殺雞雞…
我一定要找出方法…

安裝方法:
1. 安裝基礎環境
在 Windows 作業系統上,安裝 iis、DotFramework 2.x 3.x 4.x…

2. QGIS LTR 安裝
2.1 下載 qgis server 安裝包
去官網下載吧

下載存檔


2.2 安裝程式
執行安裝程式吧

選 Advenced Install

挑喜歡的安裝方式吧

下一步…

由於我選擇的是 Install from Internet ,所以要選擇安裝包的位置

下一步…

下一步…

挑選要裝的套件吧
基本上我只裝了 Desktop、Server

Desktop 選裝 2.14.21-1 ltr

Server 選裝 2.14.21-1 ltr

下一步…

下一步…

安裝中…

在經歷過無腦的下一步攻擊後,終於裝完


3. IIS 相關設定
3.1 在 IIS 安裝 fcgi
預設安裝好的 IIS 是沒有 FastCGI 的喔


開啟 伺服器管理員 > 新增角色及功能

下一步吧

選擇安裝類型 > 角色型或功能型安裝

下一步吧


將 CGI 勾選

我勾了這些

.NET Framework 我裝了這些

安裝

裝好啦

FastCGI 設定 出現啦

3.2 接下來設定系統變數吧
設定環境變數

系統變數 Path 增加:
C:\OSGeo4W64\bin
C:\OSGeo4W64\apps\qgis-ltr\bin
C:\OSGeo4W64\apps\grass\grass-@grassversion@\bin 
C:\OSGeo4W64\apps\grass\grass-@grassversion@\lib
(grass 沒裝應該不用設啦…)

2016 設定界面 長的不一樣…

新增系統變數QGIS_AUTH_DB_DIR_PATH、PYTHONHOME、PYTHONPATH、QGIS_PREFIX_PATH、QT_PLUGIN_PATH、GDAL_CACHEMAX、GDAL_DATA、GDAL_DRIVER_PATH、PDAL_DRIVER_PATH、PROJ_LIB

系統變數增加變數名稱為 QGIS_AUTH_DB_DIR_PATH
值為C:\OSGeo4W64\apps\qgis-ltr\resources

系統變數增加變數名稱為 PYTHONHOME
值為C:\OSGeo4W64\apps\Python27


系統變數增加變數名稱為 PYTHONPATH
值為C:\OSGeo4W64\apps\qgis-ltr\.\python;C:\OSGeo4W64\apps\qgis-ltr\.\python\plugins;C:\OSGeo4W64\apps\Python27\DLLs;C:\OSGeo4W64\apps\Python27\lib;C:\OSGeo4W64\bin;C:\OSGeo4W64\apps\Python27;C:\OSGeo4W64\apps\Python27\lib\site-packages;

系統變數增加變數名稱為 QGIS_PREFIX_PATH
值為 C:\OSGeo4W64\apps\qgis-ltr

系統變數增加變數名稱為 QT_PLUGIN_PATH
值為 C:\OSGeo4W64\apps\qgis-ltr\qtplugins;C:\OSGeo4W64\apps\qt4\plugins

 系統變數增加變數名稱為 GDAL_CACHEMAX
值為 64

 系統變數增加變數名稱為 GDAL_DATA
值為 C:\OSGeo4W64\share\gdal

 系統變數增加變數名稱為 GDAL_DRIVER_PATH
值為 C:\OSGeo4W64\bin

 系統變數增加變數名稱為 PDAL_DRIVER_PATH
值為 C:\OSGeo4W64\bin
(這是啥?我也不知道不要問我…我根據 Apache  環境設定抄來的,因該是沒作用吧)

系統變數增加變數名稱為  PROJ_LIB
值為 C:\OSGeo4W64\share\proj

接下來測試看看 QGIS Server 那隻 FastCGI 程式是否可以正常運作
開啟命令提示字元來測試吧…
基本上 path 設定完,不管在那都可以執行才對…
我測試時是先切換路徑到 qgis server 安裝路徑下,
路徑為 C:\OSGeo4W64\apps\qgis-ltr\bin
如果這隻qgis_mapserv.fcgi.exe,是會正常吐出 xml tag 那就成功一半了

3.3 目錄權限設定
將整個 qgis 安裝的目錄都設定iisuser權限給它
路徑為 C:\OSGeo4W64
使用者包含:IUSR、IIS_IUSRS

3.4 設定


新增虛擬目錄(其實直接新增應用程式也可以才對)

設定別名:qgis(可以隨便定,差別在於服務的網址路徑不同)
實體路徑:C:\OSGeo4W64\apps\qgis-ltr\bin

轉換成應用程式(好啦…我也違反奧卡姆剃刀原則,我當初測試畫面就是這樣嘛)

在 IIS 最根的那層,也就是電腦名稱那層,去設定 ISAPI及CGI限制
原因是底下都會繼承阿,就懶阿

先把 Active Server Page(ASP),限制設定為不允許

新增 ISAPI 或 CGI 限制
ISAPI 或 CGI 路徑:C:\OSGeo4W64\apps\qgis-ltr\bin\qgis_mapserv.fcgi.exe
描述:QGISSERVER (其實有定義沒定義都沒差啦)

允許延伸路徑執行,要打勾

接下來設定 FastCGI

點選 【FastCGI 設定】

新增 FastCGI 應用程式
完整路徑:C:\OSGeo4W64\apps\qgis-ltr\bin\qgis_mapserv.fcgi.exe

設定【處理常式對應】
點選 【處理常式對應】


新增模組對應
要求路徑:qgis_mapserv.fcgi.exe
(iis 收到要求的路徑或檔案來執行下列定義程式運算 也可叫wms*)

模組:FastCgiModule

執行檔:C:\OSGeo4W64\apps\qgis-ltr\bin\qgis_mapserv.fcgi.exe

名稱:qgis_mapserv.fcgi.exe
(可自行定義 叫 wms,不過要給它一個叫wms的 fcgi 檔案,我是這麼幹的…)

2018-05-30 補充:
我額外設定了一組模組對應,要求路徑叫wms*,模組一樣設定為 FastCgiModule,
執行檔也設為 C:\OSGeo4W64\apps\qgis-ltr\bin\qgis_mapserv.fcgi.exe,
名稱則叫做 wms。
copy qgis_mapserv.fcgi.exe ,檔名叫 wms 。

這麼做是wms server網址,可以改成其他的:
http://192.168.15.62/qgis/wms?...


要求限制 > 對應(看上圖吧)

要求限制 > 指令動詞(看上圖吧)GET,HEAD,POST

要求限制 > 存取(看上圖吧)



接下來~測試是否成功…


見證奇蹟的時刻…看到wms 回應的 xml 囉

4. 建立 qgis 地圖專案
於qgis server 路徑下來建立專案檔
qgis server 所安裝路徑為 C:\OSGeo4W64\apps\qgis-ltr\bin

編輯地圖並儲存專案檔 .qgs
Save paths 設為絕對路徑 absolute (這樣只要把 專案檔與fcgi程式放一起即可)

 Project > Project Properties

圖資設定編好後,來發 wms 服務吧
點選【OWS Server】頁籤
(1) Service Capabilities 勾起來,內容就依實況設吧
(2) WMS Capabilities > Advertised extent 勾起來,Boundary 就讓它自己抓吧
把 Use Current Canbas Extent 按下去就行了
(3) CRS restrictions,可以手動加,懶的話就用 Used 按下去,坐標系統就會長出來了
(4) Exclude composers 勾起來
按下 確定 ,然後儲存專案吧

5. 測試
開一空白專案來測試一下發布成果吧

先建立一個 WMS 連結
Name:  local (隨便定的)
URL:http://192.168.15.62/qgis/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
(192.168.15.62 因為從另一台機器去測試;qgis是剛剛設的應用程式)

連接wms server
根據剛才設定wms 連結 來 Connect連接
按下Add 將圖層加入qgis ,來測試顯示結果


結果
成功,圖例就是 QGIS 設定的

再來一發,網頁上也接的到…
這樣一來…該是讓那些像水貨商的代理商、經銷商去呷賽啦~
很重要~所以說三次…

PS:
如果裝完發布沒反應…考慮重啟 IIS 服務吧…
在系統管理員身份的命令提示字元下…iisreset 吧…

【參考文獻】
(1) QGIS Server on Windows 10/Server 2012
(2) QGIS Server在IIS 7.0及以上中配置 (廢…勿入)
(2) QGIS Server 2.8 on Windows Server 2012