【补:丢失的第一轮折腾】另类方式安装ubuntu 手工配置系统 debootstrap安装, 图形界面有三套方案

仅供存放个人的配置文件,不要在本版发问。
回复
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

【补:丢失的第一轮折腾】另类方式安装ubuntu 手工配置系统 debootstrap安装, 图形界面有三套方案

#1

帖子 ljj_jjl2008 » 2014-06-29 17:53

另类方式安装ubuntu 手工配置系统 debootstrap安装, 图形界面有三套方案
1,准备一个独立的空白磁盘分区,最小5G以上,建议10G以上。
2,设法先启动一个基于ubuntu或者debian的linux(可以是live cd,或者已经安装的实际系统)。设置成能够链接因特网。(这里只是简单介绍,下面有更详细更全面的联网方法介绍)
ubuntu联网,如果有图形界面,请直接在状态栏“网络”图标处右击设置,
需要adsl拨号的也可以用sudo pppoeconf命令设置,

手工拨号
sudo pon dsl-provider

手工断线:
sudo poff

查看连接情况:
plog 和 ifconfig ppp0
ifconfig ppp0 可查询本机的上网IP。
然后在linux中查出要安装linux的分区的设备名。
得到硬盘分区设备名的方法:
(1)推算:硬盘设备名称一般是/dev/sdN 或者 dev/hdN (老硬盘),N是数字,第一个主分区是1,第一个逻辑分区是5,然后是6、7、8、9、10....
(2)命令行sudo cfidsk 查;
(3)图形界面分区工具或者磁盘管理工具查。
查出来的名字一般是:/dev/sda9之类的。
这里一定要查清楚分区对应设备名,下面用得着。如果选错了,会丢数据的。
3,安装debootstrap,安装基本系统。

代码: 全选

sudo -s
mkfs.ext4 /dev/sda9 #/dev/sda9一定要改成你自己的分区
mkdir /minilinux
mount /dev/sda9 /minilinux
以上命令的解释:
切换到root用户
用ext4格式化分区
创建一个/minilinux
把格式化好的分区挂载到/minilinux

代码: 全选

apt-get install debootstrap
debootstrap --arch i386 oneiric /minilinux http://ubuntu.srt.cn/ubuntu/
以上命令的解释:
安装debootstrap工具
依靠debootstrap工具,从http://ubuntu.srt.cn/ubuntu/网站,下载linux oneiric(11.10)的 i386 版本的基本环境,安装到/minilinux目录。
可以根据自己需要,修改成 amd64 和 natty(11.04)。这样安装的系统与你的love cd或者现实的系统没有必然的联系,而是依赖于所选的网站的系统。

代码: 全选

mount -o bind /dev /minilinux/dev
mount -o bind /sys /minilinux/sys
mount -t proc proc /minilinux/proc
chroot /minilinux
以上命令的解释:在现实的linux环境中临时把跟目录指定到minilinux

代码: 全选

dpkg-reconfigure console-setup
apt-get install linux-generic grub-pc
以上命令的解释:
设置终端字符界面风格
安装linux核心和启动引导器grub。
安装grub时会让你选择安装到哪个位置,一般有/dev/sda 和/dev/sda9,这一部分请先补充linux常识,我不解释了。

代码: 全选

adduser ubuntu
addgroup --system admin
echo "admin ALL=(ALL:ALL) ALL" >> /etc/sudoers
usermod -G ubuntu,admin,plugdev,audio,video ubuntu
passwd
以上命令的解释:
添加一个用户ubuntu(请根据你的需要修改)
添加一个用户组admin
为用户组admin启用sudo权限
把ubuntu加入到admin ubuntu plugdev audio video组
为root用户创建密码。

代码: 全选

apt-get install xfonts-base xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-wqy ttf-wqy-zenhei
以上命令的解释:安装各种字体。

4,手工修改各种配置文件,使重启后安装的linux环境可以认出硬盘、网络、
/etc/group、/etc/passwd、/etc/shadow这三个文件是存储上面命令建立的组、用户、密码的,不用手工修改。
以下4个文件需要修改:
/etc/fstab 用于启动时挂载硬盘的
/etc/network/interfaces 设置IP地址、网关等
/etc/resolv.conf 设置DNS
/etc/apt/sources.list 设置“软件源”。

