2018-12-22

python 常用管理命令

Anaconda 基本命令

conda -V : conda 版本

conda search "^python$" : conda 支持那些版本的 python

conda info : conda 的安裝設定訊息
conda list
conda list packagename

conda update conda
conda update anaconda
conda update --all

Anaconda 虛擬環境安裝及管理

conda create -n yourenvname python=x.x
conda create -p prefixpath_and_yourenvname python=x.x 改變 envs 所在位置
        ex : conda create --prefix=D:\python36\py36 python=3.6
activate yourenvname
(yourenvname) conda install packagename
(yourenvname) conda uninstall packagename
(yourenvname) deactivate
conda info -e
conda env remove -n yourenvname

以 pip 安裝及管理虛擬環境

pip install virtualenv
mkdir xxx
cd xxx
C:\Users\Cliff\AppData\Roaming\Python\Python311\Scripts\virtualenv yyy
"...\xxx\yyy\scripts\activate.bat"
(yyy) ...
deactivate
...

How to Upgrade All Pip Packages by pip

Here's a quick and easy way to upgrade all outdated pip/Python packages on a computer. It worked for me on Ubuntu 16.04, and looks like it will work on Mac and Windows too.

Save a list of Python packages to a file:

$ pip freeze > pip_frozen.txt

Then run this command (which might require sudo on some systems) -- it will upgrade every Python package listed in that file:

$ pip install -r pip_frozen.txt --upgrade

Another method :
The easiest way to update all packages in a Windows environment is to use pip in conjunction with Windows PowerShell: 

Open a command shell by typing ‘powershell’ in the Search Box of the Task bar
Enter:
pip freeze | %{$_.split('==')[0]} | %{pip install --upgrade $_}
This will upgrade all packages system-wide to the latest version available in the Python Package Index (PyPI).

How do I upgrade the Python installation in Windows 10?

Every minor version of Python, that is any 3.x and 2.x version, will install side-by-side with other versions on your computer. Only patch versions will upgrade existing installations.

So if you want to keep your installed Python 2.7 around, then just let it and install a new version using the installer. If you want to get rid of Python 2.7, you can uninstall it before or after installing a newer version—there is no difference to this.

Current Python 3 installations come with the py.exe launcher, which by default is installed into the system directory. This makes it available from the PATH, so you can automatically run it from any shell just by using py instead of python as the command. This avoids you having to put the current Python installation into PATH yourself. That way, you can easily have multiple Python installations side-by-side without them interfering with each other. When running, just use py script.py instead of python script.py to use the launcher. You can also specify a version using for example py -3 or py -3.6 to launch a specific version, otherwise the launcher will use the current default (which will usually be the latest 3.x).

Using the launcher, you can also run Python 2 scripts (which are often syntax incompatible to Python 3), if you decide to keep your Python 2.7 installation. Just use py -2 script.py to launch a script.

2018-12-20

Option ROM (OpROMs)

Option ROM就是存在於其它硬體元件上 (介面卡為大宗) 的FW,可視為每個硬體自己的BIOS,常見的有VGA BIOS、PXE Option ROM、RAID Option ROM等。而System BIOS會透過load Option ROM的動作來初始化啟動硬體,如此一來,System BIOS就能省事省力不需support所有的硬體。

2018-12-13

更改休眠暫存檔 hiberfil.sys 存放位置

查到的資料 還沒試過 先留著備查

打開註冊表到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToBackup

找到裡面的“Power Management”。
把裡面的“\hiberfil.sys”前面加上磁碟代號,如改成“D:\hiberfil.sys”即可。

2018-09-28

合併 PartedMagic 及 USBOX, 作為我的救援 USB 隨身碟 --- UEFI/Legacy 都適用

其中混和了四種 boot loader

PartedMagic 含有兩個 bootloader : syslinux (for BIOS boot mode) and grub2 (for UEFI boot mode)
USBOX 也含有兩個 bootloader : grub4dos (for BIOS mode) and bootmgfw.efi (for UEFI boot mode)

步驟如下 :

