Ubuntu 8.04 下删除旧内核

出现的问题:最新一次升级后,发现无法打开“新立得”。出现错误提示为:dpkg was interrupted. 需要输入”dpkg –configure -a”来重新配置。但是当输入上述语句后,提示没有足够空间。。

df一看,发现100MB空间的/boot占用率100%。旧的内核一直没有删除,有2.6.24-16,19,20,21以及最新的22。

于是GOOGLE找出删除内核的办法:

  • 实现uname -a 可以查看当前系统使用的内核
  • 然后删除某个内核用:sudo apt-get remove linux-image-2.6.15-16
  • 依次实行上述命令行删除其它的内核,空间就会被释放出来。
  • 再执行sudo update-grub,这样/boot/grub/menu.lst的启动选项中,就不会再有旧内核的选项了
  • 还有一个最简洁的命令行:sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\),这个可以自动删除除了最新内核外其它所有的旧内核,非常强大。
  • 另外还有一个办法就是在“新立得”里查找linux来删除

不过,我的问题不是上面这么简单解决的,因为/boot空间是100%使用,所以最近一次升级中没有正常完成,造成dpkg interrupted。所以不管是执行sudo apt-get remove linux-image-2.6.15-16,还是执行sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\),都会提示dpkg was interrupted,需要重新configure一次。但是有趣又无奈的地方就在这里,因为空间已经满了,所以执行dpkg –configure -a就无法进行。

最后没有办法,只好使用另外一种方法:

先把/boot下的所有除了最新内核22以外的旧内核16,19,20,21的文件全部移到另外一个目录下。这样/boot空间就释放出来了。如果再执行sudo update-grub,启动选项中就不会再有旧内核,旧内核所占/boot的空间也被释放了(旧内核所占其它的空间不会被释放),而且旧内核还是存在于磁盘上,当需要它们的时候,还可以再把这些文件重新复制回/boot目录下。

因为我想把所有的旧内核都彻底删除掉。所以先把20,21的文件移除到别的地方,腾出来一些空间,以便于执行”dpkg –configure -a”。执行完毕后,使用命令行“sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)”,自动删除所有旧内核。

有个小问题是,因为我先把/boot下的20,21文件挪到另外一个目录,虽然最后这些文件可以手动删除,但是不知道内核20,21的其它文件有没有被删除掉。。

Ubuntu下安装Codecs

sudo apt-get install gstreamer0.8-plugins
sudo apt-get install gstreamer0.8-lame
sudo apt-get install gstreamer0.8-ffmpeg
sudo apt-get install w32codecs
sudo apt-get install libdivx4linux
sudo apt-get install lame
sudo apt-get install sox
sudo apt-get install ffmpeg
sudo apt-get install mjpegtools
sudo apt-get install vorbis-tools
gst-register-0.8

双系统XP和Ubuntu: 重新安装XP后GRUB出错进不了Ubuntu的解决办法

使用ubuntu liveCD

打开Terminal

sudo -i (使用root身份)

grub (这个地方需要花一点时间)

find /boot/grub/stage1

(会出现(hdx,y) -> 里面没有空格. 我的出现的是(hd1,3),说明ubuntu是在第二块硬盘上,第3个分区)

root (hd1,3)

setup (hd1)

grub> setup (hd1)
Checking if “/boot/grub/stage1″ exists… yes
Checking if “/boot/grub/stage2″ exists… yes
Checking if “/boot/grub/e2fs_stage1_5″ exists… yes
Running “embed /boot/grub/e2fs_stage1_5 (hd1)”…  16 sectors are embedded.
succeeded
Running “install /boot/grub/stage1 (hd1) (hd1)1+16 p (hd1,3)/boot/grub/stage2
/boot/grub/menu.lst”… succeeded
Done.

grub>quit

安装配置Nessus

http://www.nessus.org下载最新的版本

#dkpg -i  Nessus-3.2.1-ubuntu804_i386.deb

然后去http://www.nessus.org/plugins/?view=register-info注册一下

去邮箱取回Activation code

/opt/nessus/bin/nessus-fetch --register 1E2A-4553-D03B-71AF-56F3

 - Please run /opt/nessus/sbin/nessus-adduser to add an admin user
 - Register your Nessus scanner at http://www.nessus.org/register/ to obtain
   all the newest plugins
 - You can start nessusd by typing /etc/init.d/nessusd start

Ubuntu下设置VirtualBox的Bridge Network(桥接模式)

****************************************************************************

系统: Ubuntu 8.04

问题: VirtualBox创建的虚拟机WINXP,使用Bridge Networking,代替NAT

*******************************************************************************

因为把一个旧电脑当作一个服务器,并且晚上用来下载东西。系统是Ubuntu,用VirtualBox创建了一个虚拟系统XP,在XP中安装EMULE来下载。结果发现EMULELOWID。进而开始研究为什么会是这样,才会开始鼓捣虚拟机的Bridge Networking(桥接模式)

系统本身是开启了UPnP端口的,EMULE使用的端口也都开着。路由器中也开放了相应的端口 打开了UPnPDMZ为相应电脑的IP地址比如说是192.168.0.115

