หลัง update windows มันมีอะไรแปลกๆ เพิ่มขึ้นมาอย่างหนึ่ง คือพยากรณ์อากาศตรง task bar คิดว่าคนที่ต้องการจะดูมันตลอดทั้งวันนี้คงมีน้อยมากๆ เอาออกไปเหอะ
- คลิก task bar
- ไปที่ News and interests
- คลิก turn off
ถ้าเครื่องลง dual boot หลังไปใช้ linux แล้วกลับมาบูทเข้า windows จะพบว่าเวลามันจะเปลี่ยนไปหลายชั่วโมง โดยที่ไม่ได้ตั้งเวลาใหม่แต่อย่างใด ทั้ง ๆ ที่ตอนใช้ลินุกซ์เวลาก็ถูกต้องนะ
ปัญหาแบบนี้สามารถแก้ได้ง่าย ๆ โดยพิมพ์ใน terminal ด้วยสิทธิ์ root
timedatectl set-local-rtc 1
จากนั้นปัญหานี้จะหมดไปละ
สาเหตุ ในคอมพิวเตอร์มีนาฬิกาอยู่ 2 ตัว คือ 1 นาฬิกาบนแมนบอร์ด ( bios / cmos / uefi ) 2 นาฬิกาบนระบบปฏิบัติการ โดยค่าตั้งต้น linux จะคิดว่านาฬิกาบนเมนบอร์จะเป็นเวลาตาม UTC ไม่ใช่เวลาท้องถิ่น แต่วินโดวน์จะคิดว่าเป็นเวลาท้องถิ่น เวลาที่เราใช้ linux หรือ windows ต่างก็ sync เวลาใหม่ลงไปที่นาฬิกาบนแมนบอร์ด แต่เพราะว่าทั้งสองตัวเข้าใจว่าเป็นจึงเห็นเวลาเปลี่ยนไป เปลี่ยนมา
ขอบคุณวิธีและคำอธิบายจาก Wrong Time Displayed in Windows-Linux Dual Boot Setup? Here’s How to Fix it
นอกจากลง windows ผ่าน usb ที่ microsoft จะทำตัวติดตั้งให้โหลดจากเว็บตัวเองแล้วลง usb ไม่ต้องใช้ cd dvd เหมือนสมัยก่อนแล้ว แต่ถ้าจะลง windows หลาย version หรือจะลง linux จะลงตัวสแกนไวรัส ปกติมันก็ใช้ flash drive ตัวละอัน รกกว่า dvd หลายอีก
หลังจากลองมาหลายตัวอย่าง Rufus, YUMI จนได้เจอกับตัวที่ถูกใจ ใช้ง่ายมากๆ คือ ventoy ที่ตอบโจทย์มากๆ คือ ลงได้หลาย os หลาย iso โดยใช้แค่ usb อันเดียว เพิ่มลด iso แค่ลบ วาง ไม่ต้องทำอะไรพิเศษ จะทำใน windows ก็ได้ windows พังก็ใช้ linux ทำก็ได้
ทดสอบโดยการตั้งให้เครื่องของเรา boot จาก usb อันที่ทำไว้ จะเห็นชื่อไฟล์ iso ที่เราโหลดมา เลือกตัวที่ต้องการจะใช้ติดตั้งได้เหมือน usb แยกเฉพาะตัวเลย
ความดีงามของ Ventoy คือเวลา windows ออกเวอร์ชั่นใหม่ขึ้นมา ก็แค่โหลด iso ตัวใหม่มาวางใน dirve เดิม ถ้ามันเก่าแล้วหรือพื้นที่ไม่พอแล้วก็แค่ลบอันที่ไม่ใช้ออก ไม่ต้องทำอะไรเป็นพิเศษ ไม่ต้องใช้ Ventoy มาทำอะไรด้วยซ้ำไป
เป็นเรื่องปกติที่เน็ตใน office ใหญ่ๆ มันจะอยู่หลัง proxy ที่จะกรองข้อมูลเข้าออก แต่แปลกคือเปิดเว็บใน chrome firefox IE ได้หมด แต่ตัว command line dos ตัวน้อยๆ น่ารัก ที่ติดมากับ windows มีปัญหาไม่สามารถติดตั้ง package ต่างๆ ผ่าน composer หรือ npm ได้
เพราะว่าสำนักงานอาจจะใช้ NTLM หรือ Kerberos มาทำเป็น proxy โดยไม่ได้สนใจว่า dos, command line แม้แต่น้องใหม่ powershell อะไรพวกนี้มันต่อเน็ตไม่ได้ 100% ทั้ง ๆ ที่ ping ออกไปได้ เอา url ไปเปิดดูก็ได้ แต่ทั้ง composer ทั้ง npm มันบอกว่าต่อเน็ตไม่ได้ network เค้าก็บอกไม่ได้บล๊อกนะ ทำไม่เป็นแบบนี้ไม่รู้เหมือนกัน
วิธีแก้คือหาโปรแกรม authentication proxy, forward proxy, reverse Proxy มาช่วย เดิมเคยใช้ Cntlm Authentication Proxy โดนเคยเขียน forward proxy ด้วย cntlm ไว้แต่พี่แกแทบจะไม่พัฒนาต่อแล้ว เลยเปลี่ยนมาใช้ Px แทน
การติดตั้ง
[proxy]
allow = *.*.*.*
auth =
gateway = 0
hostonly = 0
listen = 127.0.0.1
noproxy = 192.168.1.*
pac =
port = 3129
server = 192.168.1.33:3128
useragent =
username =
[settings]
foreground = 0
idle = 30
log = 0
proxyreload = 60
socktimeout = 20.0
threads = 5
workers = 8
แก้ windows environment สมมุติว่า 3128 คือ port ที่ตั้งไว้ใน [proxy] จะได้
Variable | Value |
HTTP_PORXY | localhost:3129 |
HTTP_PROXY_REQUEST_FULLURI | 0 |
HTTPS_PROXY | localhost:3129 |
HTTPS_PROXY_REQUEST_FULLURI | 0 |
ถ้าไม่เคยตั้งค่า Windows Environment Variables อ่านได้จาก
เปิดไฟล์ C:\Windows\System32\drivers\etc\hosts
แก้จาก
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
เป็น
# localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
::1 localhost
restart แล้วลง composer และ npm ใหม่ ตัวติดตั้งเห็นเห็น Windows Environment Variables แล้วตั้งค่า proxy ให้เอง
เราสามารถเซ็ต Environment Variables ได้โดยใช้ command line ง่ายๆ แค่พิมพ์ set หรือ setx เท่านั้นเอง
ก่อนอื่นก็ดูก่อนว่า Environment Variable ตัวนี้เซ็ตเอาไว้รึยัง รูปแบบคือ echo %{variable name}% ตัวอย่าง echo %path% ถ้ามีค่าจะได้ค่าออกมา ถ้าไม่เคยมีมาก่อนจะ retuen %{variable name}% กลับมา
ใน windows จะไม่สนใจตัวเล็กตัวใหญ่ (case insensitive) ดังนั้นตัวแปรที่เซ็ตชื่อ PATH หรือ path ก็คือตัวเดียวกัน
ถ้าใช้ windows 10 build ใหม่ๆ สามารถใช้ คำสั่ง setx รูปแบบคือ setx {variable name} {variable name} เช่น setx http_proxy 127.0.0.1:3128 หรือ setx https_proxy 127.0.0.1:3128
ถ้า windows ที่เก่ากว่านั้นก็ใช้ set เช่น set http_proxy=”127.0.0.1:3128″ หรือ set https_proxy=”127.0.0.1:3128″ ต่างกันที่ มี x กับ ไม่มี x แค่นั้นเหรอ จริงๆแล้ว set ใช้ง่ายกว่ามากโดย
อ่านเพิ่มเติม
หลังจากลง linux แล้วมันจะจัดการให้เข้ามาใช้ linux เป็นค่าเริ่มต้น แต่ถ้าเราใช้ windows เป็นหลักมันจะสดวกกว่าถ้า grub มันจะ boot เข้า windows ไปเองถ้าเราไม่ได้เลือก
สาย gui อาจจะใช้ Grub Customizer แต่จริงๆแล้วไม่จำเป็นต้องลงโปรแกรมตัวนี้เลย แค่เข้าไปแก้ตัวเลขตัวเดียวเท่านั้นเอง ( แถม linux อย่าง kali ยังไม่ยอมให้ลงอีกตะหาก )
sudo cp /etc/default/grub /etc/default/grub.bak
sudo vim /etc/default/grub
หาบรรทัด GRUB_DEFAULT=0
เปลี่ยนตัวเลขเป็นลำดับเมนูของ windows ย้ำอีกทีว่านับจาก 0 ( ถ้าเป็น linux บางตระกูลให้ใช้ nano แทน vim )GRUB_TIMEOUT=5
เป็น 3 ก็พอsudo update-grub
จะเห็นว่าจริงๆก็ไม่ยากเลย อ่านเพิ่มเติม How do I change the GRUB boot order?
การติดตั้ง imagick (ImageMagick) มันจะมีขั้นตอนพิเศษคือ copy .dll นอกจาก php_imagick.dll ใส่ไว้ใน apache\bin และต้องเซ็ต ENVIRONMENT PATH ด้วย
ขั้นตอนการติดตั้งแบบละเอียด
เช่น 7.1 Thread Safe (TS) x64 คือ php version = 7.1 Thread Safety = enable Architecture = x64 คลิกโหลดมาจะได้ไฟล์ php_imagick-3.4.3-7.1-ts-vc14-x86.zip
โหลดแล้วติดตั้งตามปกติ อย่าลืมติ๊ก Add application directory to your system path
แทนที่จะไล่หาว่าเครื่องไหนมันเปิดอยู่บ้างที่ละเครื่องสามารถใช้ command ping เครือข่ายทั้งยวงได้โดยใช้คำสั่ง[code language=”text”]FOR /L %i IN (1,1,254) DO ping -n 1 192.168.1.%i | FIND /i "Reply">>c:\ipaddresses.txt[/code]
ผลที่ได้จะถูกเขียนลงในไฟล์ c:\ipaddresses.txt[code language=”text” title=”c:\ipaddresses.txt”]…
Reply from 192.168.1.1: Destination host unreachable.
Reply from 192.168.1.1: Destination host unreachable.
Reply from 192.168.1.1: Destination host unreachable.
…
Reply from 192.168.1.61: bytes=32 time=2ms TTL=64
Reply from 192.168.1.62: bytes=32 time=5ms TTL=64
Reply from 192.168.1.63: bytes=32 time<1ms TTL=128
Reply from 192.168.1.64: bytes=32 time<1ms TTL=128
…
Reply from 192.168.1.1: Destination host unreachable.
…[/code]
อธิบายคือไล่ ping เครื่องตั้งแต่ ip 192.168.1.1 ถึง 192.168.1.254 ถ้าเครื่องไหนตอบกลับมา (เปิดอยู่) แล้วเขียนไว้ในไฟล์ c:\ipaddresses.txt ถ้าเปิดดูก็จะเห็นตัวหนังสือประมาณ bytes=32 time=2ms TTL=64 ส่วนที่หาไม่เจอ ไม่ตอบกลับมา ก็จะได้ข้อความซ้ำๆ มาจาก router อย่าง Reply from 192.168.1.1: Destination host unreachable.
ดีกว่าไล่ดูทีละเครื่องเยอะเลย
Cr: Ping all addresses in network, windows
หนึ่งในความประหลาดของ windows 10 คือ มันสามารถลง linux ไว้ในตัวของมันได้แบบไม่ใช้ virtual server หรือ duel boot แต่ Microsoft เรียกมันว่า subsystem โดยเป็น linux ที่ได้มาจากพันธมิตร Ubuntu (ไม่เคยคิดเลยว่า 2 เจ้านี้จะทำงานร่วมกันได้)
สาเหตุที่ควรเพิ่ม linux เข้ามาในเครื่อง เพราะว่า php จริงๆแล้วมันเหมาะกับ linux มากกว่า แต่เพราะในการทำงานใน office เรายังจำเป็นจะต้องติดต่อกับ user อื่นๆ ที่เค้าใช้ windows และโปรแกรมที่ใช้ติดต่อกันมักจะเป็นโปรแกรมที่ทำงานได้แต่บน windows ซะส่วนใหญ่ การที่จะต้อง boot กลับไปกลับมาเพิ่ออ่านเอกสารซักตัวมันคงไม่สดวกจะลง visuals machine อย่าง oracle virtualbox , vmware ก็หนักเครื่อง และไม่สดวกที่จะใช้ docker
การติดตั้ง
รอให้มันติดตั้ง จะเห็นข้อความ[code language=”text” title=”command”]Downloading from the Windows Store… 100%
Extracting filesystem, this will take a few minutes…
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:[/code]ใส่ user และใส่ password หลัง Enter new UNIX password: และ Retype new UNIX password: ไม่ต้องเหมือนที่ใช้ใน windows เอาตัวเลขง่ายๆก็ได้ รอข้อความ[code language=”text” title=”command”]passwd: password updated successfully
Installation successful!
The environment will start momentarily…
Documentation is available at: https://aka.ms/wsldocs
[email protected]:/mnt/c/Windows/System32$[/code] เสร็จแล้วไฟล์จะถูกเขียนไว้ที่ ไฟล์จะถูกเขียนไว้ที่ %USERPROFILE%\AppData\Local\lxss
Linux ใน windows พร้อมรับใช้แล้วครับ ไม่ยากเลย แล้วไปต่อกันที่ด่านต่อไป ลง Nginx, MariaDB, PHP And phpMyAdmin ใน linux subsystem
อ่านเพิ่มเติม
notebook สมัยนี้หลายๆเครื่องไม่มี drive dvd / cd ติดมาแล้ว ขณะเดียวกัน flash drive มันถูกมากแค่อันละ 200 ก็พอที่จะใช้ลง windows xp, windows 7, windws 8, windows 10, linux แถม linux อีกตัวก็ยังได้เลย
เพิ่ม os / boot cd ได้โดย
ถ้าต้องการเพิ่มตัวติดตั้งหรือลบออกไปก็สามารถนำ flash drive มาเสียบกับคอมพิวเตอร์เครื่องไหนก็ได้ ไม่ต้องเป็นเครื่องเดิมในครั้งแรก จะเห็นรายชื่อ ด้านซ้ายมือ สามารถเลือกและคลิก Uninstall Distro เพื่อลบออกไป หรือถ้าต้องการเพิ่มเข้าไปใหม่ ก็ download มาแลัวเริ่ม Step 1 อีกครั้ง