1. 使用 RMprepUSB 安裝 syslinux bootloader (LDLINUX.sys), 注意根目錄下隱藏檔 ldlinux.sys 是否存在, syslinuc.cfg 則原本就已在 PartedMagic 中 (/boot/syslinux/syslinux.cfg)
2. 將 PartedMagic.iso 使用 ultraiso.exe 抽離, 並存放到 暫存目錄中 (ex :/tmp/PM_2019/...)
3. 將 usbox.iso 使用 ultraiso.exe 抽離, 暫時放到暫存目錄中. (ex. /tmp/USBOX4/...)
4. 將 /tmp/USBOX4/efi/boot/bootia32.efi 及 /tmp/USBOX4/efi/boot/bootx64.efi, 移到 /tmp/USBOX4/efi/microsoft/boot 目錄下
5. 將 /tmp/USBOX4/efi/microsoft/boot/bootx64.efi 改名為 bootmgfw.efi
6. 將 /tmp/USBOX4/ 下的內容都拷貝到 /tmp/PM_2019/目錄中
7. 修改 /tmp/PM_2019/boot/grub/grub.cfg, 新增 :
   menuentry "10. UEFI USBOX" --unrestricted {
       chainloader /efi/microsoft/boot/bootmgfw.efi
   }
    USBOX UEFI mode 下, 直接啟動 WIN 10 PE
   grub.cfg 真的可以這樣直接修改嗎? 有更正式的方法嗎?
8. 下載 grub4dos, 將其中之 grub.exe 放在 /tmp/PM_2019/...目錄
9. 修改 /tmp/PM_2019/boot/syslinux/syslinux.cfg, 新增 :
   LABEL boot_usbox
   MENU LABEL ^8. boot_usbox
   TEXT HELP
   Boot USBOX
   ENDTEXT
   KERNEL /grub.exe
   USBOX BIOS mode 下, 搭配 menu.lst, 進入 Grub4DOS 選單

   更詳細的說明可參考 : "Chainload syslinux from grub4dos/grub/grub2 and vice versa"

10.  啟動 Acronic TrueImage << 參考此文
menuentry "A. Acronis TrueImage 2020 21400 ISO" {
set quiet=1
set gfxpayload=1024x768x32,1024x768
set mbrcrcs=on
set isofile="/My_ISOs/ATI21400.iso"
search --set -f $isofile
loopback loop $isofile
linux (loop,msdos1)/dat10.dat lang=en quiet force_modules=usbhid
initrd (loop,msdos1)/dat11.dat (loop,msdos1)/dat12.dat
boot
}
11. 利用 Bootice 修改 usbox 所帶的 /efi/microsoft/boot/BCD, 新增其他 WIN PE
12. copy /tmp/PM_2019/... 到 usb
大致上, 就是如此

13. 以 bootice.exe 修改 USBOX4 /efi/microsoft/boot/BCD, 以便新增其他 PEs
14. USBOX4 /TOOLS/TOOLS.7z 內有一些好用的工具, 可以在 7z.exe 內很容易的自行新增或更新版本

最好對於 BCD ( Boot Configuration Data) 有些初淺的了解. 透過 editbcd 或 virtual BCD editor/EasyBCD/Bootice/WMI,  可稍微看一下其中的內容. 才會知道不同位置的 BCD 檔, 有何作用. 使用上, Bootice 個人覺得較為順手. 

有了以下的資料此想法才得以完成 : GRUB2配置文件"grub.cfg"詳解(GRUB2實戰手冊) by 作者:金步國

怕遺失, 我另存了一份在 google drive. 下載

另外, 不要將以製造好的 USB 備份倒硬盤, 再拷貝到其他 USB. 這樣會造成 windows 檔案總管的U盤名稱重複. (雖然還是可用, 但總覺得怪怪的)

2018-05-02

Windows 10 在 1709 更新之後, 如何讓其他台電腦可以看得到, 且分享其目錄或資源

會有這個問題主要是微軟對於 smb protocol 做了一些更動:

