Showing posts with label 電腦相關. Show all posts
Showing posts with label 電腦相關. Show all posts

Ventoy 設定開機到硬碟的 Ubuntu(grub)

    將這兩個設定檔 ventoy.json, ventoy_grub.cfg,

放入 /ventoy 目錄,這時開機預設會執行 ventoy_grub.cfg 裡面的項目,




注意將 (hd1,msdos1) 改成你 grub 所在的磁碟分割,

在選單按 c 進入 grub 命令列尋找。

grub> ls 

(proc) (hd0) (hd0,msdos2) (hd0,msdos1)



#== /ventoy/ventoy.json ==#

{

    "control": [

        { "VTOY_MAX_SEARCH_LEVEL": "2" },

        { "VTOY_DEFAULT_SEARCH_ROOT": "/" },

        { "VTOY_MENU_TIMEOUT": "10" },

        { "VTOY_DEFAULT_IMAGE": "F6>Grub2 Menu" }

    ],

    "persistence": [

        {

            "image": "/ventoy/lubuntu-20.04.3-desktop-amd64.iso",

            "backend": [

                "/ventoy/persistence_ext4_512MB_casper-rw.dat",

                "/ventoy/persistence_ext4_1GB_casper-rw.dat"

            ],

            "autosel": 1,

            "timeout": 10

        }

    ]    

}

#== /ventoy/ventoy.json ==#

參考:https://www.ventoy.net/en/plugin_control.html

另外 persistence 讓 LiveCD 可以儲存設定

相關檔案在:https://www.ventoy.net/en/plugin_persistence.html


#== /ventoy/ventoy_grub.cfg ==#

set timeout=10

set default="0"

# Press c ,grub> ls, to find out the partition number

# Press e to edit menu

menuentry "Boot to (hd1,msdos1) grub" --class=custom {

configfile (hd1,msdos1)/boot/grub/grub.cfg

}


menuentry '<-- Return to previous menu [Esc]' --class=vtoyret VTOY_RET {

    echo 'Return ...'

}

#== /ventoy/ventoy_grub.cfg ==#


GA-A320M-S2H Ryzen 3200G Install Windows 7

 GA_A320M_S2H R3200G Install Win7 筆記


Gigabyte GA-A320M-S2H 

AMD Ryzen3 3200G with Radeon Vega 8 Graphics

SAMSUNG 860 EVO 500GB SATA SSD 

ADATA XPG SX8200Pro 512G M.2 NVMe SSD

PS/2 鍵盤 <-- 重要

還有需要另外一台可上網的電腦


輕鬆製作可開機的 USB 磁碟機 

https://rufus.ie/zh_TW.html


Gigabyte Windows USB Installation Tool 


Windows USB Installation Tool

(Note) Support AMD series motherboards.


https://www.gigabyte.com/tw/Motherboard/GA-A320M-S2H-rev-1x/support#support-dl-utility

https://www.fox-saying.com/blog/post/45612723


None - Add USB drivers

第一,二項 USB 跟 NVNe drivers 成功

第三項 Add Packages 失敗


拿這個隨身碟接在USB2.0 Port

安裝程式可以看到 SATA 看不到 NVMe,

最後安裝在 SATA SSD 上,第一次開機後就無限藍白畫面,

以上失敗。



之後成功的是先安裝在VM裡,sysprep,然後Clonezilla複製到實體機器。

https://clonezilla.nchc.org.tw/clonezilla-live/download/


使用的是 2017 年安裝好的 VM Win7 sp1 x64


sysprep

http://bluesky0215.blogspot.com/2017/05/windows-7-sysprep.html


進入系統稽核模式

一般化打勾:移除SID織別碼。

關機後不要再開進去,這時用Clonezilla開機製作 Disk image 到 samba server


在實體機器用 Clonezilla開機,還原 Disk image 到 SATA 硬碟。


安裝驅動程式重開後 sysprep 一直出現,又作了一次

進入系統全新體驗

不勾一般化



驅動程式

Drivers

https://www.gigabyte.com/tw/Motherboard/GA-A320M-S2H-rev-1x/support#support-dl-driver-chipset


一剛開機時USB是不會動的,所以要一個PS/2鍵盤執行安裝USB驅動程式,


從技嘉網站裝了這幾個之後,背板的USB2.0會動,USB3.0不會動,前面的USB3.0會動,網路ok,內顯沒完全正常。

