还是摘抄,不过我写入了一些改变而已:ubuntu 9.04 优化

来源:互联网 发布:windows10系统优化 编辑:程序博客网 时间:2024/05/22 06:12

1.构建Java环境


在ubuntu下配置java可以说既简单又不简单。熟悉的人都知道,ubuntu下有默认的jdk,也就是open-jdk。但是很多人都不喜欢用。卸载执行:
代码:
sudo apt-get autoremove openjdk-6*

选择默认 java
sudo update-alternatives --config java

2、安装JDK

下载JDK解压安装:
(1)从Java官方网站: http://java.sun.com/javase/downloads/index.jsp , 直接点击Download下载你要的版本, 当前最新版本是JDK 6 Update 14, 也可以进入 Previous Releases 页面下载JDK5等以前的低版本。

(2)下载需要填写你的信息,注意需要输入正确的Email,收到邮件后才能打开下载连接。然后选择环境和语言并接受License协议,Continue。

(3)下载jdk-6u16-linux-i586-rpm.bin 或 jdk-6u16-linux-i586.bin ,建议下载第二个连接。

(4)下载后将文件放置到你想要安装的目录下(我安装的是:/home/lujisheng/wwwroot),使用终端运行,然后不断敲击回车,直到出现yes/no选项,按y在当前目录下安装,最后显示Done完成。

    把下载的文件拷贝到你要安装的目录下(xxxx为你的用户):
      sudo cp /home/xxxx/desktop/jdk-6u16-linux-i586.bin /home/lujisheng/wwwroot

    进入当前目录:
      cd /home/lujisheng/wwwroot

    修改执行权限:
      sudo chmod u+x ./jdk-6u16-linux-i586.bin

    切换用户:
      su root
      password:

    执行命令安装:
      ./jdk-6u16-linux-i586.bin

配置环境变量:

(1)JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/Tomcat等软件就是通过搜索JAVA_HOME变量来使用安装好的jdk。

(2)JRE_HOME环境变量。它指向jre的安装目录。JVM运行时需要搜索JRE_HOME变量来使用安装好的jre环境。

(3)PATH环境变量。bin目录中包含经常要用到的Java可执行文件,如javac/java/javadoc,设置好PATH变量,就可以在任何目录下执行这些工具。

(4)CLASSPATH环境变量。指定类搜索路径,JVM就是通过CLASSPTH来寻找类。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当前目录“.”也必须加入到该变量中。
(5)配置环境变量,修改/etc/profile

    在终端运行:sudo gedit /etc/profile,在umask 022之前加上

      export JAVA_HOME=/home/lujisheng/wwwroot/jdk1.6.0_16
      export JRE_HOME=/home/lujisheng/wwwroot/jdk1.6.0_16/jre
      export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
      export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
  
      要使配置生效,可以执行:
      source /etc/profile

(6)在终端下显示设置的变量
    需在shell终端执行下列命令即可:

      echo $JAVA_HOME
      echo $JRE_HOME
      echo $PATH
      echo $CLASSPATH

3.测试jdk

(1)在终端输入java -version,如果能看到版本信息就说明安装成功了。
      java version "1.6.0_18"
      (如果没有显示正确的版本信息,说明你还没有安装成功,请重新检查之前的安装步骤)

(2)用文本编辑器新建一个Test.java文件,在其中输入以下代码并保存:
    public class test {
      public static void main(String args[]) {
        System.out.println("Jdk test !");
      }
    }
    编译:在shell终端执行命令 javac test.java
    运行:在shell终端执行命令 java test
    当shell下出现"Jdk test!"字样则jdk运行正常。

 

2、安装tomcat6
(1)从tomcat官方网站http://tomcat.apache.org/download-60.cgi 下载bin版本tar.gz
  
    把下载的文件拷贝到你要安装的目录下(xxxx为你的用户):
      sudo cp /home/xxxx/desktop/apache-tomcat-6.0.20.tar.gz /home/lujisheng/wwwroot

    把下载的文件解压到你要安装的目录下:
      cd /home/lujisheng/wwwroot
      sudo tar zxvf ./apache-tomcat-6.0.20.tar.gz

(2)设置CATALINA_HOME环境变量,修改/etc/profile
    在终端运行:sudo gedit /etc/profile,添加:
   export CATALINA_HOME=/home/lujisheng/wwwroot/apache-tomcat-6.0.20

