美好的周日贡献给重装系统了,因为又手残了。既上周日删除了自己的home目录以后,这周直接把系统的权限折腾乱了,起因是我用了sudo chown -R,系统真的有提示我的。。。所以是我的锅。

近期使用的系统是Ubuntu-16.10,考虑到Meltdown-Spectre漏洞的补丁还不支持,想着换个系统算了,就入了debian的坑。。。嗯,这个坑更大!!!

于是,一边填坑,一边记录一下步骤,有种预感最近还是会折腾系统。

debian系统安装

debian-testing的iso下载路径,可以在USTC的镜像站找,我尝试安装debian-9,可能刻录的时候有问题,无法安装,所以改用了network install的版本。使用了UltraISO烧写到U盘里,他们的试用版功能已经足够了。烧写好以后开始安装,按流程走就行。这里要注意的地方是: 挂载/目录的分区需要格式化,否则无法安装。主要原因是与原有的ubuntu系统文件存在冲突。

多系统引导

Debian采用grub引导多系统,我是在win10基础上安装Linux系统的,并通过debian引导windows。在重装的过程中,碰到了windows分区没有被读出并列在引导列表中的情形,有一个简答的解决方法,更新一下grub配置, 即update-grub

1
$ sudo update-grub

一般更新后的列表后会出现对应windows的分区和条目。当然这个是运气,如果碰到其他问题,建议问谷歌。。。

系统配置

我选择了gnome桌面环境,系统本身还是很好看的,但也有一些bug,比如gnome-terminal就很丑。。。除此之外,debian比ubuntu预装的软件少很多,例如常用sudolocate等都需要自己安装,对新手来说比较坑。下面说一下我的配置过程,

terminal shortcuts

Ubuntu默认的terminal快捷键是Ctrl+Alt+T,debian是没有这个快捷键的,需要自己添加。具体的思路是

1
system setting -> devices -> keyboard -> "+" -> add a new shortcut

Terminal默认的shell通常为bash,如果要更换为其他的,例如zsh, 则执行如下指令即可

1
$ chsh -s /usr/bin/zsh

此处会提示用户输入密码。

sudoer 及 sudo安装

打开terminal以后,便可以安装和配置软件,此时需要sudo来临时使用root权限,debian默认不将用户添加到sudoer列表里,因此需要手动添加,步骤如下,

1
2
3
4
5
6
7
8
9
10
11
首先按Ctrl+Alt+F3,进入console,以root身份登录,在安装系统时会要求设置root的密码
进入以后,执行如下步骤
1. 添加user到root的group里
# usermod -G root user
2. 修改sudoers文件为可写
# chmod +w /etc/sudoers
3. 编辑sudoers文件,添加用户
# vim /etc/sudoers
# user ALL=(ALL:ALL) ALL
4. 修改sudoers文件为只读
# chmod -w /etc/sudoers

再按Ctrl+Alt+F1回到图形界面,此时便可以用root权限安装sudo,并进一步安装其他软件了。

系统语言及locale配置

由于要使用中文,我通常会用中文安装系统,再修改系统为英文。在Ubuntu中,直接在设置中设置语言即可;在debian中会更纯粹一些,即设置系统语言并调整locale的配置。

1
2
$ sudo vim /etc/locale.gen
# 将需要的语言反注释掉,如 en-US.UTF-8

再在system setting中调整语言支持即可,或者执行如下指令进行设置。

1
$ sudo dkpg-reconfigure locale

时区调整

改变语言为英文后,系统会采用UTC时间,此时会出现即使时区选择为Asia/Shanghai,依然与北京时间相差八个小时的情况,这也说明系统与Network Time没有同步,解决方法如下,

1
2
$ sudo apt install ntpdate
$ sudo ntpdate time.windows.com

即将系统时间与windows提供的网络时间同步,这样便会根据系统时区找到对应的时间了。

Genome 窗口调整问题

gnome默认的窗口控件没有最大化和最小化,刚转过来会不习惯,解决方法是在genome-tweak-toolwindows选项中进行设置。

gnome-terminal 无法正常运行

这个通常与调整了系统语言相关,即locale的语言设置与系统语言冲突,或未设置,导致genome-terminal无法初始化窗口,解决方法是,

1
# echo "LANG=zh-CN.UTF-8" >> /etc/locale.conf

系统切换以后block size的问题

这个情况比较特殊,实验室可能只有我碰到过。在一块SSD上安装了windows和linux双系统,并且上一次运行的系统是windows, 则开机后因为ext4分区的block错误,导致无法引导进入Linux,目前有两个指令可以解决这一问题,并且要求有livecd USB,即能独立引导的最小化系统。可用的指令分别为fscke2fsck,二者的区别,我争取专门写一篇,目前还不太理解。

首先用sudo fdisk -l查看文件格式为ext3/ext4的分区,着重关注包含有Linux系统的主分区,然后修复block的问题。

  1. fsck

    1
    # fsck -t ext4 /dev/sda1
  2. e2fsck

    1
    2
    # e2fsck -b 32768 /dev/sda1
    -b 表示 superblock,具体的解释<TODO>...