修改方法:
1,用vi等;
记录几个基本的vi命令:vi需要按几下Esc键,然后输入命令,才能开始修改文件内容。下面是最基本的几个命令:
i :开始编辑
o :插入新行,相当于i 后按回车
dd:删除行,按i后可以delete删除字符,但不能删除行,需要删除行就按Esc后连续按dd,则连续删除行。
:wq :存盘退出,按Esc后连续输入:wq ,然后回车
:q! :不存盘退出,按Esc后连续输入:q! ,然后回车
命令区分大小写

2,用图形界面工具,注意用sudo启动,然后打开文件编辑。注意要编辑的是/minilinux/etc下的文件,不要编辑成现实环境中的文件。可以参照现实环境中的文件来编辑修改。
3,用命令行:
引用:
(1)cat > /etc/network/interfaces << "EOF"
进入一种>提示符状态,连续输入,最后输入EOF按回车结束,输入的内容会被保存到中间那个文件
(2)echo "deb ........." >> /etc/apt/sources.list
在后面那个文件最后加入引号内的内容。


关于fstab:
fstab中存放了与分区有关的重要信息,其中每一行为一个分区记录,每一行又可分为六个部份,下面以/dev/hda7 / ext2 defaults 1 1为例逐个说明:
  1. 第一项是您想要mount的储存装置的实体位置,如hdb或如上例的/dev/hda7。
  2. 第二项就是您想要将其加入至哪个目录位置,如/home或如上例的/,这其实就是在安装时提示的挂入点。
  3. 第三项就是所谓的local filesystem,其包含了以下格式:如ext、ext2、msdos、iso9660、nfs、swap等,或如上例的ext2,可以参见/prco/filesystems说明。
  4. 第四项就是您mount时,所要设定的状态,如ro(只读)或如上例的defaults(包括了其它参数如rw、suid、exec、auto、nouser、async),可以参见「mount nfs」。
  5. 第五项是提供DUMP功能,在系统DUMP时是否需要BACKUP的标志位,其内定值是0。
  6. 第六项是设定此filesystem是否要在开机时做check的动作,除了root的filesystem其必要的check为1之外,其它皆可视需要设定,内定值是0。
/dev/sda4 为需要挂载的分区,sda4 是 Linux 检测硬盘时按顺序给分区的命名,一般来讲,这个名称并不会变化,但是如果你有多块硬盘,硬盘在电脑中的顺序变化的时候,相同的名称可能代表着不同的硬盘分区,如果你是从 USB 设备启动,与其他 USB 设备的插入顺序也会导致分区识别的困难。
这个时候 UUID 就派上用场了,UUID 全称是 Universally Unique Identifier,也就是说,每个分区有一个唯一的 UUID 值,这样就不会发生分区识别混乱的问题了。(这里注意,重新格式化分区有可能会改变UUID)
在 fstab 中用 UUID 挂载分区,看起来向这样:
UUID=1234-5678 /mnt/usb vfat utf8,umask=0 0 0
在 UUID= 后面填入分区相应的 UUID 值,就可以正确挂载分区了。
那么,我们如何知道一个分区的 UUID 呢?

有 3 个命令:
1. 通过浏览 /dev/disk/by-uuid/ 下的设备文件信息。
# ls -l /dev/disk/by-uuid/
2. 通过 vol_id 命令。
# vol_id /dev/sdb5
3. 通过 blkid 命令
# blkid /dev/sdb5

也可以通过各种图形界面的磁盘管理工具来查询。
修改fatab命令的参考(请在第3步已经chroot的状态下继续执行,请根据自己实际情况修改UUID等。)

代码: 全选

ls -l /dev/disk/by-uuid/ |grep sda9
  ==> a50c1d35-f13c-4806-81b6-4806d838b5ab