AMD Chipset Driver 

mb_driver_amd_chipset_w7_17.40.RC30.zip

AMD Chipset Driver (include chipset \ USB driver) 

mb_driver_amd_chipset_18.10_0813.zip

AMD APU Graphics Driver 

mb_driver_am4_apu_18.9.1.zip

Realtek LAN Driver 

mb_driver_lan_realtek_am4_7.101.0714.2016.zip


後來裝了這個內顯有驅動

https://unikoshardware.com/2020/04/windows-7-ryzen-apu-graphics-driver.html

Radeon-iCafe-20.3.1-Win7-64Bit_Ryzen_APU_Only.7z


這時候裝置管理員還有幾個!驚嘆號


找 AMD 官網驅動,其實好像一開始裝這個就好,上面的不確定需不需要。

https://www.amd.com/zh-hant/support

radeon-software-adrenalin-2020-21.3.1-minimalsetup-210323_web.exe

radeon-software-adrenalin-2020-21.3.1-win10-64bit-mar24.exe





這時候剩一個 NVMe 還不會動,Google 感覺是要 Windows hotfix

使用 

Windows 7 SP1 Update Package 更新包

https://wmos.info/archives/18340


NVMe SSD 就正常了

ADATA XPG SX8200Pro 512G M.2 NVMe SSD


其他資源


Windows 7 SP1 多國語言包

https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/606543/


最後成果




AdGuardHome Windows Setup


  AdGuard Home 與 Pi-hole 一樣利用 DNS 過濾的方法來擋廣告,對於不能裝AdBlock的手機、平板或是智慧電視之類的裝置,成為一種全域的擋廣告解決方案。
https://adguard.com/en/adguard-home/overview.html

安裝
  AdGuard Home 幾乎可以裝在任何平台上,今天要講的是在Windows上的設定,
請從這裡下載: 
https://github.com/AdguardTeam/AdGuardHome#installation
Windows 64-bit
https://static.adguard.com/adguardhome/beta/AdGuardHome_Windows_amd64.zip
Windows 32-bit
https://static.adguard.com/adguardhome/beta/AdGuardHome_Windows_386.zip

解開後只有單一個執行檔
AdGuardHome.exe

執行
會跑出一個 Dos 視窗,最後會列出一些IP是用來做第一次設定的網址 :
 [info] Go to http://192.168.2.8:3000

用瀏覽器連上其中一個網址

  http://192.168.2.8:3000
 
這時候會看到這個畫面

歡迎至 AdGuard Home!

如果連不上,可能是防火牆的影響,請設定
控制台\所有控制台項目\Windows 防火牆\允許的程式


 Firewall allow program

  允許其他程式(R)... 把 AdGuardHome.exe 這個程式加進去。

 下一步

AdGuard Home Install step 2

 設定管理及DNS監聽介面的IP,或是直接按下一頁也可以

 設定管理帳密

AdGuard Home Install step 3

 下一步
AdGuard Home Install step 4

 這裡是說明如何設定每種裝置的DNS,請先按下一頁,稍後說明



 完成後進入
 儀表板


 AdGuardHome 儀表板

如果有看到這個 Error

 Error: control/version.json | Couldn't get version check json from https://static.adguard.com/adguardhome/beta/version.json: *url.Error Get https://static.adguard.com/adguardhome/beta/version.json: couldn't lookup host: static.adguard.com | 502

 似乎是 Windows 版的 AdGuardHome 對於 DNS-over-HTTPS 有問題
 在 Linux 版的沒遇到

AdGuardHome.exe -v debug message
 cause: couldn't do a POST request to 'https://1.1.1.1:443/dns-query',
cause: Get https://1.1.1.1:443/dns-query?dns=96oBAAABAAAAAAAACGlwdjRvbmx5BGFycGEAAAEAAQ: x509: certificate is valid for 1.1.1.1, 1.0.0.1, 162.159.132.53, 2606:4700:4700::1111, 2606:4700:4700::1001, 2606:4700:4700::64, 2606:4700:4700::6400, 162.159.36.1, 162.159.46.1, not 1.1.1.1 


這時候用上面選單的 DNS 設定
 
 DNS Setup menu
 
 把上游的 DNS 伺服器

 https://1.1.1.1/dns-query
 https://1.0.0.1/dns-query

 改成你常用的DNS就可以了

 168.95.1.1
 8.8.8.8