后来才想到,路由器指向的IPUbuntu系统的IP,而不是虚拟系统的。 因为在虚拟系统中,VirtualBox默认使用的是NAT,所以默认IP10.0.2.*,子网掩码是255.255.255.0,网关是10.0.2.2。因为路由根本没指向虚拟系统XP,所以EMULE根本就无法得到HIGHID

NATVirtualBox默认的Host OS Guest OS连接方式。这种方式下,Guest OSHost OS的内网,它们之间不是对等的,IP地址也不是在一个区域。 但是是一个比较简单方便的方式。但是路由器中不能进行虚拟机的端口映射。你不能输入10.0.2.*进行指向,因为路由中已经设好了区域为192.168.0.*

Bridge Network方式下,Guest OSIPHost OSIP属于同一个区域。他们之间是对等。相当于这个区域中的两个独立的电脑。路由器因而也能进行虚拟机的端口映射。

VirtualBox没有像VMWare那样可以自由选择Bridge Network方式。所以需要手动来设置。

设置方式有两种:

一种是通过DHCP,但是这种IP地址不是固定的。

第二种是手动设置静态IP地址。本文是采取这种方式。

首先安装所需要的工具 uml-utilitiesbridge-utils:

sudo apt-get install uml-utilities bridge-utils

修改/etc/udev/rules.d/20-names.rulesx

sudo cp /etc/udev/rules.d/20-names.rules /etc/udev/rules.d/20-names.rules.backup

sudo gedit /etc/udev/rules.d/20-names.rules

把最后一行

KERNEL==”tun” NAME=”net/%k”

改为:

KERNEL==”tun” NAME=”net/%k” GROUP=”vboxusers” MODE=”0660”

然后保存。

(注:不知道为什么修改这个文件,Ubuntu社区文章中有这一段,也许是为了把tun加入到Group vboxusers中吧。我下面还有一个地方是把用户加入到Group vml-net中,有的人这样做,有的人没有,我没有试过不加会是什么样)

Host OS中创建一个vboxbridgedrun文件,来建立一个Bridgetap deviceIP是由bridge来取得,而不是ethXtapX

(注:下面的这些都可以在终端中用命令方式打出来,但是问题在于,电脑重新启动后,就不再有效。所以建立一个启动文件,让它自动随电脑启动)

sudo gedit /etc/init.d/vboxbridgedrun

内容如下:

————————————————————————————————————————

# VirtualBox Bridging

# Create a tap device with permission for the user running vbox

tunctl -t tap0 -u username #username是你运行vbox的用户名,有的人用{}括起来

chmod g+rw /dev/net/tun #有的人用chmod 0666 /dev/net/tun

# Bring up ethX and tapX in promiscuous mode

#注意这里的eth1,因为我的电脑上有两个网卡,这里用的是eth1,一般是eth0,根据情况#来修改

ifconfig eth1 0.0.0.0 promisc

ifconfig tap0 0.0.0.0 promisc

# Create a new bridge and add the interfaces to the bridge.

brctl addbr br0

brctl addif br0 eth1

brctl addif br0 tap0

#下面是两种获取IP的方式

#第一种是手动设置,把Host OS系统中的地址信息添加到下面去,比如我的依次为

#192.168.0.115255.255.255.0192.168.0.1

ifconfig br0 *.*.*.* netmask *.*.*.* up

route add default gw *.*.*.*

#第二种是DHCP方式

#dhclient br0

————————————————————————————————————————

给上面的文件vboxbridgedrun加上可执行权限:

sudo chmod +x /etc/init.d/vboxbridgedrun

建立一个vboxbridge文件来执行vboxbridgedrun文件:

sudo gedit /etc/init.d/vboxbridge

内容为:

/etc/init.d/vboxbridgedrun & #直接在终端中打入这句也是可以的

然后加上执行权限:

sudo chmod +x /etc/init.d/vboxbridge

最后在/etc/rc2.d目录下做一个到/etc/init.d/vboxbridge文件的链接 S999vboxbridge

cd /etc/rc2.d

sudo ln -sf ../init.d/vboxbridge /etc/rc2.d/S999vboxbridge

(: S是代表startK代表是stop,一般在rc6.d中是K,因为rc6.dreboot模式

999是让它在最后启动)

(另外,我在rc5.d目录中也做了一个这样的链接)

再打开System - Users and Groups - uml-net,加上当前用户的名字。

重启电脑后,打开VirtualBox,在虚拟系统的Network设置中,把“Attached to ”选项从NAT改为Host Interface,然后在下面的“Interface Name”选项中,加上tap0

这样就完成了整个设置。启动Guest OS后,手动设置静态IP地址,比如:

192.168.0.116255.255.255.0192.168.0.1

然后打开浏览器,就可以发现已经可以上网了。

而且Host OS也可以同时上网。

(注:之所以在这里强调Host OS也可以同时上网,是因为有时候当设置不对,Host OSGuest OS之中只能有一个上网,另外一个不能。还不知道为什么会导致这样。)

另外还有删除上面的设置的命令:

———————————————————-

删除tap0

tunctl –d tap0

删除br0

ifconfig br0 down

brctl delbr br0

tap0eth0都移出bridge(br0)

brctl delif br0 tap0

brctl delif br0 eth1

Next Page →