cat >  /etc/fstab << "EOF"
> proc /proc proc defaults 0 0
> UUID=a50c1d35-f13c-4806-81b6-4806d838b5ab / ext4 defaults,errors=remount-ro,relatime 0 1
> EOF
设置:/etc/network/interfaces( 设置IP地址、网关等)/etc/resolv.conf (设置DNS)
http://blog.csdn.net/duanjingneuq/artic ... ls/5682973
ubuntu网络设置详解
# 根据网上资料整理
  # 方式1和方式4已验证
  # anything the matter, please contact: asksamuel@sina.com
  目录
  方式1:网卡通过DHCP自动获取IP地址
  方式2:网卡静态分配IP地址
  方式3:PPPoE宽带拨号配置
  方式4:通过无线局域网接入互联网

  方式1:网卡通过DHCP自动获取IP地址
  $ sudo gedit /etc/network/interfaces
  # 修改文件/etc/network/interfaces如下文
  #-------------------------------------------------------------------------------
  # This file describes the network interfaces available on your system
  # and how to activate them. For more information, see interfaces(5).
  #
  # The loopback network interface(配置环回口)
  auto lo # 开机自动激lo接口
  iface lo inet loopback # 配置lo接口为环回口
  # The primary network interface (配置主网络接口)
  auto eth0 #开机自动激活eth0接口
  iface eth0 inet dhcp #配置eth0接口为DHCP自动获取
  #-------------------------------------------------------------------------------

  $ sudo /etc/init.d/networking restart # 重启网络

  方式2:网卡静态分配IP地址

  $ sudo gedit /etc/network/interfaces

  # 修改文件/etc/network/interfaces如下文

  #-------------------------------------------------------------------------------
  # This file describes the network interfaces available on your system
  # and how to activate them. For more information, see interfaces(5).
  #
  # The loopback network interface(配置环回口)
  auto lo # 开机自动激lo接口
  iface lo inet loopback # 配置lo接口为环回口
  # The primary network interface (配置主网络接口)
  auto eth0 #开机自动激活eth0接口
  iface eth0 inet static #配置eth0接口为静态设置IP地址
  address 10.16.3.99 #IP
  netmask 255.255.255.0 #子网掩码
  network 10.16.3.0 #网段
  broadcast 10.16.3.255 #广播地址
  gateway 10.16.3.1 #网关

  #sudo gedit /etc/resolv.conf

  ##设置DNS server(可以设置多个)
  #nameserver 192.168.1.1

  $ sudo /etc/init.d/networking restart # 重启网络

  方式3:PPPoE宽带拨号配置

  首次拨号:
  应用程序–系统工具–终端  打开一终端,输入命令:
  sudo pppoeconf
  系统开始搜索所有网络接口上的adsl modem,一步步的yes过来。
  │ Please enter the username which you usually need for │
  │ the PPP login to your provider in the input box below. │
  │ If you wish to see the help screen, delete the │
  │ username and press OK. │
  输入你的宽带帐号。
  输入密码。
  tip:如果是河南网通提供的PPPoE宽带帐号,此处输入的是加密后的用户名
  Would you like to add these addresses automatically to the list of nameservers
  in your local /etc/resolv.conf file? (recommended)
  是否自动获得DNS,选择是。
  Should pppoe clamp MSS at 1452 bytes? If unsure, say yes.
  数据包长度的设置,如果跟我一样不确定,选择是
  Your PPPD is configured now. Would you like to start the connection at
  boot time?
  是否启动时自动激活ADSL? 各位看着办吧。

  以后,要手工拨号,打开终端,输入命令:
  sudo pon dsl-provider

  一般情况下,一次拨通后以后登陆ubuntu都会自动拨通上网的了,不用每次都输入命令拨号。
  手工断线:
  sudo poff

  查看连接情况:
  plog 和 ifconfig ppp0
  ifconfig ppp0 可查询本机的上网IP。

  方式4:通过无线局域网接入互联网
此部分略,需要的请看原文链接


设置:/etc/apt/sources.list
根据自己执行debootstrap时选择的源服务器和版本号来设置。
deb http://ubuntu.srt.cn/ubuntu/ oneiric main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-security main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-updates main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-proposed main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-backports main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-security main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-updates main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-proposed main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-backports main restricted universe multiverse
至此,安装基本系统完成。确认以上操作没有错误后,可以重启了。如果顺利,则可以启动到一个只有字符环境的ubuntu系统,然后ctrl-alt-f1进入控制台,用ubuntu用户登陆,执行下面的命令:

