How to restore a system after accidentally removing all kernels?

เหตุการณ์สมมติ… ทำไงดี??? เผลอรันคำสั่ง sudo apt-get remove –purge linux-image-3.19.0-* ได้ผลดังรูป (ดันกด y แล้ว enter อีกนะ) งานงอก …ลอง ls /boot เผื่อว่ายังมี Kernel เหลืออยู่บ้าง คุณพระ ไปหมดแล้ว… ตกใจ!!! reboot สิ… (กรั่ก ๆ) (หากไม่ตกใจจน reboot ไปซะก่อนสามารถพิมพ์คำสั่ง sudo apt-get install linux-image-generic ได้เลย) เงิบ!!! เหลือแต่ Memory Test…. แก้ไขโดยหาแผ่น Ubuntu Desktop ควรเป็นรุ่นเดียวกับรุ่นที่ติดตั้ง 12.04, 14.04 เป็นต้น (แต่แนะนำ 14.04 ถึงแม้จะกู้เครื่องที่เป็น 12.04) เมื่อบูตให้เลือก Try Ubuntu รอจน Desktop ขึ้นมาเรียบร้อย เปิด Terminal ขึ้นมา (กด ctrl+alt+t) พิมพ์คำสั่ง sudo fdisk /dev/sda -l (กรณีนี้รู้แน่ๆ ว่าติดตั้งบน /dev/sda) จากรูปมีสอง patition ที่น่าจะติดตั้ง Ubuntu เอาไว้ คือ /dev/sda1 และ /dev/sda5 ถ้าใช้แผ่น 12.04 จะไม่สามารถ mount ส่วนของ /dev/sda5 ได้เพราะมองไม่เห็น patition ที่เป็น LVM ตั้งแต่แรก แต่แผ่น 14.04 มองเห็น เมื่อคลิกที่ 103 GB Volume สามารถมองเห็นไฟล์ทั้งหมด ลองเปิดไฟล์ใน etc/fstab ดูไฟล์ข้างในว่า partition อยู่อย่างไร พบว่า /dev/sda1 เป็น boot และ /dev/mapper/ubuntu–vg-root เป็น / และ /dev/mapper/ubuntu–vg-swap_1 เป็น swap เราสนใจแค่ boot และ / สั่ง mount patition ตามลำดับต่อไปนี้ sudo mount /dev/mapper/ubuntu–vg-root /mnt sudo mount /dev/sda1 /mnt/boot sudo mount –bind /dev /mnt/dev sudo mount –bind /sys /mnt/sys sudo mount –bind /proc /mnt/proc สั่งคำ chroot ไปยัง /mnt สังเกตว่าหลังจากสั่งคำสั่ง chroot แล้ว prompt จะเปลี่ยนเป็น root@ubuntu:/# sudo chroot /mnt ให้ตรวจสอบแฟ้ม /etc/apt/sources.list ว่าใช้ repository ไหนด้วย หากไม่ได้ใช้ th.archive.ubuntu.com หรือ mirror.psu.ac.th หรือ mirrors.psu.ac.th หรือ mirror1.ku.ac.th ให้เปลี่ยนเป็น th.archive.ubuntu.com จากนั้นทดสอบ nslookup th.archive.ubuntu.com สำหรับคนที่ resolve ได้ (เรายินดีด้วย) ข้ามข้อ ๑๐ ไปได้เลย แก้ไขแฟ้ม /etc/hosts สำหรับเครื่องที่อยู่นอกมหาวิทยาลัยเพิ่มข้อความว่า 192.100.77.186 th.archive.ubuntu.com สำหรับเครื่องที่อยู่ภายในมหาวิทยาลัยเพิ่มข้อความว่า 192.168.101.34 th.archive.ubuntu.com  สั่ง apt  install linux-image-generic รอจนเสร็จได้ข้อความสุดท้ายประมาณว่า  Setting up linux-image-generic

Read More »

Dialog cannot open tty-output

dialog บน Oracle Enterprise Linux และ Ubuntu ไม่เหมือนกัน (ทำไมล่ะ…ไม่ทราบครับ) สร้างสคริปต์ชื่อ file.sh มีข้อความว่า #!/bin/bash FILE=$(dialog –ascii-lines –title “Delete a file” –stdout \ –title “Please choose a file to delete” –fselect /tmp/ 14 48) echo $FILE บน Ubuntu รันได้ผลลัพธ์ แต่บน Oracle Enterprise Linux ต้องเปลี่ยนสคริปต์มีสองแบบ แบบแรก #!/bin/sh dialog –ascii-lines –title “Delete a file” –stdout \ –title “Please choose a file to delete” –fselect /tmp/ 14 48 2>/tmp/file.tmp echo $(cat /tmp/file.tmp) แบบที่สอง #!/bin/bash FILE=$(dialog –ascii-lines –title “Delete a file” –stdout \ –title “Please choose a file to delete” –fselect /tmp/ 14 48 2>&1>/dev/tty) echo $FILE ผลลัพธ์ของทั้งสองแบบให้ผลเหมือนกันคือ จบ..วันนี้ห้วนไปหน่อย ขอให้สนุกครับ

