Những câu hỏi thường gặp về Linux - Nguyễn Thái Ngọc Duy
Bạn đang xem 20 trang mẫu của tài liệu "Những câu hỏi thường gặp về Linux - Nguyễn Thái Ngọc Duy", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- nhung_cau_hoi_thuong_gap_ve_linux_nguyen_thai_ngoc_duy.pdf
Nội dung text: Những câu hỏi thường gặp về Linux - Nguyễn Thái Ngọc Duy
- Những câu hỏi thường gặp về Linux Nguyễn Thái Ngọc Duy pclouds@users.sourceforge.net Lý Trọng Văn zow82@yahoo.co.uk Đây là danh sách Các câu hỏi thường gặp (Frequently Asked Questions) của Linux, một hệ điều hành tự đo chạy trên nhiều hệ thống máy tính khác nhau. Tài liệu này được tổng hợp từ Linux-FAQ ( Tài liệu này trong đang trong giai đoạn dịch phác thảo. Rất mong nhận các ý kiến đóng góp, phê bình về tài liệu này. Mọi ý kiến xin gửi đến . Mục lục Giới thiệu và thông tin chung 1 Nguồn và tài nguyên mạng 9 Tính tương thích với các hệ điều hành khác 19 Hệ thống tập tin, đĩa, và ổ đĩa 25 Porting, biên dịch và lấy chương trình 32 Giải pháp cho các vấn đề linh tinh thông thường 37 Làm điều này như thế nào hoặc tìm hiểu cái kia ra sao 45 Thông tin linh tinh và các câu hỏi được trả lời 58 Các thông báo lỗi thường gặp 63 X Window System 70 Tìm trợ giúp sâu hơn như thế nào 73 1
- Những câu hỏi thường gặp về Linux Giới thiệu và thông tin chung H: Linux là gì? Đ: Linux là một hệ điều hành tương tự như hệ điều hành UNIX của AT&T Bell Labs. Linux có mọi đặc tính của một hệ điều hành hiện đại: hệ thống đa nhiệm, đa tuyến đoạn, bộ nhớ ảo, thư viện động, chương trình dùng chung, tải theo nhu cầu, quản lý bộ nhớ, các môđun driver thiết bị, video frame buffering, và mạng TCP/IP. Tuy nhiên, hầu hết mọi người xem hệ điều hành, các phần mềm hệ thống và phần mềm ứng dụng là “Linux”, và quy ước này cũng được dùng trong FAQ này. Linux Torvalds và nhóm lập trình viên tình nguyện từ khắp nơi trên Internet đã viết (và vẫn tiếp tục viết) Linux từ con số không. Hạt nhân Linux (Linux kernel) được phân phối theo những điều khoản của Giấy phép GNU GPL (GNU General Public License). (“Giấy phép mã nguồn mở Linux là gì?”) Các phiên bản của hạt nhân Linux đặt tại Hãy xem thêm các bài viết Wikipedia tại Linux kernel ( và Linux operating system ( system). H: Linux hỗ trợ hệ máy nào? Đ: Linux ban đầu được viết cho máy PC dùng bộ vi xử lý của Intel, dùng các tính năng phần cứng của bộ vi xử lý 80386 và những bộ vi xử lý thế hệ sau của 80386. Họ máy 80386 bao gồm 80486, và tất cả các chip Pentium. Tuy nhiên, ngày nay Linux đã có thể được dùng trên nhiều hệ máy khác nhau (“Chuyển qua các hệ máy khác”) Có nhiều bản phân phối Linux (Linux distribution) đặc biệt dành riêng cho các máy cầm tay và máy di động. Đặc tả API bộ công cụ phát triển cho Bộ vi xử lý Crusoe Smart được phát triển bởi Transmeta Corporation đặt tại Thông tin về bản phân phó6i Linux cho Compaq iPAQ đặt tại Ngoài ra hãy tham khảo Linux INFO-SHEET ( để biết thêm chi tiết cũng như các câu trả lời cho “Tài liệu ở đâu?”, “Phần cứng nào được hỗ trợ?”, và “Chuyển qua các hệ máy khác”, bên dưới. H: Các phiên bản Linux hoạt động như thế nào? Đ: Tại thời điểm này, đã có vài phiên bản Linux “ổn định”1, và một phiên bản “phát triển”2. Không giống như các phần mềm độc quyền, những phiên bản ổn định cũ vẫn tiếp tục được hỗ trợ chừng nào còn được dùng. Đó là lý do tại sao có nhiều phiên bản cùng tồn tại. Số hiệu phiên bản Linux tuân theo chuẩn truyền thống. Mỗi phiên bản gồm ba chữ số, v.d. X.Y.Z. Số “X” chỉ tăng khi xảy ra những thay đổi rất quan trọng, những thay đổi làm cho phần mềm không thể hoạt động đúng đắn với những phần mềm khác. Điều này rất hiếm khi xảy ra - trong lịch sử Linux chỉ xảy ra đúng một lần. 2
- Những câu hỏi thường gặp về Linux Số “Y” cho biết số series phát triển bạn đang dùng. Một hạt nhân ổn định luôn có số Y là số chẵn, trong khi một hạt nhân đang phát triển sẽ dùng số lẻ Số “Z” xác định chính xác phiên bản của hạt nhân bạn dùng, nó được tăng mỗi phiên bản Số hiệu phiên bản hiện thời là 2.4.x, và phiên bản đang phát triển là 2.5.x. Tuy nhiên nhiều người tiếp tục dùng hạt nhân 2.2.x và thậm chí cả 2.0.x, và những phiên bản này vẫn tiếp tục được sửa chữa. Series đang phát triển nơi các nhà phát triển Linux đang hoạt động tích cực. Series này luôn được công bố rộng rãi để xem, kiểm tra, và thậm chí để sử dụng, mặc dù không nên dùng series này! Cuối cùng, series 2.5.x sẽ trở thành hạt nhân 2.6.0 và phiên bản ổn định mới được tạo ra, và series phát triển 2.7.x sẽ tiếp tục. Hoặc nếu có những thay đổi thật sự quan trọng, có thể nó sẽ trở thành 3.0.0, và series 3.1.x sẽ tiếp tục. H: Tôi nên bắt đầu từ đâu? Đ: Nếu bạn chưa biết Linux, bạn nên bắt đầu bằng cách mua hoặc tải về một bản phân phối Linux phổ dụng. Một bản phân phối là một hệ điều hành hoàn chỉnh, bao gồn hạt nhân Linux và các tiện ích, các phần mềm cần thiết, sẵn sàng để cài đặt và sử dụng. Hầu hết các bản phân phối chứa hàng ngàn gói phần mềm (software package), bao gồm các giao diện đồ hoạ, bộ phần mềm văn phòng, và các trò chơi Có một nhóm các bản phân phối chính, và bạn nên dùng chúng. Để biết thêm thông tin về các bản phân phối này và cách cài đặt chúng, hãy xem CD-Distributions-EN-HOWTO ( thuộc Linux Documentation Project. Ngoài ra, danh sách các bản phân phối được cập nhật hàng tuần có tại Trước khi bạn chọn bản phân phối muốn dùng, hãy đọc các mô tả cẩn thận và so sánh với nhu cầu của bạn. Mỗi bản phân phối được thiết kế cho một loại người dùng riêng biệt. Vài bản được tối ưu để hoạt động như server, vài bản khác được dùng để chơi game, vài bản khác lại được dùng cho máy để bàn và các ứng dụng văn phòng. Có một số ít bản phân phối được xem là sự lựa chọn cho người dùng mới: • Red Hat đặc biệt tốt cho server • Mandrake là hệ thống để bàn xuất sắc • SuSE cũng là hệ thống để bàn xuất sắc Ngoài ra còn có một số lớn các phiên bản được phân phối ít phổ dụng hơn và thích hợp với các nhu cầu nội bộ hoặc dành cho quốc gia. Phần lớn trong số đó nằm tại H: Có thể lấy một bản phân phối như thế nào? Đ: Nếu bạn có khả năng, hãy mua một bản phân phối. Các bản phân phối Linux cực kỳ rẻ - thường vào khoảng 30$ cho một hệ thống hoàn chỉnh, và đâu đó trong khoảng 70$ đến 150$ cho một hệ thống lớn hơn với nhiều phần mềm server hơn hoặc nhiều công cụ phát triển hơn. Thậm chí với bản phân phối “cơ bản” 30$ cũng tương đương với hàng ngàn đô la các công cụ độc quyền, và chúng rất có giá trị. Các nhà phân phối dùng tiến của bạn để đầu tư phát triển, và thường nằm ngoài các dự án mã nguồn mở (open source). Với các bản phân phối thương mại, bạn có thể đặt mua thông qua web site của công ty đó. 3
- Những câu hỏi thường gặp về Linux Nếu bạn dùng Debian GNU/Linux, một bản phân phối phi lợi nhuận, do người tình nguyện tạo ra, bạn có thể ủng hộ bằng tiền cho họ. Đ: Có vài website bán các đĩa CD Linux rất rẻ. Hãy thử: • Đ: Các bản phân phối có thể được tải về từ trang chủ của các bản phân phối đó. Đây là yêu cầu trong các điều khoản giấy phép của phần mềm, vì thế nếu bạn không thể mua một bản phân phối, bạn có thể lấy chúng theo cách này. Vài người dung hòa giữa trả tiền và tải về từ mạng, ví dụ, mua mỗi phiên bản chính (như 6.0) nhưng tải về các phiên bản phụ (như 6.1 và 6.2). Ngoài ra, nhiều bản phân phối được lưu tại: và Đ: Vài nhà sản xuất phần cứng kèm theo bản Linux cài đặt sẵn trên hệ thống của họ. Tuy nhiên, đôi khi rất khó mua chúng - họ cung cấp Linux chỉ trên một số ít hệ thống, thường là server, hoặc họ yêu cầu bạn tới phần "Linux" trên website của họ. H: Cài đặt Linux như thế nào? Đ: Khi đã có một bản phân phối, nó sẽ chứa các chỉ dẫn để cài đặt. Mỗi bản phân phối có chương trình cài đặt riêng. Đ: Có một tài liệu cài đặt rất hoàn chỉnh tại Đ: Vài bản phân phối (v.d. Debian GNU/Linux) có thể được cài đặt qua FTP vô danh trên mạng. Nhưng, trừ khi bạn có cáp, DSL, hoặc có khả năng truy cập Internet với băng thông rộng, còn nếu không thì cách cài đặt này không thực tế lắm vì kích thước các bản phân phối rất lớn ("FTP của Linux ở đâu?") Các bản tin trên Usenet, bao gồm FAQ, được lưu ở Hãy tìm chữ “comp.os.linux.*”, “alt.uu.comp.os.linux.*”, hoặc bất cứ thứ gì phù hợp, bạn sẽ nhận được các bài viết trên Usenet. ("Có những Nhóm Tin (newsgroup) nào cho Linux?") H: Linux hỗ trợ phần mềm nào? Đ: Linux chạy được tất cả các tiện ích mã nguồn mở chuẩn, như GCC, (X)Emacs, X Window System, mọi tiện ích Unix chuẩn, TCP/IP (bao gồm SLIP và PPP), và hàng trăm chương trình đã được mọi người hiệu chỉnh để chạy trên Linux. Có một trình mô phỏng DOS, gọi là DOSEMU, cho phép Linux chạy các chương trình được viết trên DOS. Phiên bản ổn định mới nhất là 0.98.3. FTP đặt tại Web site tại 4
- Những câu hỏi thường gặp về Linux Trình mô phỏng có thể chạy chính DOS và một vài (nhưng không phải tất cả) các ứng dụng DOS. Hãy xem tập tin README để xác định nên lấy phiên bản nào. Ngoài ra nên xem DOSEMU-HOWTO ( (tuy nhiên, nó không đề cập đến những phiên bản mới nhất), tại WINE, trình mô phỏng Microsoft Windows, vẫn đang trong giai đoạn phát triển. ("Linux có thể chạy các chương trình trên Microsoft Windows không?") Trình mô phỏng Chuẩn Tương thích Nhị phân Intel (Intel Binary Compatibility Standard - iBCS2) cho SVR4 ELF và SVR3.2 COFF có thể được chọn lúc biên dịch. Thông tin về iBCS2 có tại Để biết thêm thông tin, hãy xem INFO-SHEET ( Vài công ty đưa ra các phần mềm thương mại. Họ thường công bố trên comp.os.linux.announce. Hãy thử tìm trong kho lưu. ("News Groups có còn được lưu ở chỗ nào khác không?"). H: Tìm các phần mềm đặc biệt như thế nào? Đ: Trước hết hãy tìm trong Linux Software Map, tại: và trên các địa chỉ FTP khác. Có một máy tìm kiếm tại Ngoài ra hãy tìm tại Freshmeat ( Đây là nơi công bố các phầm mềm mới. Freshmeat là nơi liên tục cập nhật các thông báo về phần mềm mới, cập nhật các phần mềm cũ trong Linux, liên kết tới URL của các phần mềm đó. Các địa chỉ FTP ("FTP của Linux ở đâu?") thường có tập tin ls-lR hoặc thư mục INDEX liệt kê danh sách tập tin. Bạn có thể tìm bằng cách dùng lệnh grep hoặc một bộ soạn thảo văn bản. Các tập tin liệt kê loại này có thể rất lớn nên rất khó dùng chúng để tìm kiếm nhanh. Ngoài ra hãy tìm tại Linux Projects Map: Có một máy tìm kiếm Linux FTP archive tại: Tìm từ “Linux” trên Web cung cấp một lượng tham chiếu dồi dào. ("Những thứ khác về Linux trên Web ở đâu?") Nếu bạn không tìm được thứ gì, bạn có thể tải mã nguồn của chương trình về và tự biên dịch chúng. Hãy xem ("Làm sao để chuyển XXX sang Linux?"). Nếu đó là một gói phầm mềm lớn và cần một vài hiệu chỉnh để chạy, hãy gửi thông báo lên comp.os.linux.development.apps. Điều này rất hiếm khi xảy ra vì Linux rất phổ dụng. Một lượng lớn các phần mềm quan trọng trên các hệ thống họ Unix đã được chuyển sang Linux từ lâu. Nếu bạn biên dịch một chương trình lơn, vui lòng upload nó lên một hoặc nhiều FTP, và thông báo trên comp.os.linux.announce (gửi thông báo của bạn tới linux-announce@news.ornl.gov (mailto:linux-announce@news.ornl.gov)). Nếu bạn đang tìm một chương trình, rất có khả năng một người nào đó đã viết chương trình đó rồi. FAQ comp.sources.wanted có những chỉ dẫn để tìm mã nguồn của các chương trình đó. 5
- Những câu hỏi thường gặp về Linux H: Phần cứng nào được hỗ trợ? Đ: Một bản cài đặt Linux tối thiểu yêu cầu một hệ máy được hỗ trợ, với ít nhất 2Mb RAM, và một ổ đĩa mềm. Nhưng để tận dụng sức mạnh Linux, bạn phải cần nhiều RAM và đĩa cứng hơn. Hãy xem: "Chuyển qua các hệ máy khác", "Yêu cầu đĩa cho cài đặt tối thiểu, cài đặt server, và cài đặt trạn làm việc là gì?", và "Yêu cầu bộ nhớ tối thiểu và tối đa là bao nhiêu?" Các máy tính tương thích PC, CPU Intel, cần ít nhất là bộ vi xử lý 80386 để chạy hạt nhân Linux chuẩn. Linux, gồm X Window System, chạy trên hầu hết laptop. Hãy tham khảo câu trả lời của "Làm thế nào để biết Notebook có đang chạy Linux hay không?". Có một lượng lớn thông tin về các máy PC đặc biệt, về card màn hình, bộ điều khiển đĩa, và các loại phần cứng khác. Hãy tham khảo INFO-SHEET ( Laptop-HOWTO ( và Unix-Hardware-Buyer-HOWTO ( ("Tài liệu ở đâu?") H: Chuyển qua các hệ máy khác Đ: Web site, Tổng quan về Linux Ports: cung cấp danh sách known ports. Một địa chỉ khác chứa danh sách port là: Ngoài ra, các thông tin sau bàn về ports xác định: Trên hệ máy Intel, VESA Local Bus và PCI bus được hỗ trợ. MCA (bus độc quyền của IBM) và ổ cứng ESDI hầu hết đường hỗ trợ. Những thông tin sâu hơn về bus MCA và card nào được Linux hỗ trợ có tại trang web Micro Channel Linux, Ngoài ra hãy tham khảo câu trả lời: "Những thứ khác về Linux trên Web ở đâu?" Linux cũng có thể chạy trên 8086, được biết như là Embeddable Linux Kernel Subset (ELKS). Đây là hạt nhân Linux 16 bit được dùng chủ yếu trong các hệ thống nhúng, đặt tại: Linux chuẩn không chạy trên 8086 và 80286 vì cần tính năng quản lý task và bộ nhớ chỉ có trên 80386 và các thế hệ sau. Linux hỗ trợ kiến trúc đa xử lý Intel MP. Hãy xem tập tin Documentation/smp.tex trong bản phân phối mã nguồn Linux. Một dự án đang được triển khai để cho phép Linux hoạt động với hệ máy dựa trên 68000 như Amigas và Ataris. Linux/m68K FAQ đặt tại Địa chỉ trang chủ của Linux/m68k tại Jes Sorensen đã chuyển Linux qua m68k cho Amiga, đặt tại FAQ Cài đặt (Ron Flory) cho gói này đặt tại Ngoài ra còn có mailing list linux-680x0. ("Mailing List ở đâu?") Có FTP cho dự án Linux-m68k tại ftp.phil.uni-sb.de/pub/atari/linux-68k, nhưng địa chỉ này không còn tồn tại nữa. Debian GNU/Linux đang được chuyển qua hệ máy Alpha, Sparc, PowerPC, và ARM. Có các mailing lists cho các công việc này. Hãy xem 6
- Những câu hỏi thường gặp về Linux One of the Linux-PPC project pages has moved recently. Its location is and the archive site is Trang hỗ trợ Linux-PPC đặt tại Ở đó bạn sẽ tìm thấy kernel được phân phối với Linux. Có hai địa chỉ cho Linux iMac port: and 64-bit DEC Alpha/AXP port đặt tại Mailing list tại vger.redhat.com: ("Mailing List ở đâu?") Ralf Baechle đang port sang MIPS, ban đầu cho R4600 trên máy Deskstation Tyne. FTP cho Linux-MIPS đặt tại và Những người quan tâm có thể gửi những câu hỏi hoặc hỗ trợ họ bằng cách gửi thư tới linux@waldorf-gmbh.de (mailto:linux@waldorf-gmbh.de). Ngoài ra (đã từng) có một kênh MIPS tại Linux Activists mail server và linux-mips mailing list. ("Mailing List ở đâu?") Ngoài ra hiện thời Linux đang được chuyển sang hệ máy ARM. Một trong số này là dành cho ARM3, fitted to the Acorn A5000, và bao gồm driver I/O cho 82710/11. Cái còn lại là ARM610 của Acorn RISC PC. RISC PC port hiện đang ở giai đoạn giữa, cần viết lại phần xử lý bộ nhớ. A5000 port chỉ được dùng để thử nghiệm. Bản chính thức sẽ được công bố trong thời gian gần đây. Để biết thêm thông tin cập nhật, hãy đọc nhóm tin comp.sys.acorn.misc. FAQ đặt tại Dự án Linux SPARC is a hotbed of activity. There is a FAQ and plenty of other information available from the UltraLinux page, Trang chủ của UltraSPARC port ("UltraPenguin") đặt tại mặc dù URL này có thể không còn tồn tại. Ngoài ra còn có bản Linux cho máy SGI/Indy ("Hardhat"). URL là H: Yêu cầu đĩa cho cài đặt tối thiểu, cài đặt server, và cài đặt trạn làm việc là gì? Đ: Linux cần khoản 10Mb cho bản cài đặt tối thiểu, thích hợp để thử Linux, và không gì khác. Bạn có thể cài đặt bản server, bao gồm X Window System GUI, với khoảng 80Mb. Cài đặt Debian GNU/Linux khoảng 500Mb1GB, bao gồm mã nguồn hạt nhân, chỗ cho các tập tin người dùng, và vùng spool. Cài đặt bản phân phối thương mại có môi trường đồ họa GUI, word processor thương mại, và bộ phần mềm văn phòng, sẽ chiếm khoảng 15.1 GB. H: Yêu cầu bộ nhớ tối thiểu và tối đa là bao nhiêu? Đ: Linux cần ít nhất 4MB, và bạn sẽ cần dùng tiến trình cài đặt đặc biệt cho tới khi cài đặt disk swap space. Linux sẽ chạy thoải mái với 4MB RAM, mặc dù chạy các ứng dụng đồ họa GUI thì không thực tế vì rất chậm (vì phải liên tục dùng swap). Vài ứng dụng, như StarOffice, cần 32 MB bộ nhớ vật lý, và biên dịch mã C++ có thể ngốn 100MB vùng nhớ vật lý và vùng nhớ ảo một cách dễ dàng. 7
- Những câu hỏi thường gặp về Linux Có một bản phân phối, "Small Linux", sẽ chạy trên máy với 2MB RAM. Hãy tham khảo: "FTP của Linux ở đâu?" Một số người hỏi làm thế nào để dùng nhiều hơn 64MB, giới hạn trên mặc định của hầu hết hạt nhân. Hoặc là nhập vào tại dấu nhắc BOOT lilo:: mem=XXM Hoặc đặt dòng sau vào tập tin /etc/lilo.conf: append="mem=XXM" Tham số "XXM" là khoảng bộ nhớ, tính theo megabyte; ví dụ, "128M." Nếu đã có chỉ thị "append=" trong /etc/lilo.conf, hãy thêm vào chỉ thị mem= tại cuối đối số đã có, và cách đối số cuối cùng bằng khoảng trắng; v.d.: # Chỉ là ví dụ; đừng sử dụng. append="parport=0x3bc,none serial=0x3f8,4 mem=XXM" Nhớ chạy lệnh "lilo" để cài đặt cấu hình mới. Nếu Linux vẫn không nhận ra vùng nhớ mới, có thể cần vài tham số bổ sung cho hạt nhân. Hay tham khảo tập tin /usr/src/linux/Documentation/memory.txt trong mã nguồn hạt nhân. Để biết thêm thông tin về LILO, hãy tham khảo tài liệu hướng dẫn của lilo và lilo.conf, tài liệu đặt tại /usr/doc/lilo, the LILO-HOWTO (), và câu trả lời cho: "Làm thế nào để đặt cấu hình lúc khởi động?", bên dưới. H: Linux có hỗ trợ các thiết bị USB? Đ: Tại thời điểm này Linux hỗ trợ khoảng vài chục thiết bị USB, và công việc vẫn đang tiếp tục để hỗ trợ các driver thiết bị bổ sung. Có một trang web chuyên về chủ đề này, tại Ngoài ra còn có một tài liệu LDP, tại: ("Những thứ khác về Linux trên Web ở đâu?") Hỗ trợ USB phiên bản 2.0 đã được thêm vào gần đây trong hạt nhân đang phát triển, nhưng vẫn chưa có trong hạt nhân 2.4. H: Giấy phép mã nguồn mở Linux là gì? Đ: Nhãn hiệu thương mại Linux thuộc về Linus Torvalds. Ông ta đã quyết định dùng Giấy phép Công cộng GNU (GNU General Public License) cho Linux. Nói chung, giấy phép này cho phép bạn tự đo sao chép, thay đổi, phân phối Linux, nhưng bạn không thể ấn định bất kỳ ràng buộc nào trên các bản phân phối đó, và bạn phải công khai mã nguồn. FAQ cho GPL đặt tại: 8
- Những câu hỏi thường gặp về Linux Giấy phép này không giống như Vùng công cộng3. Hãy xem Copyright FAQ, để biết thêm chi tiết. Chi tiết đầy đủ nằm trong tập tin COPYING trong mã nguồn hạt nhân Linux (có lẽ nằm trong /usr/src/linux trên hệ thống của bạn). Giấy phép của những tiện ích và chường trình trong bộ phân phối rất khác nhau. Nhiều đoạn mã thuộc dự án GNU tại Free Software Foundation, và sử dụng giấy phép GPL. Vài chương trình quan trọng khác dùng giấy phép BSD và các loại giấy phép khác. Chú ý rằng việc thảo luận về giá trị và những thứ khác của GPL nên được gửi lên gnu.misc.discuss, đừng gửi lên nhóm comp.os.linux. Với những legal question, hãy tham khảo câu trả lời: (“Where Are Linux Legal Issues Discussed?”) H: Linux có phải là *nix? Đ: Một cách chính thức, một hệ điều hành không thể được gọi là UNIX cho tới khi nó vượt qua cuộc kiểm tra chứng nhận của Open Group, và hỗ trợ các API cần thiết. Rất ít hệ điều hành thương mại vượt qua được các bài kiểm tra của Open Group. Để biết thêm thông tin, hãy xem Đ: Một cách không chính thức, Linux rất giống với những hệ thống thường được gọi là Unix, và trong nhiều trường hợp thì chúng tương đương nhau. Nguồn và tài nguyên mạng H: Phiên bản hạt nhân mới nhất ở đâu trên Internet? Đ: Cách cập nhật hạt nhân dễ nhất là cập nhật trực tiếp từ bản phân phối bạn đang dùng. Đ: Nếu bạn muốn hoặc cần cấu hình và biên dịch kernel cho riêng bạn, trang web liệt kê các phiên bản hạt nhân ổn định và đang phát triển. Nếu bạn muốn tải mã nguồn về, hãy FTP tới ftp.xx.kernel.org, trong đó “xx” là ký hiệu tên miền quốc gia của bạn; v.d “us” là Hoa Kỳ, “ca” là Canada, “de” là Đức, và “vi” là Việt Nam. Hạt nhân phiên bản 2.2.x được lưu tại thư mục pub/linux/kernel/v2.2, as are patches for the prerelease versions. Mã nguồn của hạt nhân được lưu bằng các tập tin .tar.gz, và .tar.bz2. Hãy làm theo những chỉ dẫn trong bất kỳ tham khảo chuẩn nào để biên dịch hạt nhân, như bạn đã làm với các hạt nhân tự tạo khác của bạn. Thư mục Documentation chứa thông tin về tác giả của các hệ thống con khác nhau và các driver, và rất nhiều thông tin không tìm thấy ở những nơi khác. Nếu bạn muốn tham gia phát triển hạt nhân, hãy đăng ký mailing list linux-kernel để biết ai đang làm gì. Hãy xem câu trả lời: “Mailing List ở đâu?” Có một câu truyện về những đặc tính của hạt nhân 2.4.x tại 9
- Những câu hỏi thường gặp về Linux H: Tài liệu ở đâu? Đ: Hãy tìm những nơi sau, và các địa chỉ mirror của nó. • Dự án Tài liệu Linux (The Linux Documentation Project) tại xuất bản hàng trăm tài liệu về cách sử dụng Linux. • • • Để có danh sách các FTP cho Linux, hãy xem câu trả lời: “FTP của Linux ở đâu?” Nếu bạn không thể truy cập FTP, hãy thử các server FTP-qua-thư: • ftpmail@decwrl.dec.com (mailto:ftpmail@decwrl.dec.com) • ftpmail@doc.ic.ac.uk (mailto:ftpmail@doc.ic.ac.uk) • ftp-mailer@informatik.tu-muenchen.de (mailto:ftp-mailer@informatik.tu-muenchen.de) Danh sách hoàn chình các HOWTO hiện có nằm trong tập tin HOWTO-INDEX tại Danh sách các HOWTO mini tại Ngoài ra, các bản dịch còn có tại và các mirror trên toàn cầu. HOWTO và những tài liệu khác đã được dịch ra các ngôn ngữ sau: • Trung Hoa (zh) • Croatia (hr) • Pháp (fr) • Đức (de) • Hellenic (el) • Indonesia (id) • Ý (it) • Nhật (ja) • Hàn Quốc (ko) • Ba Lan (pl) • Slovenia (sl) • Tây Ban Nha (es) • Thụy Điển (sv) • Thổ Nhĩ Kỳ (tr) Các tài liệu bổ sung vẫn đang được viết. Vui lòng liên lạc với coordinator nếu bạn muốn viết tài liệu. Thông tin liên lạc và gửi bài viết tại Ngoài ra còn có trang LDP HOWTO tại 10
- Những câu hỏi thường gặp về Linux Danh sách Cẩm nang hướng dẫn của The Linux Documentation Project tại Vui lòng đọc chúng nếu bạn chưa từng biết Unix và Linux. Và dĩ nhiên vẫn có một số người viết các tài liệu độc lập với LDP: • Linux Administrators Security Guide, bởi Kurt Seifried. • Newbie’s Linux Manual. • One-Page Linux Manual. • Rute Users Tutorial and Exposition. • Short beginners’ manual for Linux. Ngoài ra còn có bản tiếng Hà Lan. • Virtual Frame buffer HOWTO, bởi Alex Buell. • X11 & TrueType Fonts, bởi Peter Kleiweg. Tài liệu cho nhà phát triển hạt nhân có trực tuyến tại Để tìm hiểu về hệ thống quản lý bộ nhớ của Linux, bao gồm các hiệu chỉnh để cải thiện hiệu suất, hãy xem trang Web của Rik van Riel tại Linux Consultants-Guide có một thư mục các nhà tư vấn Linux. Báck khoa toàn thư của Gary liệt kê trên 4,000 liên kết có liên quan. URL của nó là Ngoài ra còn có FAQ cho bản phân phối Red Hat tại H: Những thứ khác về Linux trên Web ở đâu? Đ: Ngoài trang chủ của Linux Document Project: còn có nhiều trang cung cấp thông tin nâng cao về Linux. Hai trang sau là điểm khởi đầu tốt cho các thông tin chung về Linux: Trang chủ của Linux International, tại và trang chủ của Linux Online Cả hai trang này cung cấp các liên kết đến các địa chỉ khác, các thông tin chung, thông tin về các bản phân phối, các phần mềm mới, tài liệu, và tin tức. Tài liệu cho nhà phát triển hạt nhân tại: Tutorial, Unix is a Four Letter Word , tại Tài liệu này giới thiệu chung về hệ điều hành Unix, không chỉ riêng cho Linux. Thêm nữa, còn có một danh sách chưa hoàn chỉnh các trang Web dành cho Linux: • AboutLinux.com: • Thám hiểm lập trình Linux: • Kho phần mềm Linux Dave Central: • Trợ giúp Debian 11
- Những câu hỏi thường gặp về Linux • Erlug Webzine (tiếng Ý): • Free Unix Giveaway List: Cung cấp danh sách các CD miễn phí. Ngoài ra còn có qua mail: axel@visar.csustan.edu (mailto:axel@visar.csustan.edu), với Subject: "send giveaway_list" • Thông tin về Linux trong môi trường cộng tác: • Thông tin cho người mới biết Linux của Jeanette Russo: • JustLinux.com: • Linux Cartoons: • LinuxArtist.org: • Linuxinfor.com - Tài nguyên Linux trực tuyến: • linuXChiX.org: • LinuxDevices.com: Linux Nhúng Portal: • Linux Educational Needs Posting Page: • Linux trong kinh doanh: Case Studies: • Linux Hardware Database Laptop Superguide: • Bên trong Linux: • Linux Links: • Trang chủ Quản lý bộ nhớ trong Linux: • Dự án Linux Newbie: • Linux trên Thinkpad 760ED: • LinuxOrbit: • Linux Parallel Port Home Page: • Ứng dụng âm thanh và MIDI Linux: • Linux Start: • Linux Tips and Tricks Page: • Linux Today PR: • Mandrakeuser.Org: • “Những đóng góp Linux của tôi” bởi Richard Gooch: • Micro Channel Linux Web Page: • Parallel port scanners and SANE: • Pascal Central: • PegaSoft Portal: • PocketLinux. • Red Hat and ISDN4Linux: 12
- Những câu hỏi thường gặp về Linux • SearchLinux: • The Free Linux CD Project: • The Site for People Learning Perl: • USB Linux Home Page: • VLUG: The Virtual Linux Users Group: Tìm chữ “Linux” trên Web sẽ cung cấp lương tham chiếu dồi dào đến các trang Web về Linux. Hãy thử: • Yahoo! • Altavista • Google Google có phần chuyên về Linux tại Các thông tin chi tiết hơn về máy tìm kiếm Web nằm trong Web and Internet Search Engine Faq: Ngoài ra nên tham khảo câu trả lời: “Còn có những FAQ và tài liệu nào khác cho Linux?” H: Có những Nhóm Tin (newsgroup) nào cho Linux? Đ: Comp.os.linux.announce là nhóm tin thông báo (moderated). Bạn nên xem nhóm tin này nếu định dùng Linux. Nó chứa thông tin về các lần cập nhật phần mềm, các chương trình được chuyển qua Linux, các cuộc họp của các nhóm người dùng, và các sản phẩm thương mại. Nó là nhóm tin duy nhất chứa các thông tin thương mại. Gửi tin lên nhóm tin này qua địa chỉ linux-announce@news.ornl.gov (mailto:linux-announce@news.ornl.gov). Comp.os.linux.announce được lưu tại: và Ngoài ra các nhóm tin sau cũng rất đáng đọc: comp.os.linux.* và alt.uu.comp.os.linux.*. Bạn có thể tìm thấy nhiều vấn đề thông thường quá mới so với tài liệu, nhưng lại được trả lời trên nhóm tin. • alt.uu.comp.os.linux • alt.uu.comp.os.linux.questions • alt.os.linux • alt.os.linux.mandrake • comp.os.linux.admin • comp.os.linux.advocacy • comp.os.linux.alpha • comp.os.linux.answers • comp.os.linux.development • comp.os.linux.development.apps • comp.os.linux.development.system 13
- Những câu hỏi thường gặp về Linux • comp.os.linux.embedded • comp.os.linux.hardware • comp.os.linux.help • comp.os.linux.m68k • comp.os.linux.misc • comp.os.linux.network • comp.os.linux.networking • comp.os.linux.portable • comp.os.linux.powerpc • comp.os.linux.questions • comp.os.linux.redhat • comp.os.linux.security • comp.os.linux.setup • comp.os.linux.test • comp.os.linux.x • comp.os.linux.x.video Hãy nhớ rằng Linux tương thích POSIX, và hầu hết các nhóm tin trong comp.unix.* và comp.windows.x.* cũng thích hợp, ngoại trừ các vấn đề liên quan phần cứng, và vài vấn đề cấp thấp. Thông tin về e-mail clients (MUA), mail transfer agents (MTA), và các phần mềm liên quan khác có tại nhóm comp.mail.*, đặc biệt là: • comp.mail.misc • comp.mail.pine • comp.mail.sendmail Câu hỏi và thông tin về phần mềm đọc tin có tại: • news.software.readers. Vui lòng đọc “Nếu tài liệu này vẫn chưa trả lời câu hỏi của bạn ” trước khi gửi. Gửi cùng lúc nhiều nhóm tin trong comp.os.linux.* hiếm khi là một ý tưởng hay. Có thể có những nhóm người dùng Linux (LUG) trong khu vực của bạn. Hãy kiểm tra xem. Xem thêm “Làm thế nào để lấy thông tin khi không thể truy cập Usenet?” Cũng có các nhóm tin cục bộ khác. Bạn có thể tìm thấy nhiều thông tin hữu dụng ở đó: • fr.comp.os.linux (France). • de.comp.os.linux.* (Germany). • aus.computers.linux (Australia). • hr.comp.linux (Croatia). 14
- Những câu hỏi thường gặp về Linux • it.comp.linux (Italy). Tìm kiếm trên có thể cung cấp danh sách cập nhất các nhóm tin. H: Còn có những FAQ và tài liệu nào khác cho Linux? Đ: Có một số FAQ thú vị về những chủ đề khác nhau liên quan đến việc quản trị hệ thống, sử dụng Linux, và những chủ đề khác như Flying Saucer Attacks (nhạc) và hỗ trợ phục hồi cho quản trị hệ thống. Kho lưu trữ Usenet FAQ chính thức ở: Internet FAQ Consortium cung cấp một kho lưu có thể tìm kiếm tại: Địa chỉ này còn quản lý một kho lưu các tài liệu Internet Request For Comment (RFC), Best Current Practices (BCP), và For Your Information (FYI). Ngoài ra còn có vài FAQ và tài liệu đặc biệt hữu ích: • FAQ cho người dùng mới: • Linux FAQ tiếng Tây Ban Nha đặt tại: • AfterStep FAQ: • Những câu hỏi thường gặp về BASH: • de.comp.os.unix.linux.infos - FAQ: • Những câu hỏi thường gặp về Mã nguồn mở: • Ftape-FAQ: • GNU Emacs: • GNU Linux trong Khoa học và Kỹ thuật: • GNU Troff (groff ) Info: • Gnus 5.x: • KDE FAQ: • GNU General Public License FAQ: • Linux PPP FAQ: • Linux-Raid FAQ: • List of Periodic Information Postings: • News.newusers.announce FAQ • Tài nguyên Linux trực tuyến: • O’Reilly & Associates Openbook Project: • Sendmail: • Sendmail: Cẩm nang cài đặt và điều hành:: • FAQ Kỹ thuật cho người dùng Linux: • Máy tìm kiếm Web: 15
- Những câu hỏi thường gặp về Linux • Wu-ftpd: (thật sự là một tập hợp các man pages), với HOWTO tại: • Những câu hỏi thường gặp về XTERM. H: FTP của Linux ở đâu? Đ: Có ba kho lưu chính cho Linux: • (Phần Lan). • (Mỹ), với một giao diện WWW đẹp. • (Mỹ). Nơi tốt nhất để lấy hạt nhân Linux là Linus Torvalds upload các phiên bản cập nhật nhất lên địa chỉ này. Trong các bản phân phối của Mỹ, Debian GNU/Linux đặt tại Red Hat Linux đặt tại và Linux Slackware tại Bản phân phối Small Linux, có thể chạy chỉ với 2 MB RAM, tại Nội dung của những địa chỉ này được sao chép (mirror - có thể là hằng ngày) bởi nhiều địa chỉ khác nhau. Vui lòng dùng địa chỉ gần bạn nhất để đạt được tốt độ nhanh. • (Nam Phi) • (Nam Phi) • (Hồng Kông) • (Hồng Kông) • (Nhật Bản) • (Hàn Quốc) • (Malaysia) • (Singapore) • (Thái Lan) • (Úc) (Ngoài ra hãy xem tại • (Úc) • (Áo) • (Cộng hòa Séc) • (Phần Lan) • (Pháp) • (Pháp) • (Pháp) • (Pháp) • (Đức) 16
- Những câu hỏi thường gặp về Linux • (Đức) • (Đức) • (Đức) • (Đức) • ftp.rz.uni-karlsruhe.de/pub/linux/mirror.sunsite/ (Đức) • (Đức) • (Đức) • (Đức) • ftp.rus.uni-stuttgart.de/pub/unix/systems/linux/MIRROR.sunsite/ (Đức) • (Đức) • (Hungary) • (Ý) • (Ý) • (Ý) • (Ý) • (Ý) • (Hà Lan) • (Hà Lan) • (Na Uy) • (Ba Lan) • (Tây Ban Nha) • (Tây Ban Nha) • (Tây Ban Nha) • (Tây Ban Nha) • (Tây Ban Nha) • (Tây Ban Nha) • (Turkey) • (Anh) • ftp.maths.warwick.ac.uk/mirrors/linux/sunsite.unc-mirror/ (Anh) • (Anh) • (Anh) • (Canada) • (Mỹ) • (Mỹ) • (Mỹ) 17
- Những câu hỏi thường gặp về Linux • (Mỹ) • (Mỹ) • (Brazil) • (Brazil) Vui lòng gửi cập nhật và chỉnh sửa về danh sách này cho Linux pclouds@users.sourceforge.net (mailto:pclouds@users.sourceforge.net) Không phải mọi địa chỉ trên lưu toàn bộ source trên địa chỉ gốc, và vài nơi có những thứ mà địa chỉ gốc không có. H: Làm thế nào để lấy Linux khi không thể truy cập FTP? Đ: Cách dễ nhất có lẽ là tìm một người bạn có truy cập FTP. Nếu có một Nhóm người dùng Linux (Linux User Group) gần bạn, họ có thể giúp bạn. Nếu bạn có một kết nối email tốt, bạn có thể thử dùng các server FTP-qua-mail tại ftpmail@ftp.sunet.se (mailto:ftpmail@ftp.sunet.se), hoặc ftpmail@ftp.uni-stuttgart.de (mailto:ftpmail@ftp.uni-stuttgart.de). Linux còn có trên CD, thông qua thư tín truyền thống. Tập tin Installation-HOWTO ( và tập tin Distribution-HOWTO ( chứa các thông tin về những bản phân phối này. H: Làm thế nào để lấy thông tin khi không thể truy cập Usenet? Đ: Có thể nhận bản tóm tắt của comp.os.linux.announce bằng cách đang ký mailing list (gửi thư với nội dung là từ “subscribe” không có dấu nháy tới linux-announce-REQUEST@news-digests.mit.edu (mailto:linux-announce-REQUEST@news-digests.mit.edu). Đăng ký mailing list này là một ý kiến hay, nó mang đến cho bạn những thông tin và tài liệu quan trọng về Linux. Hãy nhớ rằng dùng những địa chỉ *-request để đăng ký hoặc hủy đăng ký các thông báo; gửi thư tới địa chỉ khác sẽ được gửi tới news group. H: Mailing List ở đâu? Đ: Những nhà phát triển Linux hiện nay chủ yếu sử dụng Majordomo server tại majordomo@vger.redhat.com (mailto:majordomo@vger.redhat.com). Hãy gửi một thông điệp với nội dung là từ “lists” (không có dấu nháy) tới địa chỉ được liệt kê ở đây. Thêm một dòng với từ “help” để có tập tin trợ giúp chuẩn của Majordomo, hiển thị danh sách các lệnh để đăng ký và hủy đăng ký các danh sách. Hiện thời, kernel list được lưu tại: và Vui lòng đừng gửi những thông điệp lạc đề lên mailing list. Hầu hết các mailing list này được dùng bởi các nhà phát triển Linux để nói chuyện về các vấn để kỹ thuật và kế hoạch phát triển trong tương lai. Chúng không được dùng để trả lời các câu hỏi của người mới dùng Linux, để quảng cáo hoặc các thông báo công cộng không trực tiếp liên quan đến chủ đề của mailing list. Comp.os.linux.announce là nơi để gửi các thông báo công cộng. Đây là quy tắc chung của Internet. Nếu bạn không theo những hướng dẫn này, rất có khả năng bạn sẽ bị flamed. 18
- Những câu hỏi thường gặp về Linux linux-newbie là nơi mà “không có câu hỏi nào là ngớ ngẩn”. Không may là dường như không có nhiều người dùng có kinh nghiệm trên đó. Có một số lương lớn các mailing list liên quan đến Linux tại Tới trang phân loại và chọn “Linux”. Ngoài ra còn có liên kết đăng ký mailing list tại: Trang Mailing Lists Available in Usenet tại: Thông tin về danh sách có tại: và được gửi lên nhóm: news.announce.newgroups, news.lists, và news.groups. H: Where Are Linux Legal Issues Discussed? Đ: On the linux-legal mailing list, of course. You can subscribe to it, as with many of the other Linux related lists, bởi sending a message with the word "help" in the body of the message to majordomo@vger.redhat.com (mailto:majordomo@vger.redhat.com). H: Thông tin về các dự án không được quản lý ở đâu? Đ: Có các trang web tại: và: Vui lòng liên lạc với những tác giả ban đầu của các dự án thông qua email, hoặc những người liệt kê các phần mềm không được quản lý, trước khi nghĩ đến việc dùng giấy phép mới cho gói phần mềm đó. H: News Groups có còn được lưu ở chỗ nào khác không? Đ: Usenet Linux news groups được lưu tại lưu các thông báo của comp.os.linux.announce. Ngoài ra còn có các mirror tại lưu trữ comp.os.linux, comp.os.linux.development.apps, và comp.os.linux.development.system. H: Tìm các thông tin về vấn đề bảo mật ở đâu? Đ: Có một trang web chuyên về bảo mật trong Linux tại: Một địa chỉ khác là: chứa các thông tin về bảo mật Internet và privacy issue. Để có thông tin về Weekly Linux Security Digest email newsletter và các cơ sở dữ liệu liên quan đến bảo mật khác, hãy xem tại H: Tìm đặt tả hệ thống Linux ở đâu? Đ: Trước tiên, hãy xem tại The Linux Standards Base, Địa chỉ này chứa các thông tin về phần mềm kiểm tra, tổ chức hệ thống tập tin, quy ước đặt tên thư viện động. 19
- Những câu hỏi thường gặp về Linux Tính tương thích với các hệ điều hành khác H: Có thể dùng Linux trên cùng đĩa cứng có chứa MS-DOS? OS/2? 386BSD? Win95? Đ: Có. Linux hỗ trợ rất nhiều hệ thống tập tin khác nhau, bao gồm mô hình phân partition chuẩn của MS-DOS, vì thế nó có thể chia sẽ đĩa cứng với các hệ điều hành khác. Linux hỗ trợ mọi phiên bản được công bố của hệ thống tập tin Microsoft FAT và VFAT, bao gồm những cái được dùng bởi Windows 95, Windows 98, Windows NT, Windows 2000 và Windows ME thông qua các môđun hạt nhân nạp động. Với một hệ thống cấu hình đúng, chúng có thể tự động nạp khi partition được gắn kết (mount). Tuy nhiên, chú ý rằng nhiều hệ điều hành khác có thể không hoàn toàn tương thích. Ví dụ, FDISK.EXE và FORMAT.EXE của DOS, có thể ghi đè dữ liệu trong partition Linux, vì đôi khi nó dùng sai dữ liệu partition từ boot sector của partition hơn là từ bảng partition. Để tránh những trường hợp đó, tốt nhất nên xóa trắng phần partition bạn tạo, trước khi MS-DOS hoặc cái gì khác định dạng nó. Hãy gõ: $ dd if=/dev/zero of=/dev/hdXY bs=512 count=1 trong đó hdXY là partition tương ứng; e.g., /dev/hda1 là partition đầu tiên của đĩa (IDE) thứ nhất. Linux có thể đọc và ghi tập tin lên các partition FAT của DOS và OS/2 và đĩa mềm nhờ hệ thống tập tin DOS trong hạt nhân hoặc nhờ mtools. Một driver thiết bị OS/2 (GPL) được báo cáo có thể đọc và viết các partition Ext2. Để biết thêm thông tin về hỗ trợ partition FAT32, hãy xem Hãy xem, (“Linux hỗ trợ phần mềm nào?”) để biết chi tiết và tình trạng hiện thời của các bộ mô phỏng DOS, MS Windows, và các chương trình System V. Ngoài ra hãy xem, “Linux có thể truy cập hệ thống tập tin Amiga không?”, “Linux có thể truy cập hệ thống tập tin Macintosh không?”, “Linux có thể truy cập BSD, SysV, UFS không?” và “Linux có thể truy cập hệ thống tập tin SMB không?”. Driver NTFS vẫn đang được phát triển. Driver này sẽ hỗ trợ nén như là đặc tính chuẩn. H: Làm thế nào để truy cập tập tin trên đĩa mềm hoặc trên partition MS-DOS? Đ: Ví dụ, để dùng hệ thống tập tin DOS, hãy nhập vào: $ mkdir /dos $ mount -t msdos -o conv=text,umask=022,uid=100,gid=100 /dev/hda3 /dos Nếu là đĩa mềm, đừng quên umount đĩa mềm trước khi lấy nó ra! Bạn có thể dùng tùy chọn conv=text/binary/auto, umask=nnn, uid=nnn, và gid=nnn để điều khiển sự chuyển đổi kết dòng tự động, điều khiển quyền truy cập và quyền sở hữu tập tin trong hệ thống 20
- Những câu hỏi thường gặp về Linux tập tin DOS như trong Linux. Nếu bạn gắn kết (mount) hệ thống tập tin DOS bằng cách đặt nó vào /etc/fstab của bạn, bạn có thể đặt các thuộc tính ở đó (cách nhau bằng dấu phẩy) thay vì thuộc tính mặc định. Ngoài ra bạn có thể dùng mtools, có cả dưới dạng nhị phân và mã nguồn từ các địa chỉ FTP. (“FTP của Linux ở đâu?”) H: Linux có hỗ trợ hệ thống tập tin Ext2 nén không? Đ: Dự án ext2compr cung cấp kernel patch. Thông tin về dự án này đặt tại Còn có một trang Web chứa các e2compr patch. Đoạn mã vẫn còn đang được thử nghiệm và bao gồm patch cho hạt nhân 2.0 và 2.1. Để biết thêm thông tin về dự án, bao gồm các bản patch mới nhất, và địa chỉ của mailing list, hãy xem tại URL Đ: zlibc là một chương trình cho phép các ứng dụng đọc các tập tin nén (bằng GNU gzip) như thể không bị nén. Hãy xem tại Tác giả chương trình này là Alain Knaff. Đ: Ngoài ra còn có thiết bị khối nén, "DouBle", được viết bởi Jean-Marc Verbavatz, có thể cung cấp nén đĩa “trong khi chạy” trong hạt nhân. Bản phân phối chỉ có mã nguồn đặt tại Driver này nén các inode và thư mục cũng như tập tin, vì thế mọi hư hỏng của hệ thống tập tin nhiều khả năng sẽ trở nên nghiêm trọng. Đ: Còn có một gói gọi là tcx (Transparently Compressed Executables), giúp bạn giữ các chương trình ít khi dùng ở dạng nén, chỉ giải nén tạm thời khi được dùng. TCX đặt tại H: Có thể dùng Linux với các ổ đĩa DOS dùng Stacked/DBLSPC/ hay không? Đ: Cho tới gần đây thì điều đó không dễ dàng lắm. Bạn có thể truy xyất các volume DOS 6.X thông qua bộ mô phỏng DOS (xem Linux hỗ trợ phần mềm nào?), nhưng làm thế khó hơn so với truy cập DOS volume thường thông qua môđun DOS trong hạt nhân, hoặc thông qua mtools. Gần đây có một gói phần mềm, gọi là dmsdos, cho phép đọc/ghi các hệ thống tập tin nén như DoubleSpace/DriveSpace trong MS-DOS 6.x và Win95, cũng như Stacker phiên bản 3 và 4. Nó là môđun hạt nhân. Hãy xem tại H: Linux có thể truy cập partition OS/2 HFPS không? Đ: Được, nhưng chỉ có thể đọc, không thể ghi. Xem tập tin Documentation/filesystems/hpfs.txt trong mã nguồn của hạt nhân. (“Làm thế nào để nâng cấp/biên dịch lại hạt nhân”) Bạn có thể gắn kết partition HPFS như ví dụ sau: $ mkdir /hpfs $ mount -t hpfs /dev/hda5 /hpfs 21
- Những câu hỏi thường gặp về Linux H: Linux có thể truy cập hệ thống tập tin Amiga không? Đ: Hạt nhân Linux hỗ trợ hệ thống tập tin nhanh Amiga (Amiga Fast File System - AFFS) phiên bản 1.3 trở lên, có thể được cài sẵn trong hạt nhân hoặc tách làm một môđun hạt nhân. Tập tin Documentation/filesystems/affs.txt trong mã nguồn hạt nhân Linux cho biết các thông tin chi tiết hơn. Xem (“Làm thế nào để nâng cấp/biên dịch lại hạt nhân”) Linux chỉ hỗ trợ partition AFFS trên ổ cứng, không hỗ trợ trên ổ mềm vì tính không tương thích giữa bộ điều khiển đĩa mềm của Amiga và của PC. Driver AFFS còn có thể gắn kết partition đĩa của Un*x Amiga Emulator, viết bởi Bernd Schmidt. H: Linux có thể truy cập BSD, SysV, UFS không? Đ: Các hạt nhân gân đây có thể gắn kết (chỉ đọc) hệ thống tập tin UFS của System V; Coherent; Xenix; BSD; và derivatives như SunOS, FreeBSD, NetBSD, và NeXTStep. Hỗ trợ UFS có thể được cài vào hạt nhân hoặc đặt trong môđun hạt nhân. Xem, (“Làm thế nào để nâng cấp/biên dịch lại hạt nhân”) H: Linux có thể truy cập hệ thống tập tin SMB không? Đ: Linux hỗ trợ đọc/ghi các volume SMB của Windows for Workgroups và Windows NT. Xem tập tin Documentation/filesystems/smbfs.txt trong mã nguồn Linux và(“Làm thế nào để nâng cấp/biên dịch lại hạt nhân”) để biết thêm. Ngoài ra còn có một bộ chương trình tên là Samba cung cấp hỗ trợ cho hệ thống tập tin mạng của Windows for Workgroups (provided they’re for TCP/IP). Xem thêm thông tin trong tập tin README tại metalab.unc.edu/pub/Linux/system/network/samba/. Trang web của SMB là và còn có một trang web tại samba.anu.edu.au/samba. H: Linux có thể truy cập hệ thống tập tin Macintosh không? Đ: Có một tập chương trình cấp người dùng để đọc và ghi Macintosh Hierarchical File System (HFS). Chương trình đặt tại metalab.unc.edu/pub/Linux/utils/disk-management/ ( Hỗ trợ truy cập hệ thống tập tin HFS+ vẫn đang được phát triển. H: Linux có thể chạy các chương trình trên Microsoft Windows không? Đ: WINE, một bộ mô phỏng Windows trong Linux, vẫn chưa sẵn sàng để sử dụng. Nếu bạn muốn tham gia phát triển, hãy xem báo cáo tình hình tại nhóm tin comp.emulators.ms-windows.wine. Ngoài ra còn có một FAQ, được biên soạn bởi P. David Gardner, tại 22
- Những câu hỏi thường gặp về Linux Đ: Hiện thời, nếu bạn muốn chạy các chương trình của MS Windows, cách an toàn nhất là boot-kép (dual-boot). LILO, the Linux boot loader, có thể khởi động một hệ điều hành được chọn từ menu. Hãy xem tài liệu LILO để biết thêm. Ngoài ra, LOADLIN.EXE (một chương trình trong DOS cho phép nạp hạt nhân Linux, hoặc hạt nhân các hệ điều hành khác, là một cách để có thể dùng cả Linux và DOS. LOADLIN.EXE đặc biệt hữu dụng khi bạn muốn cài đặt Linux trên đĩa thứ ba hoặc thứ tư (hoặc khi bạn thêm một ổ đĩa SCSI vào hệ thống đã có đĩa IDE). Trong trường hợp này, LILO thường không thể tìm ra hoặc nạp hạt nhân trên ổ đĩa "khác". Vì thế bạn chỉ cần tạo thư mục C:LINUX (hoặc một tên khác), đặt LOADLIN.EXE vào đó kèm theo một bản sao của hạt nhân bạn dùng, và chạy LOADLIN.EXE. LOADLIN.EXE là chương trình tương thích VCPI. Win95 sẽ yêu cầu bạn "shutdown into DOS mode," để chạy chương trình (như các chương trình DOS dùng protected-mode khác). Đ: Ngoài ra còn có một chương trình thương mại tên là VMWare cho phép chạy Windows trong Linux. Hãy xem tại trang web của công ty tại H: Thông tin về tính tương thích NFS ở đâu? Đ: Hãy xem NFS-HOWTO ( để có các thông tin cập nhật. Đ: Những thông tin dưới đây được trích từ NFS HOWTO của Nicolai Langfeldt vào thời điểm 10/1/1999: Hầu hết hạt nhân phiên bản 2.2.x cần set of patches để cài đặt hệ thống con knfsd, được quản lý bởi H.J. Lu, để có thể liên lạc một cách hiệu quả (if at all) với Sparc, IBM RS, và các máy Alpha, và có lẽ cả những máy khác. Gói phần mềm này thật sự là một tập các patch cho mã nguồn kernel. Hỗ trợ tốt hơn cho kiến trúc phi-Intel được gộp trong hạt nhân 2.4. Ngoài ra còn có user-space server. Mặc dù nó thiếu tính năng khóa tập tin từ xa (remote file locking), nhưng nó dễ cài đặt hơn. Cả hai có hiệu suất tương đương. Trong tập tin Documentation/Changes trong các hạt nhân gần đây, có một danh sách các URL cho cả knfsd server và user-space server. Có một CVS server cho kernel-space NFS, cũng như trang chủ tại mặc dù cần mật khẩu để truy cập. URL liên quan được liệt kê trong tập tin README.nfs tại Patches có tại User-space server và các tiện ích có tại Mailing list linux-kernel có vài cuộc thảo luận về NFS subsystem. H: Linux có thể dùng font True Type không? Đ: Có. Có một số font server cho X Window System. Một trong số đó là xfsft. Trang chủ của nó đặt tại Ngoài ra còn có các chỉ dẫn để cấu hình. 23
- Những câu hỏi thường gặp về Linux Đ: Một font server khác hỗ trợ True Type là xfstt Đ: Còn có các font server khác hỗ trợ True Type. Trên trang chủ của xfsft có các liên kết tới các server này. Đ: Bạn còn có thể biên dịch tính năng hỗ trợ True Type vào thẳng trong X Window. Vui lòng xem trang chủ xfsft để biết thông tin chi tiết. Đ: Người dùng Debian nên tham vấn TT-Debian-HOWTO ( H: Có thể khởi động Linux từ MS-DOS không? Đ: Nếu LILO không chạy, và nếu máy bạn có MS-DOS hoặc Microsoft Windows, máy của bạn có thể sẽ không khởi động được. Điều này có thể xảy ra khi nâng cấp Linux. Cài đặt lại LILO là điều cuối cùng mà phần cài đặt làm. Điều cực kỳ quan trọng khi cài đặt hoặc nâng cấp Linux trên máy dual-boot là phải có đĩa mềm khởi động MS-DOS hoặc Windows, nhờ đó bạn có thể dùng lệnh FDISK -MBR để phục hồi Master Boot Record. Sau đó bạn có thể dùng LOADLIN.EXE để khởi động Linux thay vì dùng LILO. Tập tin config.sys này là một cách để gọi LOADLIN.EXE và khởi động MS-DOS hoặc Linux. [menu] menuitem=DOS, Dos Boot menuitem=LINUX, Linux Boot [LINUX] shell=c:\loadlin.exe c:\vmlinuz vga=5 root=/dev [DOS] STACKS = 0,0 rem all the other DOS drivers get loaded here. Những dòng lệnh này tạo một menu để bạn có thể chạy LOADLIN.EXE trước khi DOS khởi động xong. Đường dẫn và tùy chọn phụ thuộc vào từng máy. Xem tài liệu LOADLIN.EXE để biết về tùy chọn. Chúng cũng giống như LILO, và tùy chọn chỉ đơn giản được chuyển cho kernel. H: Khởi động Linux từ OS/2 Boot Manager như thế nào? Đ: 1. Tạo một partition dùng FDISK.EXE của OS/2 (Không Phải fdisk của Linux). 2. Định dạng partition trong OS/2, hoặc là FAT, hoặc là HPFS. Làm như vậy để OS/2 biết partition đã được định dạng. (Bước này không cần thiết với OS/2 “warp” 3.0.) 3. Thêm partition vào Boot Manager. 24
- Những câu hỏi thường gặp về Linux 4. Khởi động Linux, và tạo một hệ thống tập tin trên partition đó bằng lệnh mkfs -t ext2 hoặc mke2fs. Vào lúc này, nếu bạn thích, hãy dùng lệnh fdisk của Linux để thay đổi mã của partition sang loại 83 (type 83 - Linux Native). Việc này có thể giúp cho các script tự động có thể tìm ra đâu là partition đúng cần dùng. 5. Cài đặt Linux trên partition. 6. Cài LILO trên partition Linux, KHÔNG phải trên Master Boot Record (MBR) của ổ cứng. Nhờ đó LILO chạy như là boot loader thứ hai, được dùng để nạp Linux trên chính partition đó. Để làm thế, hạy đặt dòng: boot = /dev/hda2 (trong đó /dev/hda2 là partition dùng để khởi động) trong tập tin /etc/lilo/config hoặc /etc/lilo.config. 7. Hãy kiểm tra để chắc rằng partition chứa Boot Manager được đánh dấu “active”, để bạn có thể dùng Boot Manager để chọn hệ điều hành. Có nhiều HOWTO về chủ đề “multi-boot” này. Hãy tìm trên trang chủ của LDP, Hệ thống tập tin, đĩa, và ổ đĩa H: Làm thế nào để Linux làm việc với ổ đĩa của tôi? Đ: Nếu ổ đĩa của bạn thuộc chuẩn IDE hay EIDE, bạn nên xem tập tin /usr/src/linux/drivers/block/README.ide (một phần trong mã nguồn của Linux kernel). Phần README này chứa nhiều chỉ dẫn hữu ích về các ổ đĩa IDE. Nhiều IDE controller mới thực hiện chuyển đổi tự động giữa cylinders/heads/sectors vật lý và logic. Các ổ đĩa SCSI được truy xuất bằng các số block tuyến tính. BIOS giả lập các giá trị cylinders/heads/sectors logic để hỗ trợ DOS. Các BIOS của hệ máy IBM PC-compatible cũ sẽ không thể truy xuất các phân vùng mở rộng quá 1024 logical cylinder và sẽ gặp trục trặc nếu khởi động Linux kernel từ các phân vùng này. Tuy nhiên bạn vẫn có thể sử dụng các phân vùng này trên Linux hoặc trên các hệ điều hành truy xuất trực tiếp vào controller. Tốt hơn là bạn tạo ít nhất một phân vùng nằm hoàn toàn dưới giới hạn 1024 logical cylinder và khởi động từ phân vùng này. Các phân vùng khác vẫn sử dụng bình thường. Ngoài ra, dường như có một chút trục trặc với các ổ đĩa Ultra-DMA mới. Tôi không được rõ lắm về vấn đề này, nhưng chúng rất thường thấy trong các buổi installfest của SVLUG (installfest là một hình thức các thành viên hội họp và tiến hành cài đặt Linux trước các thành viên mới). Nếu mà bạn có trong tay loại đĩa 8-12GB với giá $200-$300 thì không có gì phải lo lắng. 25
- Những câu hỏi thường gặp về Linux H: Làm thể nào để phục hồi các tập tin đã xóa? Đ: Thông thường, rất khó để thực hiện điều này trên các hệ điều hành Unix bởi vì tính đa nhiệm của bản thân nó. Chức năng phục hồi trong hệ thống tập tin ext2 vẫn làm việc, nhưng tốt nhất là bạn đừng trông chờ quá nhiều vào nó. Có khá nhiều gói phần mềm4 cung cấp lệnh chép và xóa mới, các lệnh này sẽ chuyển các tập tin bị xóa vào một cái “giỏ rác”. Tập tin có thể được phục hồi cho tới khi bị xóa tự động bởi một tiến trình chạy nền. Chương trình quản lý tập tin Midnight Commander cung cấp một cơ chế phục hồi sử dung các hàm thư viện hệ thống tập tin Ext2 và một thư mục chứa file vừa xóa cho mỗi hệ thống file. Các gói phần mềm MC phân phối thương mại có thể có hoặc không tính năng này, vì thế hãy thử nhìn vào mã nguồn của bản phân phối xem làm thế nào để bật tính năng phục hồi tập tin đã xóa. Hoặc là, bạn có thể dò tìm trực tiếp trên đĩa cứng. Đây là một công việc nặng nhọc, và bạn sẽ cần phải đăng nhập với tư cách là root để làm điều này. Nhưng bù lại nó cũng khá được việc. Chỉ cần chạy grep trên thiết bị thô, ví dụ : grep -b ’bookmarks’ /dev/hda Nếu dữ liệu chưa bị ghi đè lên, bạn sẽ có thể tìm thấy và phục hồi tập tin đã xóa bằng một chương trình soạn thảo văn bản. H: Làm thế nào để sao lưu dữ liệu? Đ: Bạn có thể sao lưu cả một cây thư mục hoặc toàn bộ hệ thống tập tin vào bất kỳ phương tiện nào bằng cách sử dụng GNU tar hoặc cpio, những công cụ được thiết kế cho mục đích này. tar có vẻ thông dụng hơn, và bao gồm một số tùy chọn trên dòng lệnh cho phép tạo bản sao lưu được nén, có thể bổ sung và có thể tạo multi-volume (bản sao được chia làm nhiều phần để có thể lưu vào các thiết bị lưu trữ có dung lượng nhỏ như đĩa mềm, CD). Thông tin đầy đủ có trong các tài liệu, chúng được lưu dưới dạng GNU Texinfo. Đ: Chương trình miễn phí Amanda nhận được rất nhiều lời khen trên Usenet. Trang chủ của nó ở Đ: Cũng có khá nhiều tiện ích sao lưu thương mại. Chúng thường được kèm theo trong những bản phân phối thương mại. H: Có thể thay đổi kích thước partition mà không phá hủy dữ liệu không? Đ: Hãy dùng chương trình FIPS.EXE có trong hầu hết các bản phân phối. Chương trình này chạy dưới nền MS-DOS. Đ: GNU parted, một trình hiệu chỉnh partition, làm việc khá ổn định, đủ cho những người dùng thông thường 5. Mã nguồn của phiên bản mới nhất ở Ngoài ra cũng có tập tin image tạo đĩa khởi động có chứa chương trình parted để có thể chạy trên các hệ thống không có sẵn 26
- Những câu hỏi thường gặp về Linux Linux. Dùng tập tin image này tương đối dễ đối với những người mới. Xây dựng lại từ mã nguồn cần phải cấu hình thêm một chút. Parted cũng có tài liệu hướng dẫn từng bước, dạng plain-text cho hệ thống tập tin Linux và FAT (MS-DOS). Đ: Ngoài ra một vài bản phân phối thương mại có kèm theo phần mềm phân vùng riêng, chẳng hạn như Partition Magic. H: Có trình dồn đĩa cho Ext2fs không? Đ: Có. Đó là defrag, là một trình dồn đĩa cho một số hệ thống tập tin Linux như ext2, Minix, và ext kiểu cũ. Chương trình có ở Đối với hệ thống tập tin ext2 có thể không cần defrag, bởi vì ext2 có khả năng giảm thiểu sự phân mảnh nhiều nhất có thể được (kể cả khi đĩa đầy). H: Làm thế nào để định dạng đĩa mềm theo một hệ thống tập tin nào đó? Đ: Nếu bạn đang chạy Gnome hoặc KDE phiên bản gần đây, bạn đã có trong tay một công cụ định dạng đĩa mềm dễ dàng với giao diện đồ họa. Đ: Còn để định dạng đĩa mềm 3.5 inch HD 6 bằng dòng lệnh, bạn có thể gõ vào lệnh sau đây: $ fdformat /dev/fd0H1440 $ mkfs -t ext2 -m 0 /dev/fd0H1440 1440 Đối với đĩa 5.25 inch, hãy đặt lại các giá trị fd0h1200 và 1200 cho thích hợp. Đối với đĩa B: hãy dùng fd1 thay vì fd0. Tùy chọn -m 0 báo cho mkfs.ext2 biết là không để dành không gian đĩa cho superuser (người dùng cấp cao), thường là 10% dành cho root. Lệnh đầu tiên thực hiện định dạng cấp thấp. Lệnh thứ hai tạo vùng không gian trống cho đĩa. Bạn có thể mount đĩa mềm như là với phân vùng ổ cứng và sử dụng các lệnh cp và mv,v.v Quy ước gọi tên thiết bị thông thường giống như các hệ điều hành Unix khác. Chúng có thể được tìm thấy trong tập hướng dẫn Installation và Getting Started của Matt Welsh. Hãy tham khảo phần (“Tài liệu ở đâu?”). Bài miêu tả chi tiết hơn Linux Allocated Devices của H. Peter Anvin, hpa@zytor.com (mailto:hpa@zytor.com), được lưu cả 2 dạng Latex và ASCII, có trong bản phân phối mã nguồn của kernel (có thể nằm trong /usr/src/kernel/Documentation/), dưới tên devices.tex và devices.txt. H: Linux có hỗ trợ hệ thống tập tin ảo như RAID không? Đ: Hầu hết các kernel Linux gần đây đều hỗ trợ phần mềm RAID, và chúng đương nhiên sẽ hỗ trợ các bộ điều khiển đĩa RAID. 27
- Những câu hỏi thường gặp về Linux Một trình tự động gắn kết 7 các phân vùng NFS 8 là một phần không thể thiếu đối với hầu hết các bản phân phối. Hơn nữa, hiện đã có khá nhiều các dự án về hệ thống tập tin ảo. Một trong số đó là Linux Logical Volume Manager có ở H: Linux có hỗ trợ mã hóa hệ thống tập tin không? Đ: Có chứ. Ví dụ như ppdd có ở H: Những thông điệp “rác” về Inode, Block, và những thứ tương tự là gì? Đ: Hệ thống của bạn đã bị lỗi ở hệ thống tập tin. Nguyên nhân có thể là không shutdown Linux trước khi tắt máy hay khởi động lại máy. Bạn có thể dùng trình shutdown để làm việc này. Trình này có trong các gói cài đặt util-linux, thường kèm sẵn trên sunsite và tsx-11. Nếu bạn may mắn, chương trình fsck (hoặc e2fsck hoặc xfsck tùy nếu fsck không có trên máy tính của bạn) sẽ sửa lại các lỗi trong hệ thống tập tin. Nếu bạn kém may mắn, hệ thống tập tin sẽ trở nên vô giá trị, và bạn sẽ phải tái định dạng lại đĩa bằng mkfs (hoặc mke2fs, mkxfs, v.v ), và khôi phục lại từ bản sao lưu dự phòng trước đó. Ghi chú: Đừng cố kiểm tra hệ thống tập tin được gắn liền với phân vùng root trong chế độ đọc/ghi, nếu bạn không thấy: VFS: mounted root read-only lúc khởi động. H: Tại sao vùng nhớ ảo của tôi không hoạt động? Đ: Khi bạn khởi động (hay khi cho bật chế độ swapping - tức là cho phép sử dụng vùng nhớ ảo), bạn sẽ thấy: Adding Swap: NNNNk swap-space Nếu bạn không thấy bất kỳ thông điệp nào hết, có thể bạn đã thiếu swapon -av (lệnh để cho phép sử dụng vùng nhớ ảo) trong tập tin /etc/rc.local hoặc /etc/rc.d/* (các tập tin scripts chứa các lệnh được thi hành khi hệ thống khởi động), hoặc đã quên thêm vào một dòng trong /etc/fstab để gắn kết phân vùng được sử dụng làm vùng nhớ ảo lúc khởi động, ví dụ như: 28
- Những câu hỏi thường gặp về Linux /dev/hda2 none swap sw Nếu bạn thấy: Unable to find swap-space signature9 tức là bạn đã quên chạy mkswap cho phân vùng đó. Hãy xem thêm các cuốn hướng dẫn (manual) để biết chi tiết. Nó hoạt động khá giống với mkfs. Hãy chạy thử lệnh free để xem dung lượng vùng nhớ còn trống, trên màn hình sẽ có một dòng tương tự với dòng sau: total used free Swap: 10 10188 2960 7228 Nếu gõ vào lệnh cat /proc/swaps chỉ cho thấy tên tập tin hay phân vùng, chứ không có thông tin về vùng nhớ ảo, khi đó tập tin hay phân vùng dùng làm vùng nhớ ảo cần phải thiết lập lại. Bạn có thể sử dụng fdisk (dưới quyền root) để xác định phân vùng nào trên đĩa cứng đã được chuẩn bị để làm vùng nhớ ảo. Phân vùng này cần phải định dạng với mkswap trước khi sử dụng nó bằng lệnh swapon. H: Làm sao để thêm vùng nhớ ảo? Đ: Ngoài các vùng nhớ sử dụng phân vùng đĩa cứng, Linux còn cho phép sử dụng tập tin làm vùng nhớ ảo (tập tin hoán đổi - swap file). Một vài chương trình, như g++, có thể sử dụng một lượng lớn bộ nhớ, cần phải tạo thêm vùng nhớ ảo bổ sung tạm thời trong lúc chạy. Ví dụ để tạo thêm một vùng nhớ ảo khoảng 64MB, bạn chạy lần lượt các lệnh sau: # dd if=/dev/zero of=/swap bs=1024 count=65535 # mkswap /swap # swapon /swap Đối số count= của lệnh dd xác định dung lượng của tập tin hoán đổi. Trong ví dụ này, tên tập tin hoán đổi là /swap, nhưng tên và vị trí trên thực tế là tùy ý, thường chỉ phụ thuộc vào dung lượng cần thiết và bạn có quyền được ghi vào thư mục nào. Khi bạn không cần vùng nhớ ảo đó nữa, hãy hủy nó bằng các lệnh sau: # swapoff /swap # rm /swap 29
- Những câu hỏi thường gặp về Linux Bạn cũng nên xem qua Installation HOWTO ( và Installation & Getting Started để có hướng dẫn chi tiết. Nếu vẫn không có đủ vùng nhớ ảo cần thiết, hãy tham khảo (“Làm thế nào để dùng trên 128Mb Swap”) H: Có thể loại bỏ LILO để hệ thống khởi động DOS lại không? Đ: Trình lilo (không phải toàn bộ gói phần mềm LILO) sử dụng tùy chọn -u trên dòng lệnh để gỡ bỏ LILO. Bạn phải cung cấp tên thiết bị mà bạn đã cài đặt LILO, ví dụ: lilo -u /dev/hda Nó sẽ ghi lại bản gốc trước khi cài LILO vào master boot record của đĩa cứng thứ nhất, được lưu giữ trong /boot/boot.0300. Nếu bạn đã cài LILO lên phân vùng như là một boot loader phụ, ví dụ /dev/hda1, lilo sẽ dùng bản gốc lưu ở /boot/boot.0301. Tham khảo thêm phần hướng dẫn (manual) của lilo để biết chi tiết. Cảm ơn Villy Krush đã nhắc tôi cập nhật câu trả lời này. Nếu bạn sử dụng phiên bản LILO cũ hơn, bạn sẽ phải dùng lệnh của DOS (MS-DOS 5.0 hoặc mới hơn, hay OS/2) FDISK /MBR (không có thông tin chính thức về lệnh này). Nó sẽ ghi đè lên lilo boot loader bằng Master Boot Record chuẩn của MS-DOS. Nếu bạn có DR-DOS 6.0, chạy FDISK.EXE theo cách thông thường và chọn Re-write Master Boot Record . Nếu bạn tạo đĩa khởi động trong quá trình cài đặt Windows, chắc chắn là nó có chứa các chương trình FDISK.EXE, FORMAT.COM, và SYS.COM. Hãy sử dụng chúng để cài đặt lại MS-DOS trên đĩa cứng. Nếu bạn không có MS-DOS hay DR-DOS, bạn cần có bản sao lưu của boot sector mà LILO lưu lại khi lần đầu bạn cài nó. Bạn vẫn còn giữ tập tin này chứ? Nó có thể mang tên boot.0301 hay cái gì đó tương tự. Hãy gõ vào: dd if=boot.0301 of=/dev/hda bs=445 count=1 (hay /dev/sda nếu bạn sử dụng đĩa loại SCSI). Nó cũng có thể dọn sạch partition table của bạn, tức là các phân vùng của bạn trên dĩa sẽ không còn, vì thế hãy cẩn thận! Nếu bạn thuộc loại liều lĩnh, bạn có thể dùng: dd if=/dev/zero of=/dev/hda bs=512 count=1 Nó sẽ xóa sạch partition table và boot sector. Sau đó bạn có thể định dạng lại đĩa bằng chương trình mà bạn thích. Nhưng nó sẽ làm cho nội dung trên đĩa của bạn trở nên không thể truy xuất được, và bạn sẽ mất sạch trừ khi bạn là một chuyên gia. Chú ý là DOS MBR sẽ khởi động bất cứ phân vùng nào (chỉ một mà thôi) được đánh dấu "active". Bạn cần dùng fdisk để đặt và xóa dấu "active" trên các phân vùng. 30
- Những câu hỏi thường gặp về Linux H: Tại sao fdformat cần quyền root? Đ: Để định dạng đĩa mềm bạn cần phải thực hiện dưới quyền root, ngay cả khi nó có quyền đối với /dev/fd0*. Nếu bạn muốn bất kỳ người dùng nào cũng có thể định dạng đĩa mềm, hãy thử fdformat2. Nó sẽ tránh được vấn đề vì nó được setuid cho root. H: Tại sao hệ thống kiểm tra partition Ext2fs mỗi khi khởi động lại? Đ: Tham khảo (“EXT2-fs: warning: mounting unchecked file system”) H: Tại sao hệ thống tập tin gốc của tôi là chỉ-đọc? Đ: Để hiểu được làm thế nào mà bạn lại bị như vậy, hãy xem phần (“EXT2-fs: warning: mounting unchecked file system”) Hãy gắn kết lại (remount) nó. Nếu /etc/fstab là chính xác, bạn chỉ cần gõ: mount -n -o remount / Nếu etc/fstab bị sai, bạn phải đưa thêm tên thiết bị và có thể cả kiểu của nó nữa, ví dụ như: mount -n -o remount -t ext2 /dev/hda2 / H: /proc/kcore là gì? Đ: Không có một tập tin nào trong /proc thực sự tồn tại cả, những tập tin đó được tạo bởi kernel, cho bạn các thông tin về hệ thống và không chiếm dung lượng của đĩa. /proc/kcore giống như một “bí danh” tới bộ nhớ trong máy tính của bạn. Kích thước của chúng bằng với dung lượng RAM mà bạn có, và nếu bạn đọc nó như là một tập tin, kernel sẽ thực hiện việc đọc trên bộ nhớ. H: Tại sao card AHA1542C không hoạt động trong Linux? Đ: Tùy chọn cho phép card AHA1542C có thể nhận ra được đĩa cứng hơn 1024 cylinders chỉ cần thiết cho các BIOS cũ dùng trong các máy để bàn, và nên tắt đi trong Linux. Với các kernel cũ hơn bạn cần phải tắt hầu hết các tùy chọn nâng cao trong BIOS trừ tùy chọn về quét tìm các thiết bị có thể khởi động được 11. H: Journalling File System ở đâu trên mạng? Đ: Linux hiện hỗ trợ khá nhiều journalling file systems. Ext3 hiện được gộp vào trong dòng kernel phiên bản 2.4.x. Đ: Một journalling file system có tên Reiserfs vừa được phát hành thử nghiệm. Nó được giới thiệu là làm cho Linux nhanh hơn hẳn khi dùng Linux với hệ thống tập tin Ext2, đặc biệt khi truy xuất tới nhiều tập tin nhỏ. 31
- Những câu hỏi thường gặp về Linux Toàn bộ thông tin có ở Đ: JFS vẫn đang được phát triển Porting, biên dịch và lấy chương trình H: Biên dịch chương trình như thế nào? Đ: Hầu hết các phần mềm trong Linux được viết bằng C và được biên dịch bằng trình biên dịch GNU (GNU C Compiler). GCC là một phần của các bản phân phối Linux. Phiên bản mới nhất của GCC, các tài liệu, và patch đặt tại Những chương trình viết bằng C++ phải được biên dịch bằng trình biên dịch GNU G++, cũng có trong các bản phân phối và được đặt cùng chỗ với GCC. Để biên dịch hạt nhân 2.0.x, bạn cần GCC phiên bản 2.7.2.x. Biên dịch các hạt nhân cũ với trình biên dịch khác, như GCC 2.8.x, EGCS, hoặc PGCC, có thể gây ra lỗi vì GCC related code dependencies. Hạt nhân phiên bản 2.2, 2.4, và 2.5 có thể được biên dịch bằng các trình biên dịch mới. Thông tin về trình biên dịch EGCS đặt tại Chú ý rằng tại thời điểm hiện nay, kernel developers không sửa lỗi cho các phiên bản cũ mà tập trung phát triển phiên bản 2.5 cũng như bảo trì các phiên bản 2.2.x và 2.4.x. H: Làm thế nào cài đặt phần mềm GNU? Đ: Trên hệ thống được cấu hình đúng, cài đặt các phần mềm GNU cần các bước sau: 1. Giải nén mã nguồn source.tar.gz: tar zxvf package-name.tar.gz 2. Chạy script ./configure trong thư mục mã nguồn vừa giải nén. Có thể thêm vào các tham số nếu cần. Các tham số được chấp nhậ thường được ghi trong tập tin INSTALL hoặc README. 3. Chạy make. Chương trình này sẽ biên dịch mã nguồn và tạo chương trình. Công đoạn này có thể mất vài phút hoặc có khi là vài giờ, tùy thuộc vào tốc độ máy tính và kích thước của chương trình cần biên dịch. 4. Chạy make install. để cài đặt chương trình, các tập tin cấu hình, và các tập tin khác vào thư mục thích hợp. H: Lấy Java ở đâu? Đ: Sun Microsystems Java runtime environments và developer’s kits đặt tại Bạn có thể lấy mã nguồn, với giấy phép của Sun Microsystems. 32
- Những câu hỏi thường gặp về Linux Đ: Trang chủ của trình biên dịch Java của IBM Jikes là Đ: Có một phiên bản của trình duyệt HotJava của Sun cho Linux tại: Đ: Kaffee, một bản sao Java, có tại: Đ: Có một trang về các gói java tự do và thương mại tại: Đ: Netscape Communicator dùng một phiên bản Java Runtime Environment riêng, vì thế nếu bạn chỉ cần Java để xem Web, bạn có lẽ đã có phiên bản đó rồi. Bạn có thể tải Communicator về từ H: Làm sao để chuyển XXX sang Linux? Đ: Nói chung, các chương trình *nix cần rất ít thay đổi. Đơn giản là theo các hướng dẫn cài đặt. Nếu bạn không biết và không biết làm sao để tìm câu trả lời cho vài câu hỏi trong quá trình cài đặt, bạn thử đoán, nhưng điều này dường như dễ làm cho chương trình gặp lỗi. Trong trường hợp này, bạn nên hỏi ai đó để chuyển qua Linux. Nếu bạn có một chương trình của BSD, bạn nên thử dùng -I/usr/include/bsd và -lbsd trên những phần thích hợp của quá trình biên dịch. H: ld.so là gì và làm sao lấy nó? Đ: ld.so là bộ nạp thư viện động 12. Mỗi chương trình dùng thư viện dùng chung13 thường cần khoảng 3K mã khởi động để tìm và nạp thư viện. Bây giờ đoạn mã đó được đặt trong một thư viện đặc biệt, /lib/ld.so, nhờ đó đó phí đĩa, và có thể được nâng cấp dễ dàng. ld.so có thể lấy từ và các mirror . Phiên bản mới nhất tại thời điểm viết bài này là ld.so.1.9.5.tar.gz. /lib/ld-linux.so.1 cũng như vậy, cho ELF (ELF là gì? glibc là gì?) và nằm trong cùng gói phần mềm như bộ nạp a.out. H: Làm sao cập nhật thư viện mà không làm hỏng hệ thống? Đ: Cảnh báo Bạn nên tạo sẵn đĩa cấp cứu để sẵn sàng thực hiện những thao tác này, trong trường hợp có cái gì đó không ổn! 33
- Những câu hỏi thường gặp về Linux Công việc này đặc biệt khó nếu bạn nân cấp các phiên bản rất cũ như libc4. Nhưng bạn nên giữ lại libc4 trên cùng hệ thống với libc5 cho những chương trình cần đến nó. Điều đó cũng đúng đối với việc cập nhật từ libc5 sang bản glibc2 mới hơn. Vấn đề với nâng cấp thư viện động là vào lúc bạn loại bỏ những thư viện cũ, các tiện ích bạn cần để nâng cấp sẽ không hoạt động. Đây là cách tránh điều đó. Một là đặt tạm thời một bản sao thu nhỏ của các thư viện runtime, đặt ở /lib/, /usr/lib/, hoặc /usr/local/lib/, hoặc một thư mục khác được liệt kê trong tập tin /etc/ld.so.conf. Ví dụ, khi nâng cấp thư viện libc5, các tập tin trong /lib/ có thể trông giống thế này: libc.so.5 libc.so.5.4.33 libm.so.5 libm.so.5.0.9 Đây là những thư viện C và thư viện toán học. Chép chúng vào một thư mục khác được liệt kê trong /etc/ld.so.conf, như /usr/lib/: $ cp -df /lib/libc.so.5* /usr/lib/ $ cp -df /lib/libm.so.5* /usr/lib/ $ ldconfig Hãy chắc chắn đã chạy ldconfig để cập nhật cấu hình thư viện. Các tập tin libc.so.5 và libm.so.5 là các liên kết biểu tượng14 trỏ đến các tập tin thực sự. Khi nâng cấp, không cần tạo liên kết mới nếu liên kết cũ vẫn còn, trừ khi bạng dùng cờ -f với lệnh cp. Cờ -d với lệnh cp sẽ chép chính liên kết biểu tượng, không phải tập tin nó trỏ tới. Nếu bạn cần trỏ liên kết trực tiếp tới thư viện, hãy dùng cờ -f với lệnh ln. Ví dụ, để chép thư viện mới đè lên cái cũ, hãy thử như sau. Tạo liên kết biểu tượng đến thư viện mới trước, sau đó chép cả hai thư viện và các liên kết vào /lib/, bằng các lệnh sau. $ ln -sf ./libm.so.5.0.48 libm.so.5 $ ln -sf ./libc.so.5.0.48 libc.so.5 $ cp -df libm.so.5* /lib $ cp -df libc.so.5* /lib Một lần nữa, nhớ chạy ldconfig sau khi chép thư viện. Nếu bạn đã thỏa mãn, bạn có thể loại bỏ các tập tin tạm của thư viện của ra khỏi /usr/lib/ hoặc nơi nào khác mà bạn chép vào. H: Có thể dùng mã hoặc trình biên dịch được tạo cho 486 để dùng trên 386 không? Đ: Có, trừ khi biên dịch kernel. 34
- Những câu hỏi thường gặp về Linux Tùy chọn -m486 của GCC, được dùng để biên dịch chương trình x486, chủ yếu tối ưu vài điềm. Chúng làm cho chương trình lớn hơn một chút và nhanh hơn một tí trên máy 486. Chúng vẫn chạy trên 386, mặc dù hiệu suất kém hơn. Tuy nhiên, từ phiên bản 1.3.35, kernel dùng chỉ thỉ riêng của 486 hoặc Pentium nếu được cấu hình cho 486 hoặc Pentium, vì thế nên không thể chạy trên 386. GCC có thể được cấu hình cho 385 hoặc 486: khác biệt duy nhất là cấu hình cho 386 dùng tùy chọn -m386 làm mặc định còn 486 dùng -m486 làm mặc định. Trong cả hai trường hợp, những tùy chọn này có thể bị ghi đè bằng cách sửa /usr/lib/gcc-lib/i*-linux/n.n.n/specs. Một bản alpha cho GCC biết tối ưu cho 586 như thế nào, nhưng nó không đáng tin cậy lắm, đặc biệt với các thiết lập tối ưu. Pentium GCC có ở GCC 486 nguyên thủy tạo mã tốt hơn cho Pentium bằng cách dùng -m386, or ít nhất cũng nhỏ hơn. H: Lệnh “gcc -O6” làm cái gì? Đ: Hiện thời thì cũng như -O2 (GCC 2.5) hoặc -O3 (GCC 2.6, 2.7). Bất kỳ số nào lớn hơn số này điều làm như nhau. Tập tin Makefiles của các kernel mới dùng -O2, và bạn cũng nên làm như vậy. H: linux/*.h và asm/*.h ở đâu? Đ: Các thư mục /usr/include/linux/ và /usr/include/asm/ thường là các liên kết trỏ tới thư mục chứa kernel header, thường nằm tại /usr/src/kernel*/. Nếu bạn không có mã nguồn kernel, hãy tải chúng về. Hãy tham khảo câu trả lời: (“Làm thế nào để nâng cấp/biên dịch lại hạt nhân”) Sau khi tải, dùng rm để xóa những tập tin cũ, và ln để tạo liên kết: $ rm -rf /usr/include/linux /usr/include/asm $ ln -sf /usr/src/linux/include/linux /usr/include/linux $ ln -sf /usr/src/linux/include/asm- /usr/include/asm Các tập tin assembly nằm trong các thư mục riêng biệc cho từng hệ máy, vì thế bạn cần liên kết /usr/src/include/asm tới /usr/src/linux/include/asm-i386 trên máy PC, tới /usr/src/linux/include/asm-sparc trên máy Sun Sparc, tới /usr/src/linux/include/asm-ppc trên PPC, và tương tự thế. Bạn cũng sẽ nhận ra cần “make config” như trong mã nguồn kernel mới, để tạo linux/autoconf.h. H: Phải làm gì với lỗi khi biên dịch hạt nhân? Đ: Xem câu hỏilinux/*.h và asm/*.h ở đâu?. Hãy nhớ rằng khi bạn “patch” kernel, bạn phải dùng tùy chọn “-p0” hoặc “-p1”. Nếu không, có thể sẽ patch sai. Xem tài liệu patch để biết chi tiết. “ld: unrecognized option ‘-qmagic’” nghĩa là bạn cần có bộ liên kết mới hơn, từ trong tập tin binutils-2.8.1.0.1.bin.tar.gz. 35
- Những câu hỏi thường gặp về Linux H: Làm thế nào tạo thư viện dùng chung? Đ: Với ELF, $ gcc -fPIC -c *.c $ gcc -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0 *.o Với a.out, lấy tools-n.nn.tar.gz từ tsx-11.mit.edu/pub/linux/packages/GCC/src/. Nó có tài liệu đi kèm, sẽ cho bạn biết cần làm gì. Chú ý rằng thư viện dùng chung a.out rất phức tạp, rắc rối. Hãy xem xét nâng cấp thư viện của bạn lên ELF. Xem ELF HOWTO, tại H: Tại sao chương trình của tôi quá lớn? Đ: Với trình biên dịch ELF (“ELF là gì? glibc là gì?”), nguyên nhân thường nhất là thiếu liên kết thư viện .so với mỗi thư viện bạn dùng. Nên có một liên kết như libc.so với mỗi thư viện như libc.so.5.2.18. Với trình biên dịch a.out nguyên nhân thường nhất là tùy chọn liên kết -g. Tùy chọn này tạo ra một chương trình được liên kết tĩnh, chứa mọi thư viện nó cần thay vì liên kết với các thư viện đó. Những tùy chọn khác đáng quan tâm là -O và -O2, cho phép tối ưu (xem tài liệu GCC), và -s (hoặc lệnh strip) để loại bỏ những thông tin symbol ra khỏi chương trình (và cũng có nghĩa là hoàn toàn không thể debug). Bạn có thể sẽ muốn dùng tùy chọn -N trên nhưng chương trình rất nhỏ (nhỏ hơn 8K với -N), nhưng bạn không nên làm thế trừ khi bạn hiểu tác động về hiệu suất của tùy chọn này, và hoàn toàn không nên làm với daemon. H: Linux có hỗ trợ tuyến đoạn (thread) và tiến trình nhẹ cân (lightweight process) không? Đ: Cũng như mô hình đa tiến trình Unix, bao gồm đến các tiến trình nhẹ cân, là một phần của Linux kernel chuẩn, có vài phiên bản tiến trình hoặc thread nhẹ cân. Các kernel gần đây dùng mô hình thread là kthreads. Ngoài ra, cũng có thể dùng những gói phần mềm sau. • GNU glibc2 cho Linux có tùy chọn hỗ trợ thread: • Trong sipb.mit.edu:/pub/pthread/ hoặc ftp.ibp.fr:/pub/unix/threads/pthreads. Tài liệu không nằm trong gói này, nhưng có tại Các phiên bản libc mới hơn chứa mã nguồn pthreads. Trình biên dịch GNU Ada trên chứa chương trình được tạo từ mã nguồn đó. • QuickThreads ở Thông tin chi tiết nằm trong các báo cáo kỹ thuật, nằm cùng địa chỉ, /tr/1993/05/UW-CSE-93-05-06.PS.Z. • lwp ở gummo.doc.ic.ac.uk/rex/ (gummo.doc.ic.ac.uk/rex) , một phiên bản rất nhỏ. • Một phiên bản của Ada ở Có nhiều tài liệu PostScript mà bạn có thể học được nhiều thông tin bổ ích về thread. Không thể sử dụng trực tiếp trong Linux. Vui lòng liên lạc tác giả các gói phần mềm trên để biết chi tiết. 36
- Những câu hỏi thường gặp về Linux H: Có thể tìm lint cho Linux ở đâu Đ: Tính năng gần tương đương được cài sẵn trong GCC. Hãy dùng tùy chọn -Wall để bật hầu hết các cảnh báo bổ sung rất hữu dụng. Xem tài liệu GCC để biết chi tiết (gõ F1-i trong Emacs và chọn mục GCC). Có một phiên bản khác gọi là lclint thực hiện như lint. Mã nguồn đặt tại hoặc H: Có thể tìm Kermit cho Linux ở đâu? Đ: Mã nguồn và chương trình có tại Trang chủ của dự án Kermit Đại học Columbia là H: Làm thể nào để dùng Cable Modem trong Linux? Đ: www.CablemodemInfo.com và trang web xDSL tại có một phần dành cho Linux. Ngoài ra hãy xem Cable-Modem-HOWTO ( tại LDP. H: Có chương trình ICQ nào chạy trong Linux không? Đ: Vài ICQ client có trên metalab.unc.edu ( (Hãy tham khảo: “FTP của Linux ở đâu?”) ICQ gốc không có Linux client, nhưng có một bản Java client tại Giải pháp cho các vấn đề linh tinh thông thường H: Tại sao FTP dường như bị treo? Đ: FTP bị chết đột ngột thường do tràn vùng đệm. Trên các hệ Linux, vấn đề này dường như xuất hiện thường xuyên nhất với các phần mềm server trong các bản phân phối. Nếu bạn nhận được lỗi ftp: connection refused, thường là do thiếu xác thực (authentication). Hãy tham khảo “Tại sao FTP hoặc Telnet server của tôi không cho phép đăng nhập?.” Một giải pháp là thay thế các server FTP trong các bản phân phối bằng server FTP của OpenBSD. Trang chủ của chương trình là: Để cài đặt server này, hãy theo các chỉ dẫn cài đặt, và tham khảo man page của inetd và [inetd.conf]. (Nếu bạn chưa quen xinetd, hãy xem bên dưới.) Hãy kiểm tra để chắc chắn cho [inetd] biết cần chạy BSD daemon độc lập, không phải là một tiến trình con, ví dụ như là tiến trình con của [tcpd]. Comment những dòng bắt đầu bằng “ftp” trong tập tin [/etc/inetd.conf] và thay bằng một dòng tương tự như sau (nếu bạn cài đặt bản [ftpd] mới trong [/usr/local/sbin/]): 37
- Những câu hỏi thường gặp về Linux # Original entry, commented out. #ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd # Replacement entry: ftp stream tcp nowait root /usr/local/sbin/ftpd -l Daemon thay thế sẽ hoạt động sau khi khởi động lại inetd hoặc gửi tín hiệu (với quyền root) SIGHUP cho inetd, v.d.: # kill -HUP inetd Để cấu hình [xinetd], hãy tạo một mục trong [/etc/xinetd.d] per the instructions in the [xinetd.conf] manual page. Hãy kiểm tra để chắc chắn các tham số cho [ftpd] là đúng, và bạn đã cài tập tin /etc/ftpusers và [/etc/pam.d/ftp]. Sau đó hãy khởi động lại [xinetd] bằng lệnh: /etc/rc.d/init.d/xinetd restart. Lệnh này sẽ báo "OK", system message log sẽ lưu thông báo này. H: Tại sao free tạo core? Đ: Với Linux 1.3.57 trở đi, dạng thức của /proc/meminfo đã bị thay đổi nên free không hiểu. Hãy lấy phiên bản free mới nhất, từ metalab.unc.edu, trong [/pub/Linux/system/Status/ps/procps-0.99.tgz]. H: Tại sao Netscape bị hỏng thường xuyên? Đ: Netscape khó bị crash nếu nó được cấu hình đúng, và cấu hình mạng cũng đúng. Vài thứ cần kiểm tra là: • Hãy kiểm tra biến môi trường MOZILLA_HOME xem có đúng không. Nếu bạn cài Netscape trong /usr/local/netscape/, ví dụ, vậy thì đó cũng là giá trị của MOZILLA_HOME. Hãy đặt biến môi trường bằng dòng lệnh (v.d, "export MOZILLA_HOME="/usr/local/netscape"" trong bash hoặc thêm dòng đó vào tập tin khởi động hệ thống hoặc tập tin khởi động của người dùng. Hãy tham khảo man page của shell để biết cách dùng lệnh. • Nếu bạn dùng phiên bản brand-new, hãy thử với các phiên bản cũ hơn, đề phòng trường hợp không tương thích thư viện run-time. Ví dụ, Netscape 4.75 được cài (gõ "netscape version" tại dấu nhắc shell), hãy thử cài bản 4.7. Mọi phiên bản được lưu tại • Netscape dùng thư viện Motif và Java Runtime Environment (JRE) riêng. Nếu có một phiên bản khác của các thư viện này đã được cài trên máy bạn trước đó, hãy đảm bảo rằng chùng không interfer with Netscape’s libraries; v.d., bằng cách gỡ bỏ chúng. • Hãy chắc chắn rằng Netscape có thể kết nối tới name server mặc định của nó. Nếu chương trình có vẻ ngừng hoạt động trong vài phút thì có lẽ là nó không kết nối được tới name server mặc định của nó, nghĩa là hệ thống không thể kết nối tới các máy khác. 38
- Những câu hỏi thường gặp về Linux H: Tại sao FTP hoặc Telnet server của tôi không cho phép đăng nhập? Đ: Những điều sau đây chỉ áp dụng cho các server có trả lời cho client, nhưng lại không cho phép đăng nhập. Trên các hệ thống mới có cài Pluggable Authentication Module (PAM), hãy xem các tập tin tên là [ftp] hoặc [telnet] trong thư mục /etc/pam/ hoặc trong [/etc/pam.d/]. Nếu tập tin tương ứng không tồn tại, hãy xem chỉ dẫn cấu hình xác thực FTP và Telnet và các cấu hình PAM khác, đặt ở /usr/doc/pam- ]. Ngoài ra hãy tham khảo câu trả lời cho "FTP kêu rằng: 421 service not available, remote server has closed connection " Nếu FTP server đặt trên một hệ thống cũ, hãy kiểm tra xem tài khoản được dùng có tồn tại trong tập tin /etc/passwd hay không, đặc biệt là tài khoản “anonymous.” Loại lỗi này có thể do lỗi phân giải địa chỉ máy, đặt biệt nếu bạn dùng Reverse Address Resolution Protocol (RARP). Câu trả lời đơn giản là liệt kê toàn bộ tên máy có liên quan và địa chỉ IP của máy đó vào trong tập tin /etc/hosts trên mỗi máy. (Hãy xem ví dụ về tập tin /etc/hosts và [/etc/resolv.conf] tại: "Sendmail dừng tới một phút với mỗi lệnh.") Nếu mạng có DNS nội bộ, hãy kiểm tra để chắc chắn mỗi máy có thể phân giải địa chỉ mạng bằng DNS đó. Nếu máy hoàn toàn không trả lời FTP hoặc Telnet client thì có lẽ daemon của server đã được cài đặt không đúng, hoặc chưa cài đặt. Hãy tham khảo man page: inetd và inetd.conf trên các hệ thống cũ, or xinetd và xinetd.conf, cũng như ftpd, và telnetd. H: Làm sao theo dõi Bookmark trong Netscape? Đ: Điều này có lẽ áp dụng cho hầu hết các trình duyệt khác luôn. Trong menu Preferences/Navigator, đặt trang chủ của Netscape là bookmarks.html, nằm trong thư mục .netscape (có dấu chấm ở đầu). Ví dụ, nếu tên đăng nhập của bạn là “smith,” hãy đặt trang chủ là: file://home/smith/.netscape/bookmarks.html Thiết lập trang chủ như trên sẽ thể hiện một trang bookmark đẹp khi Netscape khởi động, và được tự động cập nhật bất cứ khi nào bạn thêm, xóa hoặc thăm một site nào đó được bookmark. H: Tai sao máy tính lưu sai giờ? Đ: Có hai đồng hồ trong máy tính. Đồng hồ phần cứng (CMOS) luôn chạy kể cả khi tắt máy. Đồng hồ này được dùng khi hệ thống khởi động và được dùng bởi DOS (nếu bạn dùng DOS). Thời gian hệ thống, được hiển thị và sửa đổi bằng lệnh date, được hạt nhân quản lý trong khi Linux đang chạy. Bạn có thể hiển thị thời gian của đồng hồ CMOS, hoặc đặt giờ của đồng hồ này nhờ cái còn lại, bằng /sbin/clock (bây giờ được gọi là hwclock trong nhiều bản phân phối). Hãy tham khảo: man 8 clock hoặc man 8 hwclock. Có nhiều chương trình khác nhau có thể sửa một trong hai hoặc cả hai đồng hồ for system drift hoặc truyền thời gian xuyên mạng. Vài chương trình trong số đó có thể đã được cài trên hệ thống của bạn. Hãy thử tìm adjtimex (corrects for drift), các client Giao thức Thời gian Mạng (Network Time Protocol - NTP) như netdate, getdate, và xntp, hoặc bộ client server NTP như chrony. Hãy tham khảo: “Tìm các phần mềm đặc biệt như thế nào?.” 39
- Những câu hỏi thường gặp về Linux H: Tại sao script có setuid không hoạt động? Đ: Chúng không được thiết kế để hoạt động được. Tính năng này đã được vô hiệu hóa trong hạt nhân Linux, vì các script có setuid rất dễ tạo ra lỗ hổng bảo mật. Sudo và SuidPerl có thể cung cấp một cơ chế an toàn hơn so với các script hoặc chương trình có setuid, đặc biệu trong trường hợp quyền thực thi được giới hạn cho một người dùng hoặc một nhóm người dùng. Nếu bạn muốn biết tại sao script có setuid tạo ra lỗ hổng bảo mật, hãy đọc FAQ của comp.unix.questions. H: Tại sao lượng bộ nhớ trống (Free Memory) được báo cáo bởi free ngày càng ít? Đ: Lượng bộ nhớ “trống” in bởi free không tính lượng bộ nhớ được dùng là vùng đệm đĩa, được hiển thị trong cột “buffers”. Nếu bạn muốn biết thực sự còn trống bao nhiêu bộ nhớ, hãy cộng phần bộ nhớ trong “buffers” vào khoảng “free.” Các phiên bản free mới hơn in dòng thông tin mở rộng chứa thông tin này. Vùng đệm đĩa có khuynh hướng tăng nhanh sau khi Linux khởi động. Khi bạn nạp chương trình và đọc tập tin, chúng sẽ được cache. Tuy nhiên lượng cache sẽ trở nên ổn định sau một khoảng thời gian. H: Tại sao hệ thống chậm đi khi thêm bộ nhớ? Đ: Đây là triệu chứng thông thường khi gặp lỗi cách bộ nhớ bổ sung. Vấn đề chính xác phụ thuộc vào motherboard của bạn. Đôi khi bạn bật cache trên một số vùng nhất định trong thiết lập BIOS. Hãy xem lại thiết lập CMOS xem có tùy chọn nào cache vùng nhớ mới, mà hiện chưa được bật không. Điều này xảy ra thường xuyên với 486. Đôi khi RAM phải được cắm vào đúng socket mới có thể được cache. Đôi khi bạn phải đặt jumper để bật cache. Đôi khi motherboards không cache toàn bộ RAM nếu bạn có nhiều RAM trên mỗi lượng cache hơn dự đoán. Thường full cache 256K sẽ xử lý vấn đề này. Nếu nghi ngờ, hãy xem lại tài liệu. Nếu bạn vẫn không thể sửa lỗi vì tài liệu không thích hợp, bạn có thể gửi thông báo lên comp.os.linux.hardware, cung cấp đầy đủ thông tin chi tiết, số model, date code, , nhờ đó người khác có thể tránh dùng nó. H: Tại sao vài chương trình (v.d. xdm) không cho phép đăng nhập? Đ: Có lẽ bạn dùng chương trình dùng mật khẩu non-shadow trong khi bạn lại đang dùng mật khẩu shadow. Nếu thế, bạn cần phải lấy một phiên bản mới dùng mật khẩu shadow và biên dịch lại. Bộ chương trình mật khẩu shadow đặt tại Đó là mã nguồn. Mã nhị phân có lẽ trong [linux/binaries/usr.bin/]. 40
- Những câu hỏi thường gặp về Linux H: Tại sao vài chương trình cho phép đăng nhập không cần mật khẩu? Đ: Có lẽ bạn gặp vấn đề như (“Tại sao vài chương trình (v.d. xdm) không cho phép đăng nhập?”), cộng thêm vài thứ khác. Nếu bạn dùng mật khẩu shadow, bạn nên thêm ký tự x hoặc một dấu sao vào trường mật khẩu của mỗi tài khoản trong tập tin /etc/passwd, nhờ đó nếu một chương trình nào đó không biết mật khẩu shadow, nó sẽ không nghĩ rằng đó là tài khoản không có mật khẩu rồi cho phép đăng nhập tự do. H: Tại sao máy chạy rất chậm với GCC / X / ? Đ: Có lẽ do bạn có quá ít bộ nhớ. Nếu bạn có ít RAM hơn lượng cần thiết cho các chương trình bạn đang chạy, Linux sẽ swap đĩa cứng của bạn và chạy chậm kinh khủng. Giải pháp trong trường hợp này là đừng chạy cùng lúc quá nhiều chương trình hoặc mua thêm RAM. Bạn cũng có thể tăng bộ nhớ bằng cách biên dịch hạt nhân với ít tùy chọn hơn. Hãy xem (“Làm thế nào để nâng cấp/biên dịch lại hạt nhân”) Bạn có thể biết đang dùng bao nhiêu bộ nhớ và vùng hoán đổi bằng lệnh free, hoặc bằng cách gõ: $ cat /proc/meminfo Nếu hạt nhân của bạn được cấu hình với RAM disk, có thể điều đó làm phí phạm bộ nhớ và làm cho hệ thống chậm đi. Hãy dùng LILO hoặc rdev để bảo hạt nhân đường tạo RAM disk (hãy xem tài liệu LILO hoặc gõ “man rdev”). H: Tại sao hệ thống chỉ cho phép đăng nhập root? Đ: Có thể bạn đang gặp vấn đề về quyền truy cập, hoặc bạn có tập tin /etc/nologin. Trong trường hợp sau, hãy đặt dòng “rm -f /etc/nologin” vào tập tin [/etc/rc.local] hoặc [/etc/rc.d/*] của bạn. Trong trường hợp khác, hãy kiểm tra lại quyền truy cập của shell của bạn và bất kỳ tập tin nào xuất hiện trong thông báo lỗi, và cả các thư mục chứa những tập tin đó cho tới thư mục gốc. H: Tại sao màn hình đầy những ký tự kỳ lạ? Đ: Có lẽ do bạn đã lỡ gửi dữ liệu nhị phân ra màn hình. Hãy gõ echo -e ’\ec’ để sửa lỗi. Nhiều bản phân phối có lệnh reset để làm công việc tương tự. Nếu vẫn không được, hãy thử gửi lệnh escape trực tiếp ra màn hình. $ echo ’Ctrl-V Ctrl-O’ Việc này phục hồi font mặc định của console. Nhớ giữ phím Control và gõ ký tự thay vì ấn phím Control, buông ra, rồi mới gõ ký tự. Chuỗi lệnh 41
- Những câu hỏi thường gặp về Linux $ echo ’Ctrl-V Esc C’ reset toàn màn hình. If there’s data left on the shell command line after typing a binary file, nhấn Ctrl-C vài lần để phục hồi dấu nhắc shell. Lệnh khác có thể dùng là một bí danh15,“sane”, có thể làm việc với các terminal thông thường: $ alias sane=‘echo -e " c";tput is2; > stty sane line 1 rows $LINES columns $COLUMNS‘ Lệnh trên dùng dấu nháy ngược (kế bên phím số 1), không phải nháy đơn. Xuống hàng chỉ để cho rõ ràng, không cần thiết phải làm như vậy. Hãy bảo đảm rằng $LINES và $COLUMNS đã được định nghĩa trong [~/.cshrc] hoặc [~/.bashrc] bằng một lệnh giống như lệnh sau: $ LINES=25; export $LINES; $COLUMNS=80; export $COLUMNS Đặt $LINES và $COLUMNS đúng bằng số dòng và số cột của terminal của bạn. Cuối cùng, đầu ra của “stty -g” có thể được dùng để tạo shell script để reset terminal: 1. Lưu kết quả đầu ra của “stty -g” vào tập tin. Trong ví dụ này, tập tin đó là “termset.”: $ stty -g >termset Kết quả của “stty -g” (nội dung của “[termset]”) sẽ trông giống thế này: 500:5:bd:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:73 2. Sửa “[termset]” thành shell script bằng cách thêm interpreter và lệnh “stty”: #!/bin/bash stty 500:5:bd:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:73 3. Đặt quyền thực thi cho “termset” và dùng như một shell script: $ chmod +x termset $ ./termset H: Nếu tôi quậy hệ thống và không thể đăng nhập được thì làm thế nào để khắc phục? Đ: Bạn đã tạo đĩa mềm khẩn cấp rồi, phải không? Hãy khởi động từ đĩa mềm đó. Ví dụ, cặp đĩa mềm của Slackware (gồm đĩa khởi động và đĩa root) nằm trong thư mục install của bản phân phối Slackware. 42
- Những câu hỏi thường gặp về Linux Đ: Ngoài ra còn có hai gói phần mềm tự tạo đĩa khẩn cấp ở Những cái này tốt hơn vì chúng chứa luôn hạt nhân trên đĩa, vì thế bạn không phải lo nguy cơ thiếu các thiết bị và hệ thống tập tin. Hãy mở shell và gắn kết ổ đĩa cứng bạn bằng dòng lệnh tương tự như $ mount -t ext2 /dev/hda1 /mnt Sau đó hệ thống tập tin của bạn sẽ được gắn với thư mục /mnt và bạn có thể sửa lỗi. Hãy nhớ tháo gắn kết đĩa cứng trước khi khởi động lại (cd ra ngoài trước, nếu không nó sẽ báo “busy”). H: Điều gì sẽ xảy ra nếu tôi quên mật khẩu root? Đ: Cảnh báo Một sai phạm trong việc hiệu chỉnh những tập tin trong thư mục /etc có thể làm hỏng hệ thống bạn. Hãy tạo một bản sao của bất cứ tập tin nào bạn định sửa để đề phòng sai sót. Nếu bản phân phối của bạn cho phép khởi động chế độ người dùng đơn (single-user), hãy thử khởi động chế độ này bằng cách gõ “single” tại dấu nhắc BOOT lilo:. Nhiều bản phân phối gần đây cho phép khởi động chế độ người dùng đơn bằng cách gõ “linux 1,” “linux single,” hoặc “init=/bin/bash.” Nếu cách trên không được, hãy khởi động từ đĩa cài đặt hoặc đĩa mềm, và chuyển sang console ảo khác bằng Alt-F1 Alt-F8, và sau đó gắn kết hệ thống tập tin gốc vào /mnt. Sau đó thực hiện những bước dưới đây để xác định xem hệ thống bạn dùng mật khẩu chuẩn hãy mật khẩu shadow, và làm cách nào để bỏ mật khẩu. Dùng trình soạn thảo ưa thích của bạn để sửa mục root trong tập tin /etc/passwd để bỏ mật khẩu. Mật khẩu được đặt giữa dấu hai chấm đầu và dấu hai chấm thứ hai. “Chỉ làm vậy trừ khi trường mật khẩu chỉ chứa một ký tự ‘x’. Trong trường hợp đó, hãy xem bên dưới” root:Yhgew13xs:0:0: Đổi thành: root::0:0: Nếu mật khẩu chỉ chứa một ký tự “x,” bạn phải bỏ mật khẩu trong tập tin /etc/shadow, có cùng dạng thức với tập tin /etc/passwd. Hãy tham khảo man page: “man passwd,” và “man 5 shadow.” 43
- Những câu hỏi thường gặp về Linux H: Đâu là lỗ hổng bảo mật nghiêm trọng của lệnh rm!?!?! Đ: Không có. Rõ ràng bạn cò lạ lẫm với các hệ điều hành họ Unix và cần đọc một cuốn sách để hiểu mọi thứ hoạt động ra sao. Đầu mối: khả năng xóa tập tin phụ thuộc vào quyền truy cập ghi của thư mục đó. H: Tại sao lpr và/hoặc lpd không hoạt động? Đ: Trước hết, hãy kiểm tra để chắc chắn [/dev/lp*] được cấu hình đúng. IRQ và địa chỉ cổng cần phải đúng với các thiết lập trên card máy in. Bạn sẽ có thể xuất một tập tin trực tiếp ra máy in: $ cat the_file >/dev/lp1 Nếu lpr đưa ra thông báo như “myname@host: host not found”, có nghĩa là có khả năng giao diện loopback, lo, không hoạt động. Hỗ trợ loopback có trong hầu hết các bản phân phối của hạt nhân. Hãy kiểm tra xem giao diện này được cấu hình đúng không bằng lệnh ifconfig. Theo quy ước, địa chỉ mạng sẽ là 127.0.0.0 và địa chỉ máy cục bộ là 127.0.0.1. Nếu mọi thứ được cấu hình đúng, bạn sẽ có thể telnet tới chính máy bạn và có thể đăng nhập thông qua telnet. Hãy kiểm tra để chắc chắn [/etc/hosts.lpd] chứa tên máy của bạn. If your machine has a network-aware lpd, like the one that comes with LPRng, make sure that [/etc/lpd.perms] is configured correctly. Ngoài ra hãy xem Printing HOWTO ( Tài liệu ở đâu?. H: Tại sao Timestamps tên tập tin trên partition MS-DOS không đúng? Đ: Có một lỗi trong chương trình clock (thường được đặt trong /sbin). Nó đếm thiếu một múi giờ, lẫn lột giây với phút hoặc với thứ khác. Hãy dùng phiên bản mới hơn. H: Làm thế nào để LILO khởi động kernel image? Đ: Từ phiên bản hạt nhân 1.1.80 trở đi, các kernel image nén, được dùng bởi LILO, đặt tại [arch/i386/boot/zImage], hoặc [arch/i386/boot/bzImage] khi được tạo ra, và thường được lưu trong thư mục /boot/. Tập tin [/etc/lilo.conf] thường dùng liên kết biểu tượng vmlinuz symbolic link, không phải là kernel image thật sự. Điều này được thay đổi để việc tạo kernel cho các bộ xử lý khác nhau dễ dàng hơn từ một source tree. H: Làm thế nào để bảo đảm hệ thống sẽ khởi động sau khi cài đặt lại hệ điều hành? Đ: Chỉ dẫn này sẽ làm việc bất kể bạn cài đặt lại Linux hay các hệ điều hành khác: • Đút đĩa trắng, đã định dạng vào ổ đĩa A: • Lưu bản sao của Master Boot Record (MBR) của đĩa cứng vào đĩa mềm bằng lệnh: # dd if=/dev/hda of=/dev/fd0 count=1 dd là một chương trình chuẩn trên hệ thống Linux. Phiên bản cho MS-Windows có tại cũng như tại nhiều MS software archive khác. 44
- Những câu hỏi thường gặp về Linux • Kiểm tra xem đĩa mềm có khởi động hệ thống không, bằng cách khởi động lại hệ thống khi vẫn để đĩa trong ổ đĩa A:. • Sau đó bạn có thể cài đặt hệ điều hành khác (trên đĩa cứng khác và/hoặc trên partition khác, nếu bạn không muốn gỡ bỏ Linux). • Sau khi cài đặt, hãy khởi động Linux bằng đĩa mềm và cài đặt lại MBR bằng lệnh: /sbin/lilo. H: Tại sao card PCMCIA của tôi không hoạt động sau khi nâng cấp hạt nhân? Đ: Môđun dịch vụ Card PCMCIA, nằm trong /lib/modules/version/pcmcia, với version là phiên bản của kernel, dùng thông tin cấu hình riêng cho kernel image. Các môđun PCMCIA sẽ không hoạt động với kernel khác. Bạn cần nâng cấp môđun card PCMCIA khi nâng cấp kernel. Khi nâng cấp từ kernel cũ, chắc rằng bạn có phiên bản thư viện run-time, gói module, mới nhất (hoặc khá mới). Tham khảo tập tin Documentation/Changes trong mã nguồn kernel để biết chi tiết. Quan trọng: Nếu bạn dùng Dịch vụ Card PCMCIA, đừng bật tùy chọn Network device support/Pocket và portable adapters trong menu cấu hình kernel, vì nó xung đột với các môđun trong Dịch vụ Card PCMCIA. Biết các mối liên hệ môđun PCMCIA trong kernel cũ rất hữu dụng. Bạn cần lưu thông tin đó lại. Ví dụ, nếu card PCMCIA của bạn phụ thuộc vào thiết bị cổng tuần tự được cài đặt bằng môđun trên kernel cũ, bạn cần đảm bảo môđun tuần tự đó cũng có trong kernel mới luôn. H: Làm thế nào để loại bỏ (hoặc thay đổi) màu sắc trong cách hiển thị của lệnh ls? Đ: Nếu ls đang hiển thị màu và bạn không muốn thế, có lẽ bạn đang dùng alias của lệnh này. Vài bản phân phối mặc định dùng cách này. Lệnh shell, “unalias ls,” sẽ bỏ alias mà bản phân phối dùng. Để dùng lâu dài, hãy sửa script khởi động của bạn, .bashrc. Đ: Để thay đổi màu sắc hơn là bỏ màu, hãy xem man page của ls man page (“man ls”). H: Tại sao chương trình không hoạt động trong thư mục hiện thời? Đ: Vì thư mục hiện thời không nằm trong đường dẫn tìm kiếm, vì lý do bảo mật, cũng như để đảm bảo bạn dùng bạn dùng đúng phiên bản của các chương trình. Nếu một kẻ xâm nhập có thể tạo một tập tin (một chương trình) trong thư mục công cộng, như /tmp, người đó sẽ có thể chạy chương trình đó nếu nó nằm trong đường dẫn tìm kiếm. Giải pháp cho vấn đề này là gộp cả thư mục khi gọi lệnh; v.d., dủng “./myprog,” thay vì “myprog.” Hoặc là thêm thư mục hiện thời vào biến môi trường PATH; v.d., “export PATH=".:"$PATH” trong bash, mặc dù cách này không được khuyến khích vì lý do nêu trên. 45