代码: 全选

sudo apt-get update & sudo apt-get dist-upgrade
如果不报错,安装完成,下一步需要根据需要安装软件并进一步设置系统。

本部分的工作:学习了解字符界面的常识。
Ubuntu 方便宜用,最值得让人称道的便是其安装软件的方式, 一条命令: sudo apt-get install xxx 就几乎能帮你搞定所有的软件安装难题。但是有时你可能有这样的需求,查看某个软件包是否安装、安装在哪..., 那我们就来介绍一下 Ubuntu 的软件包管理方式。

一、Ubuntu 采用 Debian 的软件包管理器 dpkg 来管理软件包, 类似 RPM. 系统中所有 packages 的信息都在 /var/lib/dpkg/
目录下, 其子目录 /var/lib/dpkg/info 用于保存各个软件包的配置文件列表:
(1).conffiles 记录了软件包的配置文件列表
(2).list 保存软件包中的文件列表, 用户可以从 .list 的信息中找到软件包中文件的具体安装位置.
(3).md5sums 记录了软件包的md5信息, 这个信息是用来进行包验证的.
(4).prerm 脚本在 Debian 包解包之前运行, 主要作用是停止作用于即将升级的软件包的服务, 直到软件包安装或升级完成.
(5).postinst 脚本是完成 Debian 包解开之后的配置工作, 通常用于执行所安装软件包相关命令和服务重新启动.

/var/lib/dpkg/available 文件的内容是软件包的描述信息, 该软件包括当前系统所使用的 Debian 安装源中的所有软件包,
其中包括当前系统中已安装的和未安装的软件包.

/var/cache/apt/archives 目录是在用 apt-get install 安装软件时,软件包的临时存放路径

/etc/apt/sources.list 存放的是软件源站点, 当你执行 sudo apt-get install xxx 时,Ubuntu 就去这些站点下载软件包到本地并执行安装
(选一个好的软件源很关键,关系到软件下载速度和安全性。)
(除了官方源,还有一些官方源的镜像,还有PPA源是用来测试新版软件的,还有一些专业软件的源,如wine、fcitx等,还有一些私人源)

软件包的扩展名是.deb,可以用解压缩软件来解压出里面的文件。

二、dkpg
这个命令是包管理系统的核心。apt-get和aptitude最终都是调用dkpg进行包管理的。安装一些自己下载的deb文件不能使用apt 等命令,而应该:
sudo dkpg -i xxxx.deb
dpkg -configure -a 对所有包进行重新检查设置
dpkg-reconfigure 重新配制一个已经安装的包
三、apt-get
apt:advanced package tools
apt-get [参数] [包的名称]
参数:
install:安装新的包。先下载到硬盘,再安装。如果缓冲存储中存在该包则直接安装
remove:卸载。配置文件将保留,以便下次安装。
autoremove:删除系统没有用到的包
clean:删除硬盘里面的缓冲存储的包(默认位置:/var/cache/apt/archives)
autoclean:删除缓冲存储里面旧版本的包
source:下载源码
update:下载更新软件包信息列表
upgrade:更新软件
dist-upgrade:发布版升级
remove -purge :卸载同时删除配置文件。
check:检查系统完整性
-d install XXXX:仅下载
-f install :修复依赖关系