Read More »

Mozilla Thunderbird & Google Calendar

1. ติดตั้ง extension 2 ตัวใน Thunderbird ได้แก่ Lightning และ Provider for Google Calendar ดังรูป 2. รีสตาร์ท Thunderbird จะพบปุ่ม อยู่ทางมุมบนขวา 3. เข้า gmail.psu.ac.th ล็อคอินให้เรียบร้อย คลิก  แล้วเลือก Calendar 4. ที่หน้า Calendar คลิก เลือก Setting 5. คลิก Calenders ทีี่มุมซ้ายบน 6. เลือกปฏิทินที่ต้องการ 7. ตรวจสอบว่าใช่ปฏิทินที่ต้องการหรือไม่ดูที่ ช่อง Calender Owner ว่าเป็นอันเดียวกับ Username ที่ล็อคอินเข้า gmail 8. เลื่อนดูด้านล่างในส่วนของ Private Address: 9. คลิกขวาที่ ICAL เลือก Copy Link Location 10. กลับมาที่ Thunderbird กดปุ่ม เพื่อเปิดปฏิทิน 11. คลิกขวาที่ช่องว่างฝั่งซ้ายมือใต้คำว่า Calendar เลือก New Calendar 12. ได้หน้าต่าง Create New Calendar เลือก Google Calendar กด Next 13. กด Ctrl-v เพื่อ paste URL ของปฏิทินที่ Copy มาในข้อก่อนหน้า 14. กด back 1 ครั้งแล้วกด Next ใหม่ (อันนี้น่าจะเป็นบักของ Ubuntu 14.10) 15. กด Next 16. จะมีหน้าต่างเพื่อยืนยันตัวตนของ Google ปรากฎขึ้นมา 17.  กด Sign in จะได้อีกหน้าต่างดังรูป กดยอมรับ 18. จะมีหน้าให้เลือกปฏิทินที่ต้องการอีกครั้งกด Next 19. จะมีหน้าให้ ยืนยันตัวตน และหน้าเพื่อขอสิทธิ์การเข้าถึง อีกรอบกดให้ Sign in และยอมรับ 20. กด Finish 21. ก็จะได้ปฏิทินเพิ่มมาตามต้องการ 22. ทั้งหมดนี้ทำบน Ubuntu 14.10 บน Windows ก็น่าจะทำเหมือนกัน 23. สามารถเพิ่มลบเหตุการณ์ผ่าน Thunderbird ได้เลยไม่ต้องเข้าเว็บอีก … 24. จากที่ทดสอบหนึ่ง Profile ของ Thunderbird สามารถมี Google Calendar ได้เพียง account เดียว 25. ขอให้สนุกครับ

Read More »

เปลี่ยน Certificate!?