(3)运行tomcat,防止一般用户没有读写文件的权限,先切换到root用户再运行:

      su root
      password
      cd /home/lujisheng/wwwroot/apache-tomcat-6.0.20/bin/
      ./catalina.sh run

    最后一行显示下列信息,表示启动成功:
      Server startup in 1591 ms

    如果显示下述信息,表示环境变量设置还有错误:
      Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
      At least one of these environment variable is needed to run this program

    关闭tomcat
      ./catalina.sh stop

(4)确认tomcat正常运行

    打开browser,输入http://localhost:8080 ,看到tomcat页面就算正常了。如果修改8080端口,可以编辑安装目录下的./conf/server.xml文件。

(5)当然这个时候你还不能对这个tomcat进行管理,还需要对用户权限进行设置。
代码:

sudo vim /home/lujisheng/wwwroot/apache-tomcat-6.0.20/conf/tomcat-users.xml

将<tomcat-users>注释部分去掉,加入以下内容
代码:
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="admin" password="admin" roles="admin,manager"/>

关键是把注释去掉,可恨我当时没有看到这一点,死活进不去,折腾了几天。

(6)使tomcat6能开机运行
为了操作方便,在/usr/local 下建立软链接,名字是tomcat6
cd /usr/local
sudo ln -s /home/lujisheng/wwwroot/apache-tomcat-6.0.20 tomcat6

设置tomcat以独立的用户运行(防止以root运行,权限太大)
sudo useradd -d /usr/local/tomcat6 -s /usr/sbin/nologin tomcat
上边的这个命令是添加一个系统用户tomcat,并且设置为不可登录系统。

设置用户tomcat 对tomcat6的访问权限
sudo chown -R tomcat:tomcat /usr/local/tomcat6
sudo chown -R tomcat:tomcat /home/lujisheng/wwwroot/apache-tomcat-6.0.20

安装jsvc,前提需要系统安装了gcc(系统一般默认安装),autoconf,libc6-dev
sudo apt-get install gcc autoconf libc6-dev

解压jsvc.tar.g
cd /usr/local/tomcat6/bin
sudo tar zxvf jsvc.tar.gz

准备编译配置文件
cd jsvc-src
sudo sh support/buildconf.sh
如果成功,命令终端会打出:
support/buildconf.sh: configure script generated successfully

为configure添加执行权限
sudo chmod 755 configure

编译
sudo ./configure --with-java=/home/lujisheng/wwwroot/jdk1.6.0_16
sudo make
如果没有出现错误,jsvc就安装成功了。

设置启动脚本
拷贝jsvc带的tomcat5.sh 脚本拷贝到 /etc/init.d/ 下,并改名为tomcat
sudo cp /usr/local/tomcat6/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat

修改/etc/init.d/tomcat文件
sudo gedit /etc/init.d/tomcat
文件中要修改的内容如下:
    JAVA_HOME="/home/lujisheng/wwwroot/jdk1.6.0_16"
    CATALINA_HOME="/home/lujisheng/wwwroot/apache-tomcat-6.0.20"
    DAEMON_HOME="/home/lujisheng/wwwroot/apache-tomcat-6.0.20/bin"
    TOMCAT_USER="tomcat"

    CATALINA_BASE="/home/lujisheng/wwwroot/apache-tomcat-6.0.20"

CATALINA_OPTS="-Djava.library.path=/home/jfclere/jakarta-tomcat-connectors/jni/native/.libs"
#注释掉这句
#添加下边这三句
    CATALINA_OPTS=
    $DAEMON_HOME/jsvc-src/jsvc /                #设置正确的jsvc程序的位置

    #
    # Start Tomcat
    #
    $DAEMON_HOME/jsvc-src/jsvc /

    #
    # Stop Tomcat
    #
    $DAEMON_HOME/jsvc-src/jsvc /

***************************************************************************************
干脆把这个/etc/init.d/tomcat的内容贴在下面,两道星线中的就是:
***************************************************************************************
#!/bin/sh
##############################################################################
#
#   Copyright 2004 The Apache Software Foundation.
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
##############################################################################
#
# Small shell script to show how to start/stop Tomcat using jsvc
# If you want to have Tomcat running on port 80 please modify the server.xml
# file:
#
#    <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
#    <Connector className="org.apache.catalina.connector.http.HttpConnector"
#               port="80" minProcessors="5" maxProcessors="75"
#               enableLookups="true" redirectPort="8443"
#               acceptCount="10" debug="0" connectionTimeout="60000"/>
#
# That is for Tomcat-5.0.x (Apache Tomcat/5.0)
#
# Adapt the following lines to your configuration
JAVA_HOME="/home/lujisheng/wwwroot/jdk1.6.0_16"
CATALINA_HOME="/home/lujisheng/wwwroot/apache-tomcat-6.0.20"
DAEMON_HOME="/home/lujisheng/wwwroot/apache-tomcat-6.0.20/bin"
TOMCAT_USER="tomcat"

# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE="/home/lujisheng/wwwroot/apache-tomcat-6.0.20"

# CATALINA_OPTS="-Djava.library.path=/home/jfclere/jakarta-tomcat-connectors/jni/native/.libs"
CATALINA_OPTS=
$DAEMON_HOME/jsvc-src/jsvc /                #设置正确的jsvc程序的位置

CLASSPATH=/
$JAVA_HOME/lib/tools.jar:/
$CATALINA_HOME/bin/commons-daemon.jar:/
$CATALINA_HOME/bin/bootstrap.jar

case "$1" in
  start)
    #
    # Start Tomcat
    #
    $DAEMON_HOME/jsvc-src/jsvc /
    -user $TOMCAT_USER /
    -home $JAVA_HOME /
    -Dcatalina.home=$CATALINA_HOME /
    -Dcatalina.base=$CATALINA_BASE /
    -Djava.io.tmpdir=$TMP_DIR /
    -wait 10 /
    -pidfile $PID_FILE /
    -outfile $CATALINA_HOME/logs/catalina.out /
    -errfile '&1' /
    $CATALINA_OPTS /
    -cp $CLASSPATH /
    org.apache.catalina.startup.Bootstrap
    #
    # To get a verbose JVM
    #-verbose /
    # To get a debug of jsvc.
    #-debug /
    exit $?
    ;;

  stop)
    #
    # Stop Tomcat
    #
    $DAEMON_HOME/jsvc-src/jsvc /
    -stop /
    -pidfile $PID_FILE /
    org.apache.catalina.startup.Bootstrap
    exit $?
    ;;

  *)
    echo "Usage tomcat.sh start/stop"
    exit 1;;
esac
***************************************************************************************

设置 /etc/init.d/tomcat的可执行权限
sudo chmod 755 /etc/init.d/tomcat

在/etc/rc2.d/下设置一个/etc/init.d/tomcat 的软链接
cd /etc/rc2.d/
sudo ln -s /etc/init.d/tomcat S16tomcat
注:rc2.d目录下的文件要以S后就数字开头,表示启动的顺序。而rc2.d中的2,表示这个目录下文件在开机时的运行级别(runlevel)为2

重新启动系统
sudo reboot –n
启动后,就可以在FF中直接输入http://localhost:8080 ,如果看到首页,即表示安装成功

4.下载并安装配置eclipse

(1)从eclipse官方网站http://www.eclipse.org/downloads/ 下载最新的Galileo发行版本,然后解压
      sudo tar zxvf ./eclipse-java-galileo-linux-gtk.tar.gz

(2)解压后系统默认安装到你的主文件夹下eclipse目录下,在安装目录下双击eclipse图标即可运行。第一次运行系统提示选择工作目录。

5.为了防止字符集与系统不一致导致的输入字符错误,我们需要设定字符集。
代码:
sudo gedit /home/lujisheng/wwwroot/apache-tomcat-6.0.20/conf/server.xml

找到<Connector /> 加入以下属性,统一控制输入字符集
代码:
URIEncoding="UTF-8"

6.安装mysql到最后会提示你输入root帐号的密码,这个root帐号是mysql的root帐号。
代码:
mysql -u root -p

提示输入密码,输入刚才安装MySQL时的密码即可。
以上步骤,完成了mysql的安装,但是这样完全不能满足我们的使用,主要的问题在于以下两点:

(1).字符集问题。
(2).远程访问问题。

我们依次解决此类问题。
代码:
sudo gedit /etc/mysql/my.cnf

找到[mysqld] 在末尾加上以下内容:
代码:
#Set the default character set.
default-character-set=UTF8

找到[client] 在末尾加上以下内容:
代码:
default-character-set=UTF8

重启MySQL
sudo /etc/init.d/mysql restart

登录你的MySQL,执行以下语句。
代码:
mysql> show   variables   like   "%colla%";  
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

mysql> show   variables   like   "%char%";  
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

MySql 默认的字符集是 latin1,如果你能看到上述的结果说明字符集已经统一到UTF8了。
接着我们处理,远程访问问题。