- 取消了 HomeGroups 功能
- 全面使用 SMB V2/V3
- 禁止了"不安全的來賓登入"

==========目前使用的方法=============================================
1) 先決條件 : NetBIOS over TCPIP 必須啟用
     cmd > ipconfig /all > 確認 NetBIOS over Tcpip 為啟用;
     網路連線 > 內容 > TCP/IP4 > 內容 > 進階 > WINS > 啟用 [NetBIOS over TCP/IP ] > 重啟
     若一直無法啟用, 請參考 NetBIOS over Tcpip 一直顯示為"禁用"

2) service 設定:
    DNS Client 確定開啟
    Function Discovery Provider Host 請啟動並由手動改成自動 (延遲啟動)
    Function Discovery Resource Publication 請啟動並由手動改成自動 (延遲啟動)
SSDP Discovery 請啟動並由手動改成自動
    UPnP Device Host 請啟動並由手動改成自動
    TCP/IP NetBIOS Helper 確定為啟動狀態

3) win鍵+R 輸入gpedit.msc
電腦設定>系統管理範本>網路>Lanman 工作站>啟用不安全的來賓登入>選擇【已啟用】【確定】

退出本機原則視窗後,開一命令視窗輸入 gpupdate /force 或者重新啟動電腦

原因 : Guest access in SMB2 disabled by default in Windows 10, Windows Server 2016 version 1709, and Windows Server 2019

4) 網路和共用中心 -> 變更進階共用設定-> 私人(目前設定檔)-> 網路探索-> (enable)開啟網路探索-> (enable)開啟網路連線裝置的自動設定

5) 網路和共用中心 -> 變更進階共用設定-> 所有網路-> 以密碼保護的共用 ->關閉

6) 想要取用被分享的檔案, 可直接在 檔案總管-本機-電腦-連接網路磁碟機 上面輸入  \\電腦名稱\shared_directory 或 \\IP

強烈建議,不要重新安裝 SMBv1, 因為這個舊版通訊協定已知具有與勒索軟體和其他惡意程式碼相關的安全性問題

目前的問題是:

1) 檔案總管 -> 網路, 無法顯示相同群組內的電腦 ( 似乎是微軟 windows 10 1803 之後才有的問題 ); 若要探索網路上被分享的檔案, 必須使用上述步驟 6 的方法. ... 安裝 SMB V1 或許可解, 但不建議.

=======改用其他通訊協定 (要輸入 username/password太麻煩了) ======================
改用 HTTP Server
或架 FTP Server


===== 另外一種解法 : 強制使用舊版的SMB V1 (不建議) =================

Windows 系統管理工具\服務 開啟後\
DNS Client 確定開啟
Function Discovery Provider Host 請啟動並由手動改成自動
Function Discovery Resource Publication 請啟動並由手動改成自動
SSDP Discovery 請啟動並由手動改成自動
UPnP Device Host 請啟動並由手動改成自動

搜尋windows 找 "Windows 功能" 點進 "開啟或關閉Windows 功能"
展開SMB 1.0/CIFS 檔案共用支援
勾選"SMB 1.0/CIFS 用戶端"
重啟電腦

<< 千萬不要使用以下方法, 會有不可預期的影響 >>
先使用管理者權限執行CMD, 強制使用舊版的SMB
輸入下方指令
SC.EXE config lanmanworkstation depend=bowser/mrxsmb10/nsi
輸入下方指令
SC.EXE config mrxsmb20 start=disabled
重開機後,網路芳鄰裡的裝置就會再次出現了!

===== 另外一種現象 (還沒驗證過)  =================
1709版連不上NAS?嗯。其實還有另一種可能,叫做「Guest access in SMB2 disabled by default」。不用把SMB改回1.0版,而是把登錄檔修改一個值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters] => 修改或新增“AllowInsecureGuestAuth” = 1 (DWORD)
請參考網路上找來的分享文。Windows 10 1709 無法存取QNAP Synology NAS網路芳鄰(SMB)

微軟沒事升級就升級,偏偏就喜歡偷改些東西讓你人仰馬翻......