เนื่อง Certificate *.psu.ac.th จาก Comodo เดิมซึ่งกลายเป็น Cert. ที่จัดว่า WEAK แล้ว ทางเจ้าหน้าที่เครือข่ายจึงได้ขอ Cert. ใหม่มา ที่ Strong ขึ้น 🙂 ก็ต้องมานั่งเปลี่ยน Cert. ในเครื่องที่ให้บริการขั้นตอนดังนี้ Download Cert. ใหม่มาซึ่งต้องติดต่อขอไปที่ Net@dmin โดยผ่านช่องทางของ help.psu.ac.th ไฟล์ที่จะโหลดมาใช้งานมีทั้งหมด 3 ไฟล์ได้แก่ STAR_psu_ac_th.ca-bundle, STAR_psu_ac_th.crt และ STAR_psu_ac_th_key.key เมื่อดาวน์โหลดมาเสร็จแล้วให้เอาไปแทนที่เก่าได้เลย ในตัวอย่างนี้จะเก็บไว้ที่ /etc/ssl/private ทีนี้ มาดู config เก่าของ apache2 <IfModule mod_ssl.c> <VirtualHost *:443> ServerName bahamut.psu.ac.th ServerAdmin cc-server-admin@group.psu.ac.th DocumentRoot “/var/www/html” ErrorLog ${APACHE_LOG_DIR}/bahamut.ssl_error_log TransferLog ${APACHE_LOG_DIR}/bahamut.ssl_access_log LogLevel warn SSLEngine on SSLCertificateFile /etc/ssl/private/STAR_psu_ac_th.crt SSLCertificateKeyFile /etc/ssl/private/STAR_psu_ac_th.key SSLCertificateChainFile /etc/ssl/private/STAR_psu_ac_th.ca-bundle RewriteEngine On RewriteRule /avl https://licensing.psu.ac.th <Directory /var/www/licensing> AllowOverride All Order deny,allow Deny from all Allow from 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 </Directory> </VirtualHost> </IfModule> จะเห็นว่าไฟล์ชื่อไม่ตรงอยู่ไฟล์หนึ่งคือ STAR_psu_ac_th.key ก็เปลี่ยนชื่อให้ตรง เป็นอันเสร็จ แต่ … เนื่องจากเป็น Cert. ใหม่ เพื่อเพิ่มความแข็งแรง เจ้าหน้าที่เครือข่ายจึงได้กำหนด Passphrase ไว้ด้วย ต้องแก้ไขแฟ้ม /etc/apache2/mods-enabled/ssl.conf ในบรรทัดที่เขียนว่า SSLPassPhraseDialog exec:/usr/share/apache2/ask-for-passphrase ให้แก้ /usr/share/apache2/ask-for-passphrase เป็น /etc/ssl/private/passphrase-script แล้วสร้างแฟ้ม /etc/ssl/private/passphrase-script มีข้อความว่า #!/bin/sh echo “passphrase ที่ได้รับแจ้งจาก Net@dmin” chmod +x /etc/ssl/private/passphrase-script และทดสอบ script ด้วยว่าผลลัพธ์ที่ได้ตรงกับ passphrase ที่ Net@dmin แจ้งมา restart apache2 ด้วยคำสั่ง sudo service apache2 restart ถ้า passphrase ที่ใส่ไว้ในแฟ้ม passphrase-script ถูกต้องจะ restart สำเร็จ เป็นอันเสร็จ สิ่งที่ต้องแก้เพื่อให้ได้ A+ ในการทดสอบกับเว็บ https://www.ssllabs.com/ssltest/analyze.html แก้ไขแฟ้ม /etc/apache2/mods-enabled/ssl.conf โดยแก้ไข/เพิ่ม ข้อความดังต่อไปนี้ SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES: RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS SSLHonorCipherOrder on SSLProtocol all -SSLv3 -SSLv2 SSLCompression off sudo a2enmod headers เพื่อให้ module headers ของ apache2 ทำงาน แก้ไขแฟ้มของไซต์ที่เปิด ssl ไว้ จากตัวอย่างนี้คือ /etc/apache2/sites-enabled/licensing-ssl.conf โดยเพิ่มข้อความว่า Header add Strict-Transport-Security “max-age=15768000;includeSubDomains” ตัวอย่าง <IfModule mod_ssl.c> <VirtualHost *:443> ServerName licensing.psu.ac.th ServerAdmin cc-server-admin@group.psu.ac.th DocumentRoot “/var/www/html/avl” ErrorLog ${APACHE_LOG_DIR}/licensing.ssl_error_log TransferLog ${APACHE_LOG_DIR}/licensing.ssl_access_log LogLevel warn SSLEngine on Header

Read More »

How to: PSU OpenVPN Ubuntu 14.04/15.04/15.10/Linux Mint 17/17.1/17.2

ติดตั้ง net-workmanager-openvpn คลิก Ubuntu Button แล้วพิมพ์ netw เลือก Network Connections ได้ดังภาพ คลิก Add ได้ดังภาพ เลือก OpenVPN แล้วคลิก Create… กรอกการตั้งค่าต่างๆ ดังภาพ โดยสามารถโหลด PSUCAcert.cer ได้จาก http://netserv.cc.psu.ac.th/documents/doc_download/269-vpnpackageforallwin7 http://ftp.psu.ac.th/pub/openvpn/openvpncer.zip โหลดมาแล้วให้คลายซิบแล้วแยกเอาไฟล์ PSUCAcert.cer ออกมา กรอก User name และ Password ของตัวเอง คลิก Advanced เลือกดัังภาพ กด OK ออกมาแล้วคลิกที่ IPv4 Settings ตั้งค่าตามภาพ คลิก IPv6 Settings ตั้งค่าตามภาพ กลับมาแท็บ VPN คลิก Save… ได้ดังภาพ คลิก Close เหลือบมองมุมขวาบนจะมีรูปภาพ หรือ ให้คลิกที่รูปนี้แล้วเลือก VPN Connection -> PSU รอจนมีข้อความดังภาพปรากฎที่มุมบนขวา เป็นอันเสร็จ สำหรับ Linux Mint 17 ติดตั้ง network-manager-openvpn-gnome แทน นอกนั้นเหมือนกัน เพิ่มเติม เพื่อให้สามารถคลายแฟ้ม vpn_package_for_all_xp-vista-7.exe ได้ต้องติดตั้งโปแกรมเหล่านี้เพิ่มเติม p7zip-rar, p7zip-full, unace, unrar, zip, unzip, sharutils, rar, uudeview mpack, arj, cabextract, file-roller โดยพิมพ์คำสั่ง sudo apt-get install p7zip-rar p7zip-full unace unrar zip unzip sharutils rar uudeview mpack arj cabextract file-roller จบจริงๆ … ขอให้สนุกครับ

Read More »