AdGuardHome DNS Setup
套用


 AdGuard Home stat

  上面安裝的步驟4或選單上的安裝指南中有提到如何設定每種裝置的DNS指到 AdGuard Home DNS其中最全面的方法就是更改 WiFi/IP 分享器裡的 DHCP/DNS 設定,把DNS改成 AdGuard Home IP,當手機使用用WiFi時,會自動使用裡面的DNS,而且分享器下的所有裝置都適用。


請連到你的WiFi/IP 分享器上設定DNS伺服器 (通常是  http://192.168.1.1/ 以下是我自己的,設定畫面會類似)
  AP DHCP DNS
 
 最後回到儀表板上可以看到各個IP的使用狀況。

 另外要重新設定時把設定檔刪除就可以了
 AdGuardHome.yaml

 設定參考
 https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration

 安裝服務
 AdGuardHome.exe -s install

複製Win7開機硬碟到較小的SSD

Note 複製Win7開機硬碟到較小的SSD


2T to 480G

Clonezilla --> clone sda1 & sda2 (boot and system partition)

or

Macrium Reflect Free
How to Clone Windows from a Hard Disk to an M.2 SSD (and Keep It Bootable)
https://www.youtube.com/watch?v=BZqkYnmDnas


WIN7系統開機 Windows Boot Manager 出現「狀態: 0xc000000e」

Windows 7 安裝光碟或USB隨身碟修複


舊硬碟如果要和複製後的新硬碟在一起使用

磁碟簽章衝突而離線
Cloned disk - duplicate disk signature

list disk
select disk 0
uniqueid disk
uniqueid disk id=1234abcd

Windows 7 安裝光碟或USB隨身碟修複

Raspberry Pi 3 on SSD


  在 Raspberry Pi3 測一下 MicroSD 的速度 ,感覺比 Pi2 還差,
同樣的 SD 卡 在 Pi2 可以達到 18 MB/s,
在 Pi3 上只有 14.6 MB/s 。
Kingston 32G Pi 3 Benchmark

















SD 卡太慢來試一下 USB 開機:

參考文章
http://www.instructables.com/id/Boot-the-Raspberry-Pi-from-USB/

SD 卡還是須要用來引導開機,用文字編輯 /boot 下的  cmdline.txt 更改 root 指向的磁碟

cmdline.txt
dwc_otg.lpm_enable=0 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline rootwait quiet splash

我是用  Clonezilla  + 讀卡機 來複製 Pi 的分割區 
直接用最高級的組合 USB to SATA 快捷線 + SSD (Micron Crucial MX100 256G)

Pi3 boot from USB to SATA SSD Benchmark






















Read 36.6 MB/s
Write 36.6 MB/s

看來 Pi3 USB 的極限在 36M :-)


Raspberry Pi 3 vnc

在 Raspberry Pi 3 安裝 vnc

作業系統安裝
Ubuntu MATE for Raspberry Pi 3


遠端桌面在Linux系統上有很多選擇,選 x11vnc 的原因是它與螢幕輸出的畫面是同步的。

安裝 x11vnc
sudo apt-get install x11vnc

設定密碼檔
sudo x11vnc -storepasswd /etc/x11vnc.pass

編輯檔案
sudo nano /lib/systemd/system/x11vnc.service
填入以下內容
#-----------------------------------------------
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -display :0 -allow 192.168.0.,192.168.1.2 -auth guess -forever -loop -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -noipv6 -no6

[Install]
WantedBy=multi-user.target  
#-----------------------------------------------
-allow 後面是允許連入的 IP, 請依需求更改。

最後啟動 service
sudo chmod u+x /lib/systemd/system/x11vnc.service
sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service


重開,測試。


想測試命令參數時可以用下列單行指令
sudo /usr/bin/x11vnc -display :0 -allow 192.168.1.2 -auth guess -forever -loop -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -noipv6 -no6

參考:
http://manpages.ubuntu.com/manpages/wily/man1/x11vnc.1.html

ZyXEL NAS326 Transmission torrent download

  NAS326 可以透過安裝套件,自動下載torrent檔案,


從主畫面選管理員


套件-->安裝/升級-->啟用 Transmission


上傳torrent檔案,或是直接給torrent URL