7.构建简单JSP工程
首先,需要构建目录结构,这里我们把项目定为lamj。
lamj/
|
|----index.jsp
|----WEB-INF/
|___|----web.xml
|___|----classes/
|___|----lib/
|___|___|----mysql-connector-java-5.1.6-bin.jar
附上web.xml
代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   id="WebApp_ID"
   version="2.5">
   <display-name>lamj</display-name>
   <welcome-file-list>
      <welcome-file>index.html</welcome-file>
      <welcome-file>index.htm</welcome-file>
      <welcome-file>index.jsp</welcome-file>
      <welcome-file>default.html</welcome-file>
      <welcome-file>default.htm</welcome-file>
      <welcome-file>default.jsp</welcome-file>
   </welcome-file-list>
</web-app>

附上index.jsp页面代码
代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MySQL测试</title>
</head>
<body>
<%
   //驱动程序名
   String driverName = "com.mysql.jdbc.Driver";

   //数据库用户名
   String username = "root";

   //密码
   String password = "S3CRET";

   //数据库名
   String databaseName = "test";

   //表名
   String tableName = "user";

   String server =  "localhost";
   String port = "3306";
   //联结字符串
   String url = "jdbc:mysql://" + server + ":" + port + "/"
         + databaseName + "?useUnicode=true&characterEncoding=UTF-8";
   Class.forName(driverName).newInstance();
   Connection connection = DriverManager.getConnection(url, username,
         password);

   Statement statement = connection.createStatement();
   String sql = "SELECT * FROM " + tableName;
   ResultSet rs = statement.executeQuery(sql);
%>
<table border="1">
   <caption>用户数据表数据</caption>
   <tr>
      <th>ID</th>
      <th>username</th>
      <th>password</th>
   </tr>
   <%
      while (rs.next()) {
         out.print("<tr><td>");
         out.print(rs.getString(1));
         out.print("</td><td>");
         out.print(rs.getString(2));
         out.print("</td><td>");
         out.print(rs.getString(3));
         out.print("</td></tr>");
      }
   %>
</table>
<%
   rs.close();
   statement.close();
   connection.close();
%>
</body>
</html>

