Thứ Tư, 19 tháng 9, 2012

Note Java (1)

Sau những phân vân nên học C/C++, Java hay Python thì cuối cùng mình quyết định lựa chọn Java. Quá trình cài netbean/eclipse thì chả có vấn đề gì cả, tuy nhiên mới học thì nên luyện = Notepad++ và complie = cmd là hay nhất.
Đầu tiên là vào Computer/Properties , chọn tab Advanced rồi click vào Enviroment Variables, sau đó set 1 số biến hệ thống như sau
classpath : %classpath%;.
Path : C:\Program Files\Java\jdk1.7.0\bin
JAVA_HOME : C:\Program Files\Java\jdk1.7.0\

Sau đó bắt đầu code thử 1 đoạn code kinh điển là "Hello World".
Sau đó vào cmd gõ lệnh javac để complie và gõ lệnh java FileName ( lưu ý là ko có đuôi class ).
Nếu gặp lỗi:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp
Thì lỗi này nằm ở CLASSPATH, xem lại và fix
Nếu gặp lỗi này java.lang. Class UnsupportedClassVersionError thì check lại version của javac và java bằng 2 lệnh sau
javac -versíon
java -version
Nếu cùng là 1.7.0 thì ok, còn nếu lệch nhau thì phải cài lại bản jre7 ( mình cài bản jre6, dùng jdk1.7.0 nên nó ko thể chạy lệnh java FileName được). Phải mất 15ph hỏi anh google mới ngộ ra được

OK. Giờ thì bắt đầu cuộc chiến thôi nào \m/

P/s : nếu bạn muốn tìm tài liệu về java thì tốt nhất là dùng tutorial của chính Oracle, vừa đơn giản lại dễ hiểu

Thứ Hai, 3 tháng 9, 2012

GRUB recuse với Ubuntu LiveCD

Tình hình là muốn tăng dung lượng ổ C cho Windows lên bằng cách resize lại ổ D và merge cái ổ mới với ổ C. Mọi thứ thì chả có vấn đề gì nếu như ko cài dualboot với Ubuntu bản 11.04 ( hay bao nhiêu thì cũng có thể gặp vấn đề này ). Dùng Arconis làm khá nhanh việc resize ổ D, nhưng vấn đề đặt ra là khi reboot thì GRUB bị broken ( hỏng ) , con laptop tự động chạy vào giao diện
grub recuse>
nhưng mà chả gõ được cái lệnh nào trong cái này cả, nên vội vàng dùng unetbootin làm 1 cái USB cho bản ubuntu 12.04 ( bản cũ lồi tùm lum ra , ví dụ như random logout làm mất hết những thứ đang làm ... ). Lúc này thì có 2 giải pháp nghĩ ra :)) :
- GP1 : cài lại luôn ( đằng nào cũng nâng cấp ) và kết quả là mọi thứ OK vì GRUB lúc này đã được tạo lại .
- GP2 : search trên mạng cách config lại file grub.cfg ( nhớ mang máng là có lệnh chroot dùng trong trường hợp như thế này )

Và alê hấp chọn GP1 để làm, sau tầm 30ph thì có bản Ubuntu mới toanh, chạy khá mượt. Tuy vậy trong lúc cài đặt chọn giao diện TV nên khi vào gặp mấy cái thư mục rất chuối như kiểu Desktop --> Màn hình nền nên trong terminal đek dùng Tab được --> gỡ bỏ giao diện TV là okie :D, logout vào thì nó sẽ hiện thông báo là có muốn giữ tên thư mục kiểu cũ ko --> tất nhiên là ko rồi :D

Thứ 2 là sau khi resize thì phải merge, thì lúc này cái Arconis làm ăn rất chậm chạp, analyze ổ C mãi chả xong --> thay thế bằng bản EaseUS Partition Master 9.1.1 Home Edition thì rất nhanh chóng. Sau khi merge xong, reboot thì lại gặp cái vấn đề ở trên. Chọn GP2 để giải quyết cái vấn đề này ( chọn GP1 thì quá chuối + chả học hỏi được gì ). Sau 1 hồi hỏi anh Gúc-gồ thì cũng ra được cách chroot vào phân vùng root của ubuntu đã cài đăt. Sau đây là các bước làm :
- Tạo 1 USB/CD có bản Ubuntu giống với bản Ubuntu đã cài ( tốt nhất là như thế )

- Boot từ USB/CD , chọn Try Ubuntu without installing

- Ấn Ctrl + Alt + T để vào Terminal

- Xác định phân vùng nào có Ubuntu để mount, nếu ko biết thì có thể mount từ /dev/sda1 đến /dev/sdaX nào đó ( nếu ko phải thì umount ngay kẻo rắc rối về sau ), hoặc nếu biết được dung lượng của partition thì có thể check bằng lệnh sau
> sudo fdisk -l
> mount /dev/sdaX /mnt   ( lệnh unmount : umount /dev/sdaX hoặc umount /mnt )

- Tiếp theo là mount hệ thống file ảo sau :
> sudo mount --bind /dev /mnt/dev
> sudo mount --bind /proc /mnt/proc
> sudo mount --bind /sys /mnt/sys

- Để đảm bảo tiện ích ( câu lệnh ) về GRUB có thể hoạt động thì mount tiếp thư mục /usr
> sudo mount --bind /usr /mnt/usr

- Tiếp theo là chroot cho /mnt
> sudo chroot /mnt ( lúc này đã chuyển sang user root )

- Vì có thể ko có file /boot/grub/grub.cfg hoặc file này đã bị broken ( hoặc ko còn chính xác ) thì gõ lệnh sau
> update-grub2 ( có thẻ là update-grub cho các bản U cũ , nhưng bản 12.04 thì dùng Grub2)

- Sau đó là cài đặt lại grub
> grub-install /dev/sda ( chú ý ở đây là cho toàn bộ hard-disk nên ko có các số 0-9 ở sau sda, có thể là sdb hay sdc thì tùy vào trường hợp )

- Kiểm tra lại :
> grub-install --recheck /dev/sda

- Thoát khỏi chroot
> exit

- Tiến hành umount và reboot
> sudo umount /mnt/dev
> sudo umount /mnt/proc
> sudo umount /mnt/sys
> sudo umount /mnt/usr
> sudo umount /mnt/
> sudo reboot

Ok, mọi thứ đã trở lại bình thường , duy chỉ có 1 điều là giao diện boot trở thành màu đen, mất đi màu tím đặc trưng của U, nhưng vấn đề này ko quan trọng lắm, thích thì khôi phục lại dễ dàng.