1、自己安装grub4dos ,(解压grldr到C:\, 编辑boot.ini... )。
2、编辑grub的menu.lst (如果是grub4dos,编辑的是c:\menu.lst),示例如下:
title LinuxMint Debian 201012 Live CD & Install
root (hd0,5)kernel /casper/vmlinuz boot=live live-media-path=/casperquiet splash --
initrd /casper/initrd.lz
3、下载LMDE的ISO文件,然后将它解压到某个分区的根目录(必须解压)
4、重启动,在Windows启动时选择GRUB 4 DOS,然后选择 LinuxMint Debian 201012 Live CD & Install
5、进入LMDE的图形界面后,点击桌面上的Installer进行安装时出现错误“failed to run /usr/bin/live-installer as user root”,解决如下:
A)按下Ctrl+Alt+F1切换到 命令行界面,登录,用户名:root,密码:空。
B) 输入passwd命令设置新的root的密码;密码设置 好后按下Alt+F7切换回 图形界面,运行安装向导、登录root账户, 输入设置后的新root密码!
6、其它:配置中文:
sudo apt-get install task-chinese-s-desktop //安装中文语言支持
sudo nano /etc/locale.gen //编辑locale.gen,在要使用的语言zh_CN前面去掉注释符号“#”。
sudo locale-gen
重启计算机。
安装中文输入法: sudo apt-get install ibus-pinyin google-pinyin
更新源,使用apt-spy 的方式自动找到最快的源:
sudo apt-get install apt-spy //安装
man apt-spy //获取详细的使用方法
sudo apt-spy update //更新您的镜像列表文件 /var/lib/apt-spy/mirrors.txt
sudo apt-spy -d testing -t 6 -a Asia //在亚洲地区源列表中选取最快的testing版源,请求时间限制为6秒
可以参照这篇文章:http://www.linuxdiyf.com/viewarticle.php?id=52437
附:grub修复:
1、进入liveCD系统界面
2、把根分区挂在/mnt,如:mount /dev/sda9 /mnt
3、把boot分区挂载到/mnt/boot目录 ,如:mount /dev/sda11 /mnt/boot(没有boot分区的忽略该步骤)
4、grub-install --root-directory=/mnt/ /dev/sda
5、重启
struct fib_result *res)
{
struct fib_table *table;
table = fib_get_table(net, RT_TABLE_LOCAL); 先查LOCAL
if (!table->tb_lookup(table, flp, res))
return 0;
table = fib_get_table(net, RT_TABLE_MAIN); 再查MAIN
if (!table->tb_lookup(table, flp, res))
return 0;
return -ENETUNREACH;
}
{
struct hlist_head *ptr;
ptr = id == RT_TABLE_LOCAL ?
&net->ipv4.fib_table_hash[TABLE_LOCAL_INDEX] :
&net->ipv4.fib_table_hash[TABLE_MAIN_INDEX];
return hlist_entry(ptr->first, struct fib_table, tb_hlist); 根据传入的id找到fib_table
}
fn_hash_lookup(struct fib_table *tb, const struct flowi *flp, struct fib_result *res)
{
int err;
struct fn_zone *fz;
struct fn_hash *t = (struct fn_hash *)tb->tb_data; 获得路由区队列
read_lock(&fib_hash_lock);
for (fz = t->fn_zone_list; fz; fz = fz->fz_next) { 扫描网络区
struct hlist_head *head;
struct hlist_node *node;
struct fib_node *f;
__be32 k = fz_key(flp->fl4_dst, fz); 取目标地址在该网络区的网络号 fl4_det&((fz)->fz_mask)
head = &fz->fz_hash[fn_hash(k, fz)]; fn_hash(k, fz)得到hash关键字 获得hash链头
hlist_for_each_entry(f, node, head, fn_hash) {
if (f->fn_key != k) 通过fn_key找到匹配的fib node节点
continue;
err = fib_semantic_match(&f->fn_alias, 进入fib semantic查找
flp, res,
fz->fz_order);
if (err <= 0)
goto out;
}
}
err = 1;
out:
read_unlock(&fib_hash_lock);
return err;
}
struct fib_result *res, int prefixlen) 这里head是f->fn_alias结构
{
struct fib_alias *fa;
int nh_sel = 0;
list_for_each_entry_rcu(fa, head, fa_list) {
int err;
if (fa->fa_tos &&
fa->fa_tos != flp->fl4_tos) 比较TOS
continue;
if (fa->fa_scope < flp->fl4_scope) 比较路由范围 scope
continue;
fa->fa_state |= FA_S_ACCESSED;
err = fib_props[fa->fa_type].error; 取转发类型错误码 根据错误码进行特定处理
if (err == 0) { 允许的转发类型
struct fib_info *fi = fa->fa_info;
if (fi->fib_flags & RTNH_F_DEAD) 如果该转发节点不通
continue;
switch (fa->fa_type) {
case RTN_UNICAST: 单目转发
case RTN_LOCAL: 本地转发
case RTN_BROADCAST: 广播转发
case RTN_ANYCAST: 任意转发
case RTN_MULTICAST: 多目转发
for_nexthops(fi) { 对于转发信息中
inet_init()->ip_init()->ip_rt_init()->
kmem_cache_create("ip_dst_cache", sizeof(struct rtable), 0, rtable结构高速缓存的创建
SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
alloc_large_system_hash("IP route cache",
sizeof(struct rt_hash_bucket),
rhash_entries,
(totalram_pages >= 128 * 1024) ?
15 : 17,
0,
&rt_hash_log,
&rt_hash_mask,
rhash_entries ? 0 : 512 * 1024);
memset(rt_hash_table, 0, (rt_hash_mask + 1) * sizeof(struct rt_hash_bucket));
register_inetaddr_notifier(&fib_inetaddr_notifier);
{
fn_hash_kmem = kmem_cache_create("ip_fib_hash", sizeof(struct fib_node), fib_node高速缓存创建
fn_alias_kmem = kmem_cache_create("ip_fib_alias", sizeof(struct fib_alias), fib_alias高速缓存创建
}
struct hlist_node fn_hash; hash节点
struct list_head fn_alias; 路由别名
__be32 fn_key; 子网地址
struct fib_alias fn_embedded_alias; 内嵌的路由别名
};
struct list_head fa_list;
struct fib_info *fa_info; 路由信息结构保存着如何处理数据包
u8 fa_tos; TOS
u8 fa_type; 路由类型
u8 fa_scope; 路由范围
u8 fa_state; 状态标志
#ifdef CONFIG_IP_FIB_TRIE
struct rcu_head rcu;
#endif
};
.init = fib_net_init,
.exit = fib_net_exit,
};
nl_fib_lookup_init(net); netlink初始化相关
fib_proc_init(net); 初始化proc文件系统
{
int err;
unsigned int i;
net->ipv4.fib_table_hash = kzalloc(
sizeof(struct hlist_head)*FIB_TABLE_HASHSZ, GFP_KERNEL); 申请256大小的hash表
if (net->ipv4.fib_table_hash == NULL)
return -ENOMEM;
fo