将这个目录放到 /var/lib/tomcat6/webapps/ 下
其次,我们构建基础数据。
登录mysql,执行如下脚本:
代码:
CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
DROP TABLE IF EXISTS `test`.`user`;
CREATE TABLE  `test`.`user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(45) NOT NULL,
  `password` varchar(45) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

INSERT INTO user(username,password) VALUES('张三','123456');
INSERT INTO user(username,password) VALUES('Zlex','123456');

SELECT * FROM user;

代码:
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | 张三          | 123456   |
|  2 | Zlex     | 123456   |
+----+----------+----------+
2 rows in set (0.00 sec)

如果从控制台检索出来的数据能正常显示中文,就说明数据库部分ok了!
最后,访问http://localhost:8080/lamj
这时候你会看到页面上显示我们刚才输入的数据,并且正常显示中文。

用php对数据库进行操作时,如果你的PHP文件是UTF-8的但结果却出现了乱码,这里可以在
$link=mysql_connect(localhost,root,"S3CRET");
mysql_select_db(test,$link);   
两句之间,加上一句
mysql_query("set names utf8");
变成这样:
$link=mysql_connect(localhost,root,"S3CRET");
mysql_query("set names utf8");
mysql_select_db(test,$link);   
就一切都太平了。

Plone安装指南
出自Ubuntu中文
1、安装下列依赖包:gcc, g++, gnu make, tar, bzip2
sudo apt-get install g++


试过sudo apt-get install zlib,似乎Ubuntu官方源中不含zlib软件包,只有到zlib官方网站:
http://www.zlib.net
上下载源码来安装zlib软件包。

目前最新版本zlib是zlib1.2.3,安装开始;
$wget http://www.zlib.net/zlib-1.2.3.tar.gz
$tar -xvzf zlib-1.2.3.tar.gz
$cd zlib-1.2.3.tar.gz
$./configure
$make
$sudo make install

[编辑] 2、安装plone:

从网站http://plone.org/products/plone 下载Plone的Linux安装包(.tar.gz)解压至/home/lujisheng/wwwroot

cd /home/lujisheng/wwwroot
tar zxvf Plone-3.3-UnifiedInstaller.tar.gz
cd Plone-3.3-UnifiedInstaller
sudo ./install.sh --password=S3CRET --user=lujisheng standalone

安装完了会显示管理员密码和怎么启动(信息被保存在/usr/local/Plone/zinstance/adminPassword.txt中)。
默认的端口是8080,可在配置文件/usr/local/Plone/zinstance/etc/zope.conf中修改这个端口。
默认的实例是/usr/local/Plone/zinstance。
已经创建了两个默认系统用户和组plone,zope。

启动:
sudo /usr/local/Plone/zinstance/bin/plonectl start
(下面二行好像不用做也能打开Plone,第一行是停掉apache2服务,停了后Plone照常工作,估计是zope起了作用)
        sudo /etc/init.d/apache2ctl stop
        sudo sh /home/lujisheng/wwwroot/apache-tomcat-6.0.20/bin/shutdown.sh


关闭:
sudo /usr/local/Plone/zinstance/bin/plonectl stop


如果sudo /etc/init.d/zope3 start 报错,可以sudo gedit /etc/init.d/zope3,把-a -d /usr/local/Plone/Zope-2.10.9-final-py2.4/instance加到路径里去。

http:/localhost:8080 显示一个欢迎页面,http://localhost:8080/Plone 进入一个测试plone页面,http://localhost:8080/manage 进入管理界面。
如果tomcat在运行,将不能显示plot的页面,必须先把tomcat关掉。或者是修改sudo gedit /usr/local/Plone/zinstance/parts/instance/etc/zope.conf
把里面的端口改为8088,再启动plone就没有问题了。

cd /etc/rc2.d
sudo ln -s /usr/local/Plone/zinstance/bin/plonectl S18plonectl

[编辑]
3、中文化:

默认安装后进入http://localhost:8080/Plone 显示的语言是英语,为了以中文显示,需要稍微设置一下:以admin登入,密码查看文件~/Plone/vsuan/adminPassword.txt。

1)点击右上角的“Site Setup”,然后点击屏幕中部的language进入language settings界面,够选“Show country-specific language variants”,然后在语言的下拉框中选择Chinese(China),最后点击save即可,刷新一下页面,这时全是中文的了。

2)部分菜单仍是英语(比如news, users,events),可以这样做:点击左上角的“首页”-->"文件夹内容“,然后够选一项,再点击”改名“,在”新标题处“输入”用户“,最后点击“全部改名”按钮返回,其他两个相应改为“新闻”和“事件”。

3)主页也是英文内容:更换成你自己公司的介绍是个不错的注意。点击左上角“首页”-->"查看“,鼠标下移到主页标题“Welcome to Plone“并单击后改为”欢迎来到微算公司“,其他部分作类似操作修改。

4)修改默认的管理员密码:http://localhost:8080/manage -->acl_users-->users-->password





一、grub.cfg详解(红色为说明)

grub.cfg 默认为只读,要修改前先设为可写
sudo chmod +w /boot/grub/grub.cfg

set default=0
#默认为0
insmod jpeg
#添加jpg支持,如要使用png或tga文件做背景,加上 insmod png或insmod tga
insmod ext2
#除了用作启动的分区外,其他分区格式可在menu底下再添加
set root=(hd0,7)
#设定root分区
search --no-floppy --fs-uuid --set f255285a-5ad4-4eb8-93f5-4f767190d3b3
#设定uuid=****的分区为root,和上句重复,可删除
# 以下为终端配置
if loadfont /usr/share/grub/unicode.pf2 ; then
#设置终端字体,unicode.pf2支持中文显示
set gfxmode=640x480
#设置分辨率,默认为 640x480,可用800x600,1024x768,建议跟你想设定的图片大小一致
insmod gfxterm
#插入模块 gfxterm,支持中文显 示,它还支持 24 位图像
insmod vbe
#插入 vbe 模块,GRUB 2 引入很多模块的东西,要使用它,需要在这里加入
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
#设置 GRUB 2 终端为 gfxterm
fi
fi
set timeout=10
background_image (hd0,7)/boot/images/1.jpg
#设置背景图片
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=cyan/black
#这两行为 Debian 下的菜单颜色设置,如果默认的话,你会发现背景完全被蓝色挡住了,你需要修改 blue 为 black,这样背景就会出现
### END /etc/grub.d/05_debian_theme ###

# 10_linux 为自动添加的当前root分区linux引导项
### BEGIN /etc/grub.d/10_linux ###
#菜单项,要包括 menuentry 双引号" " 和大括号 { }才完整,否则不显示菜单
menuentry "Ubuntu, Linux 2.6.31-9-386" {
insmod ext2
set root=(hd0,7)
search --no-floppy --fs-uuid --set f255285a-5ad4-4eb8-93f5-4f767190d3b3
#这句与set root=(hd0,7)重复,可删除
linux    /boot/vmlinuz-2.6.31-9-386 root=UUID=f255285a-5ad4-4eb8-93f5-4f767190d3b3 ro quite splash
#不喜欢看到一长串的, roo=UUID=***可用root=/dev/sda7代替
initrd    /boot/initrd.img-2.6.31-9-386
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
linux16    /boot/memtest86+.bin
}
### END /etc/grub.d/20_memtest86+ ###

# 自动添加存在于其他分区的系统引导项
### BEGIN /etc/grub.d/30_os-prober ###
#windows 启动菜单
menuentry "Windows Vista (loader) (on /dev/sda1)" {
insmod ntfs
#windows格式为ntfs,或为fat32改为 insmod fat
set root=(hd0,1)
search --no-floppy --fs-uuid --set ece067d2e067a196
#可删除
#grub2比较先进的地方就是如果发现windows启动是通过ntldr 引导的,定为2000/xp/2003,会在这加上 drivemap -s (hd0) ${root} ,作用相当于grub的map,可正常启动非第一硬盘的xp/2003系统。
chainloader +1
}
# 查找到其他分区上的linux系统并自动添加
menuentry "Ubuntu karmic (development branch) (9.10) (on /dev/sda3)" {
insmod ext2
set root=(hd0,3)
search --no-floppy --fs-uuid --set 4d893970-0685-44ed-86b3-1de45b2db84a
linux /boot/vmlinuz-2.6.31-9-generic root=/dev/sda3
initrd /boot/initrd.img-2.6.31-9-generic
}
#若存在macos会自动在这里添加。
### END /etc/grub.d/30_os-prober ###
# 以下为手动添加的菜单项
### BEGIN /etc/grub.d/40_custom ###
menuentry "CDLinux"{
set root=(hd0,8)
linux /CDlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8
initrd /CDlinux/initrd
}
### END /etc/grub.d/40_custom ###

# 手动添加时,硬盘编号从0开始(hd0),主分区编号从1开始(hd0,1),逻辑分区从5开始(hd0,5)



二、grub2终端部分命令介绍
在出现选择菜单时,按C进入终端命令行模式,按E进入当前菜单项编辑模式(和grub一样),编辑中按Ctrl + C退出,按Ctrl + X 以编辑内容启动。

1. help
查看命令用法,显示所有可用命令
help search
search 命令用法
2. ls
列出当前的所有设备。如 (hd0) (hd0,1) (hd0,5) (hd1) (hd1,1) (hd1,2) .......
ls -l
详细列出当前的所有设备。对于分区,会显示其label及uuid。
ls /
列出当前设为root的分区下的文件
ls (hd1,1)/
列出(hd1,1)分区下文件
3. search
search -f /ntldr
列出根目录里包含ntldr文件的分区,返回为分区号
search -l LINUX
搜索label是LINUX的分区。
search --set -f /ntldr
搜索根目录包含ntldr文件的分区并设为root,注意如果多外分区含有ntldr文件,set 失去作用。
4. loopback
loopback命令可用于建立回放设备,如
loopback lo0 (hd1,1)/abc.iso

可以使用lo0设备来访问abc.iso里的内容,比如说,可以从abc.iso里的软盘映像中启动
loopback lo0 (hd1,1)/aa.iso
linux (lo0)/memdisk
initrd (lo0)/abc.img

要删除某一回放设备,可以使用-d参数:
loopback -d lo0
5. set
使用set可以设置变量的值
set root=
set timeout=
需要调用变量的值时,使用${AA},如set root=(hd1,1)
则${root}=(hd1,1)
6. pager
分页显示。
set pager=1
满页时暂停,按space继续
set pager=0
取消分页
7. linux
linux取代grub中的kernel


三、
单linux系统或
硬盘安装时iso放在C盘,umount /isodevice引起的误认为单系统
不能出现菜单项的几种处理方法。
1. 开机自检后时按几下shift键,可调出菜单项
2. sudo update-grub
重建grub.cfg,会发现新的系统而改写grub.cfg,一般能出现菜单项。
3.如第二种方法不能解决,直接修改grub.cfg
把在### BEGIN /etc/grub.d/30_os-prober 中的这一段
if keystatus; then
if keystatus --shift; then
set timeout=-1
else
set timeout=0
fi
else
if sleep$verbose --interruptible 3 ; then
set timeout=0
fi
fi
删除或修改三处set timeout=<大于0>

原创粉丝点击