下載還蠻快的 (檔案是為 Raspberry Pi 3 準備的 Ubuntu Mate 15.10.3)

ZyXEL 合勤 NAS326 簡易測試

  今天下班回家時,怎麼踢到一個箱子。啊,不對是PChome在我下訂之前就送來的NAS。


包裝是樸素的紙盒

   
前面                                   後面


打開面板運作中

前面板不好開,看了說明書才知道是向左滑。
硬碟托盤卡楯是要往下壓而不是往上,結果我往上拉了半天,可以加個Push字樣比較好,
托盤的硬碟螺絲孔是橡膠設計可以防止一些硬碟的震動。

接上分享器後,打開電源在瀏覽器打上 http://nas326/
就可以進入管理頁面,預設帳密是 admin 1234

加入第一個硬碟重開後,硬碟一直有動作,讀寫燈一直在閃,不知在作什麼,過了一個多小時後就停止了。

在檔案總管上面打上 \\nas326\
就可以進入分享的目錄。

簡單作一下測試:
硬碟 Hitachi Deskstar 7K2000  2T 7200 rpm
Ethernet 1G 網路
將網芳目錄掛成網路磁碟機 N:
CrystalDiskMark3_0_1b, atto 3.24



Read 107.4 MB, Write 102.1 MB
有 Giga 網路的水準


ZyXEL NAS326 atto 測試

詳細功能請參考官網:
https://www.zyxel.com/tw/zh/products_services/nas326.shtml

Move bluestacks logs to ramdisk


  BlueStacks log 對一般使用者沒什麼用,但會一直產生寫到硬碟裡,消耗SSD的寫入次數,
因為找不到關掉的方法,只好把它導到 RamDisk 裡。

junction 是個有趣的功能,可以讓目錄連結到不同的磁碟空間去。

下載 junction
http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx
放到  C:\ProgramData\BlueStacks

從命令提示字元執行以下指令

cd C:\ProgramData\BlueStacks
sc stop BstHdDrv
rmdir /s /q Logs
rmdir /s /q UserData\Logs
junction.exe Logs Z:\TEMP
junction.exe UserData\Logs Z:\TEMP
sc start BstHdDrv


執行範例:

ssh auto login

ssh 免密碼登入

使用 putty 完整包 http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip

1. PUTTYGEN.EXE Generate Key


public@MyServer:~$ mkdir .ssh
public@MyServer:~$ cd .ssh
public@MyServer:~/.ssh$ vim authorized_keys
public@MyServer:~/.ssh$ chmod 600 authorized_keys


2. Putty Configuration Session Auto-login username
建立一個 Putty Session,並設定 Auto-login username


3. PAGEANT.EXE add Key
建立 PAGEANT.EXE 捷徑,並把 Key 加入參數


之後就可執行 PAGEANT.EXE 捷徑,然後使用 PAGEANT 來登入。

參考:ssh 免密碼

Windows 7 Firefox ClearType rendering mode

一直覺得 Windows 7 下 ClearType 再怎麼調,Firefox 的字都糊糊的,
找了很久,終於看到 Firefox 6.0 有我想要的解法。

以下測試為先用 Windows 7 控制台調整好 ClearType
(控制台\所有控制台項目\顯示\調整 ClearType 文字)

然後在 Firefox about:config 篩選條件:cleartype

然後只改 rendering_mode 的值
gfx.font_rendering.cleartype_params.rendering_mode

0 = Default, 1 = Aliased, 2 = GDI Classic, 3 = GDI Natural,
4 = Natural, 5 = Natural Symmetric

個人覺得 2 或 3 最好看, Y方向的像素不會糊。



rendering_mode = 0



rendering_mode = 1



Silicon-Power 廣穎電通 Blaze B10 16G USB3.0 速度測試

Silicon-Power 廣穎電通 Blaze B10 16G USB3.0 烈燄碟

先說明這是抱怨文
跟人團購買了這一支 USB3.0 的隨身碟,而且之前有看同事用過。
買回當然要先測一下速度,插入電腦,看一下磁碟機內容,
(圖是裝了東西後才抓的,但總容量不變)

疑!容量不太對,仔細算一下,這是一支 16G 的隨身碟所以

16,000,000,000 / (1024*1024*1024) = 14.9G 而不是 14.4G