四、修复软件依赖关系错误:
什么是软件包的依赖关系. 对于Ubuntu软件包管理系统,一些软件包需要其它软件包被安装才能正常运行。
Ubuntu 软件包管理系统依赖声明,它描述了这一事实:一些软件包需要其它软件包被安装才能正常运行或运行得更好。
软件包A依赖(depends)软件包B:要运行A必须安装B。在有些情况下,A不仅依赖B,还要求B的特定版本。版本依赖通常有最低版本限制,A更依赖于B的最新版而非某个特定版本。
软件包A推荐(recommends)软件包B:软件包维护者认为所有用户都不会喜欢缺少某些功能的A,而这些功能需要B来提供。
软件包A建议(suggests)软件包B:B中某些文件与 A 的功能相关,并能够增强 A 的功能。这种关系通过声明软件包 B 增强 Enhances 软件包 A 来表示。
软件包A与软件包B冲突(conflicts):如果系统中安装了B那么A无法运行。“Conflicts”常和“replaces”同时出现。
软件包A替换(replaces)软件包B:B安装的文件被A中的文件移除和覆盖了。
软件包A提供(provides)软件包B:A中包含了B中的所有文件和功能。
所以在安装一个软件包同时,可能会一起安装其他许多软件包,也可能会卸载一些软件包。
一般情况下,apt-get以及他的前端软件(新立得等)会自动维护包依赖关系,软件源里面也会维持包依赖关系。但事情不是绝对的,有时包依赖关系会坏掉,这时可能有些包不能运行,也不能安装新包。
修复包依赖关系:sudo apt-get -f install
如果还是提示错误,则尝试 sudo apt-get remove xxxx删除错误的包,再sudo apt-get -f install
如果连删除都报错,则用其他包管理器尝试删除(sudo aptitude remove xxxx ,或者新立得等)再修复。


linux的目录文件体系:

代码: 全选

/   根目录 
    │ 
    ├boot/      启动文件。所有与系统启动有关的文件都保存在这里 
    │    └grub/   Grub引导器相关的文件 
    │ 
    ├dev/       设备文件 
    ├proc/      内核与进程镜像 
    │ 
    ├mnt/      临时挂载 
    ├media/   挂载媒体设备 
    │ 
    ├root/      root用户的$HOME目录 
    ├home/          
    │    ├user/   普通用户的$HOME目录 
    │    └.../ 
    │ 
    ├bin/      系统程序 
    ├sbin/      管理员系统程序 
    ├lib/      系统程序库文件 
    ├etc/      系统程序和大部分应用程序的全局配置文件 
    │   ├init.d/   SystemV风格的启动脚本 
    │   ├rcX.d/   启动脚本的链接,定义运行级别 
    │   ├network/   网络配置文件 
    │   ├X11/      图形界面配置文件 
    │ 
    ├usr/       
    │   ├bin/      应用程序 
    │   ├sbin/   管理员应用程序 
    │   ├lib/      应用程序库文件 
    │   ├share/   应用程序资源文件 
    │   ├src/      应用程序源代码 
    │   ├local/       
    │   │     ├soft/      用户程序       
    │   │     └.../      通常使用单独文件夹 
    │   ├X11R6/   图形界面系统 
    │ 
    ├var/         动态数据 
    │ 
    ├temp/         临时文件 
    ├lost+found/   磁盘修复文件
其中当前用户个人目录可以用~表示
用.(英文的点)开头的文件和目录是隐藏文件和目录
几个特殊位置:
apt-get存储的包默认位置:/var/cache/apt/archives
11.10flash插件存放位置:/usr/lib/flashplugin-installer/
wine的软件安装到的位置:~/.wine/drive_c/
系统字体:/usr/share/fonts/
系统中文字体:/usr/share/fonts/zh_CN/TrueType/ (没有目录就自己建立)
个人字体:~/.fonts
代码:
sudo fc-cache -f -v
刷新系统字体列表

linux中杀死内存中的进程:
1,ps -a 列出进程,找到进程PID
2,kill <PID> 杀死进程。
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 【补:丢失的第一轮折腾】另类方式安装ubuntu 手工配置系统 debootstrap安装, 图形界面有三套方案

#2

帖子 ljj_jjl2008 » 2014-06-29 18:04

本部分的工作:手工搭建一个及其简单的X桌面环境。

常识:
字符界面明显不能满足日常使用的需求,所以我们需要图形界面。

很多LINUX的初学者分不清除linux和X之间,X和Xfree86之间,X和KDE,gnome等之间是什么关系.常常混淆概念,我想以比较易于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限肯可能存在错误,请高手指正.

http://hi.baidu.com/kv2004/blog/item/0b ... 72312.html
  一 linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用