在升級到Windows 10 1709 (RS3) Fall Creators Update以後,原因看起來是Guest access in SMB2 disabled by default,如果您未儲存NAS的帳號密碼至「認證管理員」的話,則會無法連線至NAS的網芳。

In Windows 10 Fall Creators Update and Windows Server version 1709, the SMB2 client no longer allows the following actions:
1. Guest account access to a remote server
2. Fallback to the Guest account after invalid credentials are provided

有問題的情況:
(情況1)使用我的電腦或檔案總管時,連線至 \\NAS\Multimedia,則會出現 0x80004005 錯誤。

(情況2)使用net use \\NAS\Multimedia會出現以下錯誤:
系統發生 1272 錯誤。
您無法存取此共用資料夾,因為您組織的安全性原則已封鎖未經驗證的來賓存取。這些原則可協助保護您的電腦,以防禦網路上不安全或惡意的裝置。
You can't access this shared folder because your organization's security policies block unauthenticated guest access. These policies help protect your PC from unsafe or malicious devices on the network.

解決辦法:
(方法1)把帳號密碼存入認證管理員,認證管理員進入的方式:先按win+r => 輸入control 按enter(也就是選擇「控制台」) => 「使用者帳戶」=>選擇「認證管理員」下面的「管理Windows認證」=>新增Windows認證=>輸入NAS IP或domain name、網芳帳號、網芳密碼=>確定

(方法2)修改registry,先按win+r => 輸入regedit.msc =>找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters] => 修改或新增“AllowInsecureGuestAuth” = 1 (DWORD)

Reference:
SMBv1 is not installed by default in Windows 10 Fall Creators Update and Windows Server, version 1709
Guest access in SMB2 disabled by default in Windows 10 Fall Creators Update and Windows Server 2016 version 1709
Windows 10 1709 Cannot Access SMB2 Share Guest Access

2018-04-23

TF700T的刷ROM(Android6.0)步驟教學

重要參考來源 :
=== mobile01 TF700T的刷ROM(Android6.0)步驟教學
=== xda-developer [ROM][TF700 - TF201][MM 6.0.1] [ KatKiss - KatshMallow #029] [MultiWindow]


1. 重置 TF700T, 不要輸入 Google account

2. setting->security->裝置管理->不明的來源 [ Enable ]

3. setting 下若無 developer options, 按 setting -> 關於平板電腦 -> "版本號碼" 7,8 次

4. setting -> developer options ->偵錯 -> USB 偵錯 [Enable]

5. Upload "Unlock_Device_App_V7.apk" to TF700T, 並執行; 此步驟是 unlock bootloader

6. 平板與PC連線(要確定PC方有ADB驅動, 我的是WIN10插上自動安裝, 但我再次使用 infinityroot 下 driver 更新驅動); 確認裝置管理員中出現 TF700T 相關裝置 (2 處)

7. PC方執行 cmd.exe, 輸入 fastboot -i 0x0B05 flash recovery twrp-3.0.2-1-tf700t.img; 此步驟是上傳第三方引導程式( or new bootloader) 到 ASUS TF700T

8. backup everything (???)

9. 將平板重開機一下,然後將以下檔案
    - KatKiss-6.0_TF700T_029.zip (安卓6.0)
    - open_gapps-arm-6.0-pico-20161104.zip (GOOGLE應用程式)
    COPY到平板根目錄

10. Boot into the recovery ( power button+volume down, volume up to enter RCK)

     - Wipe (擇一) :
        1. 若相關檔案存在 external SD : "Advanced Wipe" (除了 SD/USB, 全選) , "Format Data" (yes), then back to home
        2. (V) 若相關檔案存在 internal storage : Swipe to Factory Reset, then back to home
     - Install Kernel : KatKiss-6.0_TF700T_029.zip
     - Install Google apps : open_gapps-arm-6.0-pico.20160904.zip
     - Wipe Cache/Dalvik
     - Install SuperSU (for root) : BETA-SuperSU-v2.52.zip (千萬不要 upgrade )
     - Reboot System