整整少了 500M,這也偷太多了吧,再看一下同事之前買的為什麼他的就是 15.4G,
前後差了 1G。

同一批共買了3支,結果每支的大小居然可以不一樣,甚至還更少的 XD


寄了下封信給廣穎電通以及打電話到客服尋問結果, 得到以下說明:

--------------------------------------------------------------
在8/1號前後出貨的為不同的產品, 新的產品有挪用部份空間來做
隨身碟保護動作, 以期能延長壽命, 所以看到的會比理論值14.88GB
再少一些。
如果無法接受, 可以為我們進入消費者訴訟。
--------------------------------------------------------------

對,如果以後 flash 的壽命更差,所以決定拿一半的空間來作保護,
那買了標示為 16G 的隨身碟但只能用 8G 那也是正常的。 凸

螢幕亮度設定程式 BrightControl

    看影片時候要把螢幕調到最亮,可是瀏覽網頁這種亮度又太刺眼,如果你經常要配合不同的應用調整螢幕亮度,而你的螢幕又不是EIZO的話,那這個程式可以幫你做到單鍵調整螢幕亮度,省去按螢幕OSD調整亮度的麻煩。

   

下載: MFC Static Library 版本 BrightControl.zip 
3231542282B33385960CB6B95F6A0056 

Share Library 版本 BrightControl0.32.zip  
E9A45AC37C028403D23748F0D63DAAE6 

如果你要自己寫一個的話,以下是參考資料及程式片段,我是用VS2008兜出來的。 
SetMonitorBrightness Dxva2.lib // Minimum supported client Windows Vista 
它應該是用 DDC 來控制螢幕的,不過這些 API 只有在 Vista 以上提供,我自己是在Windows7上使用。 

#include<HighLevelMonitorConfigurationAPI.h>

int CMonConfDlg::SetMonitorBright(HWND hWnd , DWORD cBrightness)
{
HMONITOR hMonitor = NULL;
DWORD cPhysicalMonitors;
DWORD minb=0;
DWORD curb=0;
DWORD maxb=0;
LPPHYSICAL_MONITOR pPhysicalMonitors = NULL;
// Get the monitor handle.
hMonitor = MonitorFromWindow(hWnd, MONITOR_DEFAULTTOPRIMARY);

// Get the number of physical monitors.
BOOL bSuccess = GetNumberOfPhysicalMonitorsFromHMONITOR(
hMonitor, &cPhysicalMonitors);

if (bSuccess)
{
// Allocate the array of PHYSICAL_MONITOR structures.
pPhysicalMonitors = (LPPHYSICAL_MONITOR)malloc(
cPhysicalMonitors* sizeof(PHYSICAL_MONITOR));
if (pPhysicalMonitors != NULL)
{
// Get the array.
bSuccess = GetPhysicalMonitorsFromHMONITOR(hMonitor, cPhysicalMonitors, pPhysicalMonitors);

int n = 0;
do {
bSuccess = GetMonitorBrightness(pPhysicalMonitors->hPhysicalMonitor , &minb, &curb, &maxb);
if( !bSuccess ) {
dbg_printf("GetMonitorBrightness, n = %d, bSuccess = %d\r\r\n", n, bSuccess);
        GetErrorMessage(TEXT("GetMonitorBrightness"));
Sleep(RETRY_SLEEP);
}
n++;
} while( !bSuccess && n < MAX_RETRY);

if( bSuccess ) {
if( curb != cBrightness && minb <= cBrightness && cBrightness <= maxb ) {
int n = 0;
do {
bSuccess = SetMonitorBrightness(pPhysicalMonitors->hPhysicalMonitor , cBrightness);
if( !bSuccess ) {
dbg_printf("SetMonitorBrightness, n = %d, bSuccess = %d\r\r\n", n, bSuccess);
        GetErrorMessage(TEXT("SetMonitorBrightness"));
Sleep(RETRY_SLEEP);
}
n++;
} while( !bSuccess && n < MAX_RETRY);
dbg_printf("SetMonitorBrightness(%d), bSuccess = %d\r\r\n",cBrightness, bSuccess);
}
}

// Close the monitor handles.
        bSuccess = DestroyPhysicalMonitors( cPhysicalMonitors, pPhysicalMonitors);
// Free the array.
free(pPhysicalMonitors);
}
}
return curb;
}