ubuntu16进程被锁_Ubuntu16.04使用所遇问题记录

记录笔者在使用Ubuntu系统过程中所遇到过的错误/问题和解决方案。本机系统为Ubuntu 16.04 LTS,64-bit。

目前已有的解决方案:

1.输入法设置--安装了搜狗拼音的linux版本

由于尝试了多种解决方案,可能使得各个步骤混淆在一起,这里只列出自己尝试过的操作,而不是具体的某一种方法。

(1)将System Setting->Language Support中的Keyboard input method system选项改为fcitx;

(2)在Install/Remove Language弹出的对话框中将Chinese语言包选择,点击apply。完成中文语言包的安装;

(3)在搜狗官网下载sogou for linux的deb安装包,这里笔者直接通过点击进行安装,没有报错,也可通过命令sudo dpkg -i 安装包路径 进行安装,典型的路径是~/Downloads/**.deb;

(4)在System Setting->Text Entry->Input sources to use中点击“+”按钮,找到Sogou Pinyin(Fcitx),进行添加,右侧还可以选择切换的快捷键方式;

(5)选中(4)中添加的输入法项,点击界面右下角形如扳手的按钮,进入到Input Method Configuration,点击左下角的“+”按钮,寻找Sogou的输入方式,若未找到,可以点击取消下方的Only Show Current Language,选择Sogou的输入方式,点击OK即可,此时应该已经可以根据已设置的切换快捷键进行输入方式的切换。

若上述方法没有效果时,可以重复(1)(2)步骤,如现将输入方式修改为ibus,并将(2)中的Chinese语言包卸载后重装,之后再改为fcitx,并重启,即可继续上述步骤。

2.Windows和Ubuntu的双系统,使用时系统时间不一致问题(参见UbuntuTime)

主要针对安装 Windows 和 Ubuntu 双系统时,在切换不同的系统时,两者的时间显示会不一致的问题。

问题产生的原因在于 Windows 与 linux 默认的设置硬件时钟(hardware clock)的方式不同。Windows将硬件时间设置为本地时间(localtime)而Ubuntu默认设置为UTC时间。也就是说,当在7:00PM关机时,Windows会将硬件时钟设置为7:00PM,硬件以这个时间为基准继续计时,开机时读取到的也是正确的本地时间。而对于Ubuntu,系统默认会将7:00PM转化为UTC时间进行存储,而启动时再将读取的硬件时钟的时间转化为本地时间。这样就会造成Ubuntu关机之后,Windows开机时时间会出现问题的情况。

解决方法:

1.禁用UTC而使用本地时间。对于老版本的ubuntu,将Ubuntu的配置文件/etc/default/rcS中关于UTC的选项由yes转换为no。对于较新的版本,可以使用命令sudo timedatectl set-local-rtc 1即可以进行设置。相应的关闭使用本地时间功能可以使用sudo timedatectl set-local-rtc 0;

2.将Windows设置为使用UTC时间( 在Windows8.1和Windows10中验证通过 )。桌面右下角windows图标-->右键,运行-->regedit,选择HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Control->TimeZoneInformation,出现关于时间信息的注册表项,右键新建-->DWORD(32位)/QWORD(64位)(位数根据系统位数确定)-->将项目名称改为RealTimeIsUniversal-->将值改为1,格式为16进制。或则参考链接中的方法,即新建一个注册表文件来实现相同的功能。

3.关于删除了/etc目录之后的补救O.O(有备份)

在练习使用打包命令tar的过程中产生事故。笔者练习使用tar指令将/etc进行打包。并在/tmp新建了一个/etc目录以供解压,解压时发现tar产生的文件的解压结果是生成完整的/etc目录,从而产生了/tmp/etc/etc的目录结构。于是进入/tmp/etc目录,想将里面重复的/etc目录使用rm -rf命令删除掉。结果想当然的使用了rm -rf /etc命令...发现/tmp/etc文件下的/etc目录仍然存在...然后突然意识到自己用绝对路径删除掉了/etc文件夹。

补救过程:

(1)由于是tar命令的练习,所以有/etc文件生成的压缩文件存在。尝试将压缩文件再解压到根目录下,提示permission denied。尝试使用sudo命令,提示无法识别uid,推测是因为关于用户信息的/etc/passwd和/etc/shadow等文件已经被删除了;

(2)尝试上网查找资料,结果发现网络链接不可用。原因和配置文件缺失也有关系;

(3)想到以前看到过的重启进入单用户调试模式尝试进行修复,但是由于/etc目录缺失,担心可能进入不了单用户模式,而且一旦关机将再无法进入系统(/etc目录没有了),所以没有进行这一种方法的尝试;

(4)由于文件系统中是存在/etc的备份的,所需要的是找到root权限将备份文件写回原来的/etc目录,但是当前系统由于没有了/etc目录又无法提升权限。最终想到了使用live CD的方法。即借助装有linux安装程序的U盘,设置BIOS从U盘启动,再使用安装程序所自带的试用选项。此时将可以使用sudo进行权限的提升。在进入试用模式后,使用sudo fdisk /dev/sda(不同设备的设备名可能不同)得到系统的磁盘分区情况,分别将需要的文件系统挂载(在笔者情况下,是分别挂载了/和/home),然后使用sudo命令将备份的信息写回挂载的根目录即可。最后再重新启动,发现可以正常进入系统了,问题解决!

联想:既然可以通过Ubuntu的Live CD使用备份文件恢复/etc文件夹,是否可以在Live CD上进行新建用户等操作,再直接将Live CD的/etc用于被删除的/etc的恢复?这样虽然会有部分配置文件会丢失,但是在没有备份的情况下比重装系统的性价比还是大不少?当然对于配置环境较多的系统,首先还是经常备份。

经验与教训:

(1)linux命令中敲击命令时千万不要想当然,特别是对于root权限,带来极大的便利的同时也可能孕育魔鬼,对于命令的作用和潜在效果一定要做重审;

(2)对与linux中的路径问题,只存在绝对路径和相对路径两种情况,对应产生问题的命令,使用相对路径就应该为./etc,而使用绝对路径时就应该使用/tmp/etc/etc的完整路径名,使用/etc会被认作绝对路径,从而造成问题;

(3)备份是十分重要的。这次问题能够解决一定程度上要感谢是在练习使用打包指令tar,从而存在备份,否则会有更大的麻烦。相对的,若是存在备份,再借助live CD的强大功能,便可以解决很多问题。所以有备份的习惯,做好的备份,会在关键时刻帮上很大的忙。

4.在64位Ubuntu环境下运行32位程序的问题

在做CSAPP配套的buffe

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值