安装 2015发生大问题----启动问题
Tofloor
poster avatar
shulun743
deepin
2015-07-22 05:00
Author
硬件:thinkpad e550 i5-5200 4G 500G  ati265显卡

系统:自带 win8.1 ,   64位,我想 安装双系统

操作:安装deepin2015 ,64位


1、关闭 win8.1 快速启动!

2、将Restart项目下的OS Optiomlzed Defaults选项设置为Disabled

3、将Secure Boot 改为“Disabled” ,并设置启动方式为 uefi only!

4、安装2015 64位 deepin内测版


结果:  很严重

a、grub菜单中选择win8并启动,发现报错,win启动不了,但是选deepin却能正常启动!!!




b、只有 开机时按F12 ,选择 window boot manager 才能正常启动win!!!

c、并且启动菜单也是显示不正常,如下图




正常情况下是三项 ,多出了第四项,这个是做什么的?如何去掉?

我试了试 点击第四项 ,居然是 进入 BIOS!!!



Reply Favorite View the author
All Replies
2 / 3
To page
isunny
deepin
2015-07-24 15:52
#21
UEFI启动模式下安装ubuntukylin13.04实录
from    :   http://tieba.baidu.com/p/2543314310#
UEFI启动模式下安装ubuntukylin13.04实录
先声明一下,本文并不适合Linux新手,所以一些过程写得比较简单。

新买了台超极本(MSI s20 i5/128G SSD/8G RAM),UEFI预装win8 64位,但工作需要,已经离不开Linux,所以查阅了一些资料,在UEFI下安装了ubuntukylin,与win8共存。

1 需要搞清的一些问题
(1) uefi boot 与 legacy boot
新买的电脑如果是UEFI预装win8,你会发现两个很小的分区(几百MB),一个叫ESP(EFI系统分区),另一个MSR(Microsoft保留分区,通常为128MB)。MSR是windows要求的。ESP对UEFI启动很重要,以前的老电脑启动时(俗称legacy boot)引导程序会从MBR中读取,而UEFI的引导程序是以后缀名为.efi的文件存放在ESP分区中的,ESP分区采用的是fat32文件系统。所以千万不要手贱把这两个分区删了。此外,可能还存在一个小分区叫WinRE,这个是win8的恢复分区,体积也很小。windows下想访问ESP分区必须用分区工具给它分配盘符取消隐藏;而ubuntu则直接将这个分区挂载到/boot/efi
(2) uefi只支持64位的系统,所以uefi预装的win8是64位的,ubuntukylin我们也采用64位的。
(3) uefi bios和legacy bios
我们都知道可以在bios调整设备的启动优先级,而uefi bios在uefi boot模式下不但可以调设备的优先级,还可以调整设备中引导程序的优先级,安装完ubuntu之后,你再进bios就会发现启动项中多了一个叫ubuntu。
(4) uefi bios是支持legacy boot的,只需调整boot mode即可,但是预装的uefi启动模式的win8就无法再启动了。uefi boot通常和gpt分区表配合使用,而legacy boot只能使用mbr分区表。此外,我还见过很奇葩的uefi bios,尽然只支持legacy boot。
(5) uefi引导u盘或移动硬盘
只要u盘或移动硬盘上有一个fat32的分区,uefi就会自动去查找相应的启动文件(.efi)
你可以打开你刚制作的ubuntukylin的u盘安装盘,你会发现分区的文件系统是fat32,里面会有一个EFI文件夹,存的就是引导文件。
部分uefi还支持从NTFS分区中查找启动文件。



...


Reply View the author
isunny
deepin
2015-07-24 15:53
#22
2 安装ubuntukylin13.04 64位
(1) 进win8,关休眠,方法:管理员权限的命令行输入 powercfg -h off
这里说说为什么要关win8的休眠功能。win8有个快速启动,采用的是混合启动技术,这将导致win8的关机是假关机。其原理是将内存内容保存到C:\hiberfil.sys文件中,然后切断电源。下次开机时,直接用这个文件恢复内存,不需要再启动并配置一堆进程,速度自然快了。但安装完ubuntukylin后我发现这个功能就失效了。
这个功能需要额外占用75%左右内存容量的空间,例如我是8G的内存,就要占我6G多,我的电脑是128G的ssd,空间本来就小,还要装双系统,所有将它干掉。
另外,win8系统有时耳机会没声音,估计是realtek驱动的兼容性导致的,这个现象尤其会发生在启动ubuntukylin后再重启成win8,此时需要彻底将电脑关机,然后再按电源键开机直接进win8(注:重启无效)才可恢复。
win8的快速启动需要在uefi bios下开启fast boot,但这会导致usb外接的硬盘在启动时失效,这时你就无法通过外接键盘进bios,调启动菜单等,我的小本可以变形为平板模式,此时内置的键盘是按不了的,不能用外接键盘非常不方便。

(2) 分区
原本分区只有一个C盘和一些必须的隐藏分区,需要使用分区工具调整。
如何分区属于个人喜好,没什么好说的,这里列举一下个人分区情况以方便后文说明

分区1: winre(windows恢复分区),600MB(预装的就这么大),文件系统: ntfs,Linux下的挂载点: /otheros/winre
分区2: ESP(EFI系统分区),300MB,文件系统: fat32,Linux下的挂载点: /boot/efi
分区3: MSR(微软保留分区),128MB
分区4: win8 C盘 系统盘,30GB,文件系统: ntfs,Linux下的挂载点: /otheros/win8
分区5: win8 S盘 软件盘,38GB,文件系统: ntfs,Linux下的挂载点: /otheros/win8sw
分区6: ubuntukylin 数据盘,32GB,文件系统: btrfs,Linux下的挂载点: /storages/octagram
分区7: ubuntukylin 根分区,18GB,文件系统: btrfs,Linux下的挂载点: /
分区8: ubuntukylin boot分区,256MB,文件系统: ext4,Linux下的挂载点: /boot
sd卡: win8 M盘,64GB,文件系统: exfat,Linux下的挂载点: /storages/multimedia

8G的内存,不使用休眠,就不需要swap分区,即使以后需要也可以采用文件的方式。

(3) 插入ubuntukylin安装u盘,先启动到liveUSB桌面
<1> 格式化/boot分区为ext4
因为mlc的ssd最小擦除单元是512KB(也有128KB的),所以理想的状态下,应该512KB对齐。如果设定ext4的block为512KB的倍数就太过于浪费空间(1字节的文件也至少要占用512KB的空间!)。但也不能小于4KB,因为SSD最小写入单元是4KB,所以就选4KB好了。好在ext文件系统还提供两个参数:stride,tripe-width。这两个参数原本是用在raid上的,但这里我们可以将单硬盘变通地看成“raid 0”,硬盘数量n=1,而raid chunk size(大块的尺寸)就为512KB。可以计算得到:
stride = chunk_size / block_size = 512k / 4k = 128
stripe_width = stripe * n = 128 * 1 = 128

最后,从(2)中的分区表可以知道/boot分区为/dev/sda8
sudo mkfs.ext4 -b 4096 -E stride=128,stripe-width=128,resize=10G -L boot /dev/sda8

关于ext4的日志功能,ubuntu默认使用的是data=ordered,对于boot分区,并不会产生多少额外的写操作,所以这里就不关闭日志功能了,如果需要关闭:
sudo mkfs.ext4 -O ^has_journal -b 4096 -E stride=128,stripe-width=128,resize=10G -L boot /dev/sda8

关于日志对ssd寿命的影响,我更愿意相信我的ssd可以用到忆阻器硬盘问世并直接将ssd全面淘汰的时候。

<2> /和/storages/octagram
btrfs的建立很简单:
sudo mkfs.btrfs -L "sysroot" /dev/sda7
sudo mkfs.btrfs -L "octagram" /dev/sda6

<3> 安装时启用btrfs的压缩
ubuntu默认安装是没有开启btrfs的压缩的功能的,btrfs的压缩功能不但可以节约空间还能提高性能
例如我的ubuntukylin安装了一堆软件,才用了3G多的空间,这就是为啥我只给根目录分18G的原因了。
开启压缩需要做点偷梁换柱的工作:

sudo mv /bin/mount /bin/mount.bin
sudo touch /bin/mount
sudo chmod +x /bin/mount
sudo gedit /bin/mount
增加下面内容并保存

#### #### #### #### #### #### #### ####
#!/bin/sh
if echo $@ | grep "btrfs" > /dev/null; then
/bin/mount.bin $@ -o space_cache,inode_cache,compress=lzo,autodefrag,ssd
else
/bin/mount.bin $@
fi
#### #### #### #### #### #### #### ####

(4) 开始安装ubuntukylin
不要重启,直接在LiveUSB的桌面环境找到安装程序,否则(3)-<3>中的修改将被还原,安装过程没有什么特别的,就是在设置分区时采取自定义的方法,不要去选“安装ubuntu与windows共存”之内的选项。按照(2)中分区情况挂载分区和选择分区类型,要小心别勾选“格式化”把分区的数据给毁了。其实这里已经没有任何一个分区需要格式化,因为前面已经完成这项工作了。引导器选择安装到/dev/sda(其实这对UEFI模式下的安装无意义)。此外这里还会提示“没有swap”之类的消息,不用理会。
此外,安装完成后别急着重启,继续回到LiveUSB的桌面。

(5) 安装完成后的一些调整工作(回到LiveUSB的桌面后,还是别重启)
<1> 先挂载根分区
sudo mount -o defaults,nodiratime,noatime,space_cache,inode_cache,compress=lzo,autodefrag,ssd /dev/sda7 /mnt
你会发现安装程序自动帮你建立了两个btrfs的子卷:一个@,根目录;一个@home,home目录


...
Reply View the author
isunny
deepin
2015-07-24 15:54
#23
<2> 修改/etc/fstab
sudo gedit /mnt/@/etc/fstab
修改如下:

#### #### #### #### #### #### #### ####
# / was on /dev/sda7 during installation
UUID=21ea3de3-7be3-4751-83f8-55447806190d / btrfs defaults,subvol=@,nodiratime,noatime,space_cache,inode_cache,compress=lzo,autodefrag,ssd 0 1

# /boot was on /dev/sda8 during installation
UUID=7c9dfe59-0e48-4179-875c-527763decfe3 /boot ext4 defaults,nodiratime,noatime 0 2

# /boot/efi was on /dev/sda2 during installation
UUID=8AA5-3B52 /boot/efi vfat defaults,nodiratime,noatime 0 1

# system tmpfs
tmpfs /tmp tmpfs defaults,noatime,nodiratime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nodiratime,mode=1777 0 0
log /var/log tmpfs defaults,noatime,nodiratime,mode=1777 0 0
spool /var/spool tmpfs defaults,noatime,nodiratime,mode=1777 0 0
crash /var/crash tmpfs defaults,noatime,nodiratime,mode=1777 0 0

# /otheros/win8sw was on /dev/sda5 during installation
UUID=10E60A5F10E60A5F /otheros/win8sw ntfs defaults,noatime,nodiratime,umask=007,uid=1000,gid=1000,nls=utf8,utf8 0 0

# /storages/octagram was on /dev/sda6 during installation
UUID=d731ab56-1062-4289-9d3c-104b04ff0957 /storages/octagram btrfs defaults,nodiratime,noatime,space_cache,inode_cache,compress=lzo,autodefrag,ssd 0 2

# /home was on /dev/sda7 during installation
UUID=21ea3de3-7be3-4751-83f8-55447806190d /home btrfs defaults,subvol=@home,nodiratime,noatime,space_cache,inode_cache,compress=lzo,autodefrag,ssd 0 2

# /otheros/win8 was on /dev/sda4 during installation
UUID=3A9CAA2B9CA9E21D /otheros/win8 ntfs defaults,ro,noatime,nodiratime,umask=007,uid=1000,gid=1000,nls=utf8,utf8 0 0

# /otheros/winre was on /dev/sda1 during installation
UUID=E4DAA327DAA2F4C8 /otheros/winre ntfs defaults,ro,noatime,nodiratime,umask=007,uid=1000,gid=1000,nls=utf8,utf8 0 0
#### #### #### #### #### #### #### ####

UUID是安装程序自动帮我获取的,对fstab的修改主要是为btrfs增加了挂载选项space_cache,inode_cache,compress=lzo,autodefrag,ssd;增加一些tmpfs减少对ssd硬盘的写入;调整了下ntfs分区的挂载选项;然后使用了noatime关闭记录访问时间,减少对ssd的写入。有很多选项其实是可以不用写出来的,但是本人喜欢写全。

这里使用了tmpfs将写入频繁,但有不是很重要的文件夹放入内存,坏处是关机后内容全部消失。
/tmp 存放临时文件的地方,重启后里面数据通常就没用了。
/var/tmp 同上
/var/log 系统的日志放在这里面,删除后不影响系统的使用,但是出现问题可能无法查找原因。所以挂不挂载到内存还是要看自己的选择。
/var/spool 存放应用程序的spool data,这些数据通常是应用程序不急着处理的(但将来会处理),处理后通常被删除(后面会讲到一个例外)。
/var/crash 大家都知道ubuntu运行出错了,会弹出个提示让你提交错误报告,那错误报告在哪,就在这里面。提交完后ubuntu就会自己把它删掉。

<3> 增加启动脚本
A. 刚才把/var/spool和/var/log送进了内存,所以里面的一些文件夹是需要在启动时建立的。
在/mnt/@/etc/rc.local中增加(注意别加到exit 0后面去了):

#### #### #### #### #### #### #### ####
# /var/log/*
for DIR in apt dist-upgrade fsck hp installer samba speech-dispatcher unattended-upgrades upstart ; do
if [ ! -e "/var/log/$DIR" ] ; then
mkdir /var/log/$DIR
fi
done
# /var/spool/*
for DIR in cron cups plymouth rsyslog mail mqueue ; do
if [ ! -e "/var/spool/$DIR" ] ; then
mkdir /var/spool/$DIR
fi
done
#### #### #### #### #### #### #### ####

B. 此外刚才提到的一个特例就是anacron,如果将/var/spool放到内存,会导致anacron无法启动,而ssd的trim需要依靠它来完成。有朋友可能会说cron正常就行了,cron确实可以正常运行。但是cron是假定机器一直处于运行状态的,通常用在服务器上,个人pc更何况还是变形超极本哪有不关机的。如果你设定的每日trim时间点正处于关机状态,cron就会略过这次任务,如果一个月都这样,那ssd就一个月都没trim过一次。但是anacron就不会这样。解决的办法同样是在启动时增加点东西。
在/mnt/@/etc/rc.local中增加下面这一句(注意别加到exit 0后面去了):

#### #### #### #### #### #### #### ####
ln -s /var/cache/anacron /var/spool/anacron
#### #### #### #### #### #### #### ####

然后在/mnt/@/var/spool下建立一个anacron目录
sudo mkdir /mnt/@/var/spool/anacron

C. 调整ssd的io调度算法
同样是在rc.local中增加
echo deadline > /sys/block/sda/queue/scheduler
echo 0 > /sys/block/sda/queue/add_random
echo 1 > /sys/block/sda/queue/iosched/fifo_batch
但这里有个小小的问题,有时我们的硬盘会突然从sda变成了sdb,导致上面脚本失效,还记得刚才我建立自己的数据分区/dev/sda6时给它取了个卷标"octagram"吗,卷表和UUID是不会变的,但UUID太长了,所以这里使用卷标改造脚本

#### #### #### #### #### #### #### ####
OCTAGRAM_BLKID=$(blkid | grep "octagram")
if [ "x$OCTAGRAM_BLKID" != "x" ] ; then
SSD_DEV=$(echo "$OCTAGRAM_BLKID" | awk '{print $1}')
SSD_DEV=${SSD_DEV##*'/'}
SSD_DEV=${SSD_DEV:0:3}
echo deadline > /sys/block/${SSD_DEV}/queue/scheduler
echo 0 > /sys/block/${SSD_DEV}/queue/add_random
echo 1 > /sys/block/${SSD_DEV}/queue/iosched/fifo_batch
fi
#### #### #### #### #### #### #### ####

其实 echo deadline > /sys/block/${SSD_DEV}/queue/scheduler 是不需要的,因为ubuntukylin13.04对ssd默认就采取这种方式。此外,io调度算法noop对ssd来说也是推荐的,此时脚本改为:

#### #### #### #### #### #### #### ####
OCTAGRAM_BLKID=$(blkid | grep "octagram")
if [ "x$OCTAGRAM_BLKID" != "x" ] ; then
SSD_DEV=$(echo "$OCTAGRAM_BLKID" | awk '{print $1}')
SSD_DEV=${SSD_DEV##*'/'}
SSD_DEV=${SSD_DEV:0:3}
echo noop > /sys/block/${SSD_DEV}/queue/scheduler
echo 0 > /sys/block/${SSD_DEV}/queue/add_random
fi
#### #### #### #### #### #### #### ####

至于将add_random写0是禁用熵聚集,而fifo_batch控制deadline算法的requests数量,这个值越小,每个request的延迟就越小,但总吞吐量会下降。但ssd吞吐量本来就很高,所以选小延迟比较合适。关于io算法这里不涉及,可写成很长的几篇文章了,而且需要有一定的计算机专业知识才能明白,例如你得理解什么是红黑树才能说请deadline。

<4> 禁用UTC,否则会造成windows端和ubuntu端时间相差8小时
sudo gedit /mnt/@/etc/default/rcS

将 UTC=yes 改成 UTC=no

3 启动后的第一件事
更新源&升级
sudo apt-get update
sudo apt-get upgrade



....
Reply View the author
isunny
deepin
2015-07-24 15:55
#24
4 优化grub启动菜单
(1) 为grub启动菜单增加win8的启动项
到此终于可以重新启动计算机了,重启后拔掉u盘,发现计算机很自觉地进了win8,这是因为没有在uefi bios中调启动顺序,当然也可以按F11/F12调出bios启动菜单选择。
调整bios后终于进到了ubuntukylin.等等,问题又来了,为啥没有grub启动菜单让我选择是进Linux还是win8?看来又得修改一下grub了。

先查看ESP分区的uuid(其实这个值在fstab中已经可以看到了)
sudo grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
返回结果:8AA5-3B52

这里为什么是/boot/efi?还记得其面说过ubuntu会把ESP分区挂载到这里吗,这一点从fstab就可以看出来。

sudo gedit /etc/grub.d/40_custom
增加

#### #### #### #### #### #### #### ####
menuentry "Windows x86_64 UEFI-GPT" {
search --fs-uuid --no-floppy --set=root 8AA5-3B52
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
#### #### #### #### #### #### #### ####

注意,8AA5-3B52要修改成自己ESP的uuid哦,关于路径,自己最好去/boot/efi看看是不是EFI/Microsoft/Boot/bootmgfw.efi

sudo update-grub2
启动菜单就有win8的启动项了

但是启动菜单还是没有出来
sudo gedit /etc/default/grub
把GRUB_HIDDEN_TIMEOUT=0注释掉(这一行的最前面增加一个#)像这样
# GRUB_HIDDEN_TIMEOUT=0
此外
GRUB_TIMEOUT=10
控制着grub菜单的读秒时间,默认是10秒,可以修改成其他值
改完之后记得让修改生效
sudo update-grub2

grub菜单中还有一项叫
system setup
通过这个选项可以进到uefi bios(再次感慨uefi的强大)
好了现在可以安心地在bios中将ubuntu设为第一启动项,以后进win8也不用进bios了,和以前一样的了。

(2) 为发行版改名
等等,为啥gurb启动菜单中以及bios中的启动项叫ubuntu而不是ubuntukylin?不是咱们就把它改成ubuntukylin
方法很简单
sudo gedit /etc/default/grub
你会发现这么一行
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
在最前面加个#注释掉,然后在它下面增加一句,修改后成这样:
#GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_DISTRIBUTOR=ubuntukylin

修改完后
sudo update-grub2
sudo grub-install

你可以去/boot/efi下看看是不是产生了一个ubuntukylin的文件夹,同时别忘了修改bios中的启动项顺序,第一为ubuntukylin
这样改还有一个好处,例如,某天你想在移动硬盘下装一个ubuntu12.04.2,安装程序会在你的ESP分区的EFI/ubuntu中建立引导文件(不是在移动硬盘的fat32分区哦),就会把我们的ubuntukylin的引导文件覆盖了,但是现在我们把文件夹改成ubuntukylin就与ubuntu没有冲突了。

(3) 删除旧的ubuntu启动项
先去/boot/efi/EFI下把ubuntu文件夹删了
sudo rm -r /boot/efi/EFI/ubuntu
然后使用工具efibootmgr(没有就安装 sudo apt-get install efibootmgr)
sudo efibootmgr

你会得到像下面这样的信息
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0002,0000,0001,0006,0005
Boot0000* Windows Boot Manager
Boot0001* ubuntu
Boot0002* ubuntukylin
Boot0005* UEFI: IP4 Realtek PCIe GBE Family Controller
Boot0006* UEFI: IP6 Realtek PCIe GBE Family Controller

从信息中我们知道windows是第0项,ubuntu是第1项,显然是将第1项删除
所以
sudo efibootmgr -b 1 -B



...
Reply View the author
isunny
deepin
2015-07-24 15:56
#25
windows下也有类似工具EasyUEFI。

5 重要的trim
ssd怎么能没有trim,如果在ext4或btrfs的挂载选项中增加discard确实能达到目的,但是会导致删除大量文件时的性能严重下降,所以还是一天做一次trim比较好。
增加一个文件/etc/cron.daily/trim,然后编辑
sudo gedit /etc/cron.daily/trim

#### #### #### #### #### #### #### ####
#!/bin/bash
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG
#### #### #### #### #### #### #### ####

最后记得增加执行权限
sudo chmod +x /etc/cron.daily/trim

6 个性化定制
(1) 开启root
sudo passwd root
如果不开启会导致一些应用程序无法正常运行,例如virtualbox无法安装扩展,ubuntu-tweak不能为root设置主题

(2) 将firefox缓存扔进内存
删掉你的home下.cache/mozilla/firefox文件夹,.cache是隐藏的,可以使用命令行方式删
rm -r ~/.cache/mozilla/firefox
然后建立一个软链接
ln -s /tmp/appcache/firefox ~/.cache/mozilla/firefox
之后
sudo gedit /etc/rc.local
增加

#### #### #### #### #### #### #### ####
# firefox cache dir
if [ ! -e "/tmp/appcache/firefox" ] ; then
sudo -u '#1000' mkdir -p /tmp/appcache/firefox
fi
#### #### #### #### #### #### #### ####

#1000是你的uid,可以换成你的用户名,ubuntu使用1000作为你的用户名的uid和gid,新建的用户依次+1为1001,1002,...

(3) 启动是默认关闭蓝牙
sudo gedit /etc/rc.local
增加

#### #### #### #### #### #### #### ####
rfkill block bluetooth
#### #### #### #### #### #### #### ####

(4) 设置启动时默认亮度
sudo gedit /etc/rc.local
增加

#### #### #### #### #### #### #### ####
echo 18 > /sys/class/backlight/acpi_video0/brightness
#### #### #### #### #### #### #### ####

18是亮度值,此外你最好去/sys/class/backlight下看看自己的设备叫什么名字,根据自己情况替换掉“acpi_video0”。

使用下面命令
cat /sys/class/backlight/acpi_video0/max_brightness
可以得到能设置的最大值,写入的亮度值要小于最大值,有些机器可能是值越高,越暗。



....
Reply View the author
isunny
deepin
2015-07-24 15:56
#26
7 让系统支持exfat文件系统
还记得我的那张64G的SD卡吗?比较特殊的是这个SD卡使用的文件系统是exfat,目前ubuntum默认不带这个文件系统,需要额外装点东西
(1) 方法1
sudo apt-get install exfat-fuse exfat-utils
然后就可以在fstab中增加对exfat的挂载项了

(2) 方法2
方法1固然简单,但是exfat-fuse是基于fuse的,fuse是filesystem in userspace的简称,使用它可以将驱动建立在用户态,但代价是牺牲效率(这点和wine一样)。目前还存在一个软件包叫exfat-nofuse,这个包是一个内核模块,直接运行于内核态,说简单点就是为Linux内核增加了exfat的驱动,和ext4这些文件系统的驱动没有区别,因此效率高。而且据说这个包是微软为Android设备开发的(exfat就是微软的东西),然后有人从Android的内核中分离出来的,既然是微软原生的肯定是首选了,但是安装有一点点麻烦。
<1>首先要下载源码包
安装代码管理工具git
sudo apt-get install git-core
先找一个位置存放代码,例如
cd /storages/octagram/projects
然后下载(克隆)代码
git clone https://github.com/rxrz/exfat-nofuse.git
完成后你会得到一个exfat-nofuse的文件夹
然后编译
cd exfat-nofuse
make
sudo make install
make clean

<2> 升级内核后
升级内核后这个包需要重新安装
此时只需要进到exfat-nofuse目录
执行
git pull
make
sudo make install
make clean
即可

<3> 自动挂载sd卡
为了避免升级内核后,新内核暂时没有exfat驱动导致的错误,不要将挂载选项放入fstab中,可以在/etc/rc.local中增加挂载的代码
sudo gedit /etc/rc.local
增加

#### #### #### #### #### #### #### ####
SD_BLKID=$(blkid | grep multimedia)
if [ "x$SD_BLKID" != "x" ] ; then
SD_DEV=$(echo "$SD_BLKID" | awk '{print $1}')
SD_DEV=${SD_DEV##*'/'}
SD_DEV=${SD_DEV:0:3}
echo deadline > /sys/block/${SD_DEV}/queue/scheduler
echo 0 > /sys/block/${SD_DEV}/queue/add_random
fi
if ! lsmod | grep exfat_fs > /dev/null ; then
if modprobe exfat_fs > /dev/null 2>&1 ; then
if [ "x$SD_BLKID" != "x" ] ; then
mount -t exfat -o defaults,nodiratime,noatime,uid=1000,gid=1000,umask=007 LABEL=multimedia /storages/multimedia
fi
else
echo "cat not find exfat module"
fi
fi
#### #### #### #### #### #### #### ####

这里我为sd卡设置的一个卷标multimedia,原因同样是防止其在/dev目录下的设备节点发生变化。此外需要注意的是别忘记先将/storages/multimedia创建出来。
sudo mkdir -p /storages/multimedia

ps:  新版的exfat-nofuse已经将模块名改为exfat.ko了,所以"if modprobe exfat_fs > /dev/null 2>&1 ; then"要改成"if modprobe exfat > /dev/null 2>&1 ; then"

8 安装一些必要的软件
这一章不是本文的重点,Linux下有很多很多软件,需要你去发掘,这里只列出一点点常用的。

(1) 音乐播放器
本人比较喜欢audacious和osdlyrics的组合
前者播放音乐,后者显示歌词
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo add-apt-repository ppasd-lyrics/ppa
sudo apt-get update
sudo apt-get install audacious osdlyrics

(2) 词典
sudo apt-get install goldendict
为什么是goldendict,因为它支持网络词典,也可以用星际译王的词典,下面列举一些网络词典

中文维基 http://zh.wikipedia.org/w
有道词典 http://dict.youdao.com/search?q=%GDWORD%&ue=utf8
海词 http://dict.cn/%GDWORD%
百度词典 http://dict.baidu.com/s?wd=%GDWORD%
爱词霸 http://www.iciba.com/%GDWORD%
必应词典 http://cn.bing.com/dict/search?q ... p;qs=bs&form=CM

(3) 视频播放
系统就带smplayer,我在windows也用这个。

(4) 输入法
本身自带小企鹅fcitx,不过相信很多朋友喜欢ibus。

(5) ubuntu-tweak 类似于windows下的魔方之类的工具
sudo apt-add-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

(6) flashplayer插件,一些字体,解码器等
sudo apt-get install ubuntu-restricted-addons

(7) 想跑32位的程序?
sudo apt-get install ia32-libs

(8) 与开发有关的东东
<1> 流程图: 比较出名的是dia但过于简单,当然inkscape也可以画流程图的,不过这里推荐一下yEd,这个软件是免费闭源的
<2> 代码仓库: 自然少不了git和svn
<3> 16进制编辑器: ghex,还有命令行下的tweak,后则可以打开/dev/sda这样的特殊文件
<4> 代码差异查看: meld,kde下还有kdiff也是可以装的
<5> 原理图及PCB设计: kicad,这个软件也有windows版本,还是很好用的,我的第一块8层板就是用它画的
<6> 看代码? eclipse ...
<7> 写代码? gedit就足够,本人不是vim/emacs党
<8> jdk,sudo apt-get install openjdk-7-jdk,如果希望使用oracle的jdk,安装会有一些麻烦,我到是写过一个安装脚本,以后可以考虑整理放出
<9> 还有很多工具,库...


....
Reply View the author
isunny
deepin
2015-07-24 15:57
#27
(9) 其他
像什么QQ基本上不上了,平时和朋友联系都用微信了,QQ只在windows下打游戏时会用一下。所以懒装,有需要的朋友可以自行百度,google,教程一大堆。
ccsm设置桌面特效也不是本文重点,需要的朋友自行百度。

上面有几个脚本需要解释下
(1) 2-(5)-C 中的脚本
#### #### #### #### #### #### #### ####
OCTAGRAM_BLKID=$(blkid | grep "octagram")
if [ "x$OCTAGRAM_BLKID" != "x" ] ; then
SSD_DEV=$(echo "$OCTAGRAM_BLKID" | awk '{print $1}')
SSD_DEV=${SSD_DEV##*'/'}
SSD_DEV=${SSD_DEV:0:3}
echo deadline > /sys/block/${SSD_DEV}/queue/scheduler
echo 0 > /sys/block/${SSD_DEV}/queue/add_random
echo 1 > /sys/block/${SSD_DEV}/queue/iosched/fifo_batch
fi
#### #### #### #### #### #### #### ####

第1行
"octagram"是我的分区的名字,俗称卷标,需要效仿的朋友请改成自己分区的名字哦。
命令blkid会把所有分区的uuid、卷标、/dev下的设备节点等列举出来,每一设备占一行,所以这里只需要筛选出含有字符串"octagram"的一行,结果是
/dev/sda6: LABEL="octagram" UUID="d731ab56-1062-4289-9d3c-104b04ff0957" UUID_SUB="a3a7620d-36c6-4deb-87e6-0a74623134ef" TYPE="btrfs"

第2行
判断第一行的结果是否为空,如果为空,说明卷标为"octagram"的设备是不存在的,就跳过后面的处理;只有不为空才执行后面的语句。

第3~5行
从第1行的输出的结果截取我们需要的信息:设备节点sda,有时这个设备节点会变成sdb、sdc...,blkid输出的结果也跟着变,这里处理后的结果自然也会跟着改变,从而就解决设备节点变化导致的问题。



(2) 7 中挂载exfat格式的sd卡脚本
#### #### #### #### #### #### #### ####
SD_BLKID=$(blkid | grep multimedia)
if [ "x$SD_BLKID" != "x" ] ; then
SD_DEV=$(echo "$SD_BLKID" | awk '{print $1}')
SD_DEV=${SD_DEV##*'/'}
SD_DEV=${SD_DEV:0:3}
echo deadline > /sys/block/${SD_DEV}/queue/scheduler
echo 0 > /sys/block/${SD_DEV}/queue/add_random
fi
if ! lsmod | grep exfat_fs > /dev/null ; then
if modprobe exfat_fs > /dev/null 2>&1 ; then
if [ "x$SD_BLKID" != "x" ] ; then
mount -t exfat -o defaults,nodiratime,noatime,uid=1000,gid=1000,umask=007 LABEL=multimedia /storages/multimedia
fi
else
echo "cat not find exfat module"
fi
fi
#### #### #### #### #### #### #### ####

前8行和(1)是一样的,目的是防止SD卡的设备节点(/dev/sdX)发生改变,只是注意SD卡的卷标是"multimedia",需要效仿的朋友记得修改
第9行开始是将exfat的驱动模块插入到内核中,只有插入成功才会执行挂载的命令(12行):
mount -t exfat -o defaults,nodiratime,noatime,uid=1000,gid=1000,umask=007 LABEL=multimedia /storages/multimedia
这个mount命令
-t exfat 表示文件系统的格式
-o -o defaults,nodiratime,noatime,uid=1000,gid=1000,umask=007 表示挂载的选项
LABEL=multimedia 要挂载的设备是卷标为"multimedia"的设备(需要效仿的朋友记得修改)
/storages/multimedia 挂载点




.....
Reply View the author
isunny
deepin
2015-07-24 15:58
#28
第二篇文章的分割界线-------------------------------------------------------------------------------------
Reply View the author
isunny
deepin
2015-07-24 15:59
#29
UEFI启动模式安装ubuntu指南
from : http://tieba.baidu.com/p/2543314310


之前写过一篇安装实录
http://tieba.baidu.com/p/2543314310
但是那篇文章是一个完整的安装过程,包含了UEFI安装,SSD优化,基本软件等。因此很长,这篇文章只描述UEFI。

UEFI启动模式和传统的Lagency启动模式完全不同,因此很有必要先了解一下UEFI BIOS和UEFI启动模式

1 必须搞清的几个UEFI问题
(1) UEFI启动模式 与 legacy启动模式
legacy启动模式: 就是这么多年来PC一直在使用的启动方式(从MBR中加载启动程序),UEFI BIOS作为一种新的BIOS自然也应该兼容这种老的启动方式;

UEFI启动模式: UEFI BIOS下新的启动技术。如果你的PC在UEFI启动模式下预装了Win8,你会发现有两个很小的隐藏分区。一个叫ESP(EFI系统分区),另一个MSR(Microsoft保留分区,通常为128MB)。MSR是windows要求的。ESP对UEFI启动模式很重要,UEFI的引导程序是以后缀名为.efi的文件存放在ESP分区中的,ESP分区采用fat32文件系统。此外,可能还存在一个小分区叫WinRE Tools,这个是win8的恢复分区,体积也很小。所以千万不要手贱把这三个分区删了。但对我们有意义的是ESP分区,windows下想访问ESP分区需用分区工具给它分配盘符并取消隐藏;而ubuntu则直接将这个分区挂载到/boot/efi,直接用文件夹浏览器进去就可以看到各种.efi文件了。

因此第一个关键问题就是确定自己的启动模式,方法是进入BIOS,然后你会发现有一项叫"boot mode",选中"UEFI boot"就是UEFI启动模式,选中"Legacy boot"就是Legacy启动模式。见过吭爹的UEFI BIOS:有着非常华丽的BIOS界面,还能使用鼠标,但却只支持Legacy boot。

(2) UEFI启动模式只支持64位的系统,所以预装的win8是64位的,ubuntu(kylin)也需要64位的。

(3) UEFI BIOS 和 Legacy BIOS
我们都知道可以在传统的bios中调整设备的启动优先级,UEFI BIOS在UEFI启动模式下不但可以调整设备的优先级,还可以调整设备中引导程序的优先级,安装完ubuntu之后,你再进BIOS就会发现多了一个可选择的启动项叫ubuntu。此外,UEFI BIOS也引入了一些新的技术,例如Fast boot和secure boot,当然后面一项完全是用来坑爹的。

(4) UEFI启动模式下如何从u盘或移动硬盘引导
只要u盘或移动硬盘上有一个fat32的分区,分区的根目录下有个文件夹叫EFI,UEFI就会自动去查找相应的启动文件(.efi)
如果你刚制作了ubuntu(kylin)-13.04-64位的启动u盘,可以打开它,你会发现分区的文件系统是fat32,确实有一个EFI文件夹,进去看看就是各种.efi引导文件(这里再次强调64位,32位下你是找不到这个文件夹的)。因此现在想制作可启动的u盘或移动硬盘就简单了,只需要复制粘贴就行了。
部分UEFI BIOS还支持从NTFS分区中查找启动文件。

2 安装常见问题
(1) PC买来时预装了Win8,可是怎么按快捷键也进不了BIOS
这个是Win8的启动技术造成的,解决方法有二:
<1> 将鼠标移动到屏幕右上角,在弹出的边框中选"设置" → "电源",然后按住shift键选"重启",等待一会,会弹出一个界面,选"疑难解答" → "高级选项" → "UEFI固件设置" → "重启"
等待片刻就来到BIOS。
<2> 彻底关闭Win8的快速启动,方法是按"win键"+x,选择带管理员权限的命令提示符,输入命令powercfg -h off。这样Win8的关机就不再是假关机了,重启就可以按快捷键进BIOS了。然后在BIOS中将fast boot设为disable。

我个人使用的是方法二,原因有二:一,如果开启了BIOS中的fast boot,启动时外接USB键盘不可用,因此也无法在grub启动菜单中选择进哪个系统,当然,笔记本内建的键盘是可用的,可是我经常懒得将笔记本打开,直接以平板模式放支架上工作,内置键盘是用不了的。二,Win8快速启动是建立在休眠功能上的,休眠功能会额外占用75%左右内存容量的空间,8G内存就是6G多了,对于我128G的SSD太多了点,更何况我装的还是双系统。

(2) 关闭secure boot
这个坑爹的技术曾引发全世界范围内对微软的吐槽,如果你的BIOS不能disable,那很多Linux发行版你都无法安装。据说ubuntu是买了微软的key的,但是我安装完ubuntukylin13.04-64位后同样被这一坑爹技术华丽丽地阻止启动。当然我的BIOS是可以关闭它的。

(3) 安装完成后如何启动ubuntu
安装过程和以前完全没有差异。但是安装完成后拔掉u盘重启,不出意外的话,会直接进win8。还记得1中提到的UEFI BIOS可以设置设备中系统的优先级吗?这里Win8是第一优先级,当然很自然地就进win8了,进BIOS你会发现启动项多了一个ubuntu,放在最前面就OK了。当然,还有一个办法,启动时按快捷键调出BIOS的启动菜单,选择ubuntu就可以进ubuntu系统了。

(4) 像以前一样从grub启动windows
切换系统时每次都要进BIOS或则调出BIOS启动菜单,非常不方便,有没有办法像以前一样可以从grub启动菜单中进win8呢?答案是肯定的,只是步骤稍微有点长:
<1> 先让grub启动菜单显示出来
不出意外的话,你启动ubuntu时是看不到grub启动菜单的。输入下面命令打开/etc/default/grub
sudo gedit /etc/default/grub

把"GRUB_HIDDEN_TIMEOUT=0"这一行注释掉(这一行的最前面增加"# "),变成这样:
# GRUB_HIDDEN_TIMEOUT=0
此外"GRUB_TIMEOUT=10"控制着grub菜单的读秒时间,这里是10秒,可以根据需要修改成其他值。

<2> 增加win8的启动项
还记得刚才我们说的ESP分区吗,现在安装完了,也启动了,你可以去/boot/efi下看看这个分区里面都有什么。你会发现这样一个文件"/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi",它就是win8的引导文件,所以增加的启动项的方法就是去加载这个文件。
首先,确定我们ESP分区的UUID是什么,先输入下面命令。
sudo grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
返回结果:8AA5-3B52
当然这个"8AA5-3B52"是我的ESP分区的UUID,别的电脑就会变成其他值了。分区的UUID在你的PC中的是独一无二,也不会发生改变,因此经常用它来代表一个分区。
用下面命令打开"/etc/grub.d/40_custom"
sudo gedit /etc/grub.d/40_custom
然后在最后面增加:

#### #### #### #### #### #### #### ####
menuentry "Windows x86_64 UEFI-GPT" {
search --fs-uuid --no-floppy --set=root 8AA5-3B52
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
#### #### #### #### #### #### #### ####

需要注意,8AA5-3B52要修改成你刚才得到的UUID哦。

<3>改完之后记得让修改生效
sudo update-grub2
此时重启,看看是不是已经有grub启动菜单了,而且还可以选择进入win8。

3 在移动硬盘或u盘中安装ubuntu
后来我又在移动硬盘中安装了ubuntu12.04 64位,这里遇到了一个问题:
SSD中的安装ubuntu(kylin)-13.04 64位在UEFI BIOS出现的启动项名称是"ubuntu",对应的引导文件是"ESP分区/EFI/ubuntu/grubx64.efi"
而如果再安装一个ubuntu-12.04 64位,哪怕是安装到移动硬盘或u盘中,也会在你的主硬盘的ESP分区中建立引导文件,而且这个引导文件同样是"ESP分区/EFI/ubuntu/grubx64.efi"。这会把原先ubuntu(kylin)-13.04的引导文件给覆盖掉。注意,安装过程中选择从哪个设备建立引导是无效的,无论你选什么,引导文件都会被安装到主硬盘ESP分区中。因此安装之前需要做点工作。
Reply View the author
isunny
deepin
2015-07-24 15:59
#30

(1) 修改SSD中ubuntu系统的引导文件路径
为了解决上述问题,可以尝试修改路径。
sudo gedit /etc/default/grub
找到这一行"GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`"
在最前面加# 注释掉,然后在它下面增加一句,修改后成这样:

# GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_DISTRIBUTOR=ubuntukylin

因为我装的是ubuntukylin,所以我改成了ubuntukylin,你可以按自己的喜好修改成其他名字。
修改完后
sudo update-grub2
sudo grub-install

完成后,可以去/boot/efi/EFI下看看是不是产生了一个ubuntukylin的文件夹,同时里面也有一个文件"ESP分区/EFI/ubuntukylin/grubx64.efi",BIOS中也会出现一个启动项叫ubuntukylin,别忘了进去设成第一启动项。当然旧的ubuntu启动项还是在的,此时你从ubuntukylin或ubuntu启动的结果都是一样的。所以此时我们可以把ubuntu这一项废弃了。

(2) 安装
按照1的描述,安装前记得先给移动硬盘或U盘分区,其中一个分区是FAT32文件系统,然后安装ubuntu到u盘或移动硬盘,安装方法没什么独特,只是在选文件系统时挂载到u盘或移动硬盘的分区中就可以了。完成后,"/boot/efi/EFI/ubuntu/grubx64.efi"已经变成ubuntu12.04的引导文件了。此时我们只需要将这个文件搬到移动硬盘或u盘中的fat32分区中,方法如下:
先将你的ubuntu-12.04 64位的启动u盘(LiveUSB)打开,复制里面的EFI文件夹(或者到iso中去提取)到移动硬盘或u盘的FAT32分区中。再进到"/boot/efi/EFI/ubuntu/"中,用grubx64.efi覆盖"EFI/BOOT/"下的文件。完成,是的,仅需复制粘贴就可建立移动设备上的引导了。

(3) 删除BIOS中残留的启动项
步骤(2)完成后,移动硬盘或u盘就是可启动的了,但会在BIOS中残留启动项"ubuntu"。可以使用工具efibootmgr删除。
首先,将引导文件删除:
sudo rm -r /boot/efi/EFI/ubuntu
然后使用工具efibootmgr来查看我们需要删除哪一项
sudo efibootmgr
你会得到类似下面这样的信息
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0002,0000,0001,0006,0005
Boot0000* Windows Boot Manager
Boot0001* ubuntu
Boot0002* ubuntukylin
Boot0005* UEFI: IP4 Realtek PCIe GBE Family Controller
Boot0006* UEFI: IP6 Realtek PCIe GBE Family Controller

从信息中我们知道windows是第0项,ubuntu是第1项,显然是将第1项删除
所以删除命令是
sudo efibootmgr -b 1 -B

windows下也有类似工具EasyUEFI。

其实,在UEFI启动模式下,grub-install命令就用"efibootmgr -c"来为BIOS建立一个新的启动项。新手建议别碰这个命令,有实力的玩家可以看看它的man手册。
UEFI很强大,可以在UEFI下开启一个像Linux一样的终端,然后运行命令:例如截屏工具等等。只需要你去下载一个UEFI shell的.efi文件,放入ESP分区中,用efibootmgr建立启动项就可以进入了。   
Reply View the author
cxbii
deepin
2015-07-24 17:06
#31
https://bbs.deepin.org/post/31570
报错说 找不到  这个命令,怎么办 ?如何修复 deepin  桌面

你的是2015。。
直接用启动器中的深度用户反馈报告吧
Reply View the author
MattD
deepin
2015-07-24 17:25
#32
https://bbs.deepin.org/post/31570
(1) 修改SSD中ubuntu系统的引导文件路径
为了解决上述问题,可以尝试修改路径。
sudo gedit /etc/default/ ...

发了这么多,然而一点意义都没,installer早就支持UEFI,不需要那么多手动操作。
Reply View the author
shulun743
deepin
2015-07-24 17:43
#33
https://bbs.deepin.org/post/31570
发了这么多,然而一点意义都没,installer早就支持UEFI,不需要那么多手动操作。 ...

你试过?
Reply View the author
shulun743
deepin
2015-07-24 17:44
#34
https://bbs.deepin.org/post/31570
你的是2015。。
直接用启动器中的深度用户反馈报告吧

那如何上传 deepin-bug 提取到的 包?
Reply View the author
cxbii
deepin
2015-07-24 17:57
#35
https://bbs.deepin.org/post/31570
那如何上传 deepin-bug 提取到的 包?

用深度用户反馈直接可以在线提交bug的啦
Reply View the author
isunny
deepin
2015-07-24 18:06
#36
本帖最后由 isunny 于 2015-7-24 10:23 编辑
https://bbs.deepin.org/post/31570
发了这么多,然而一点意义都没,installer早就支持UEFI,不需要那么多手动操作。 ...

我感觉  这里面的东西应该会有点作用的   

  (4) 像以前一样从grub启动windows      >>   <2> 增加win8的启动项         

楼主的问题是   :

1        grub  识别win8.1  为  vista            //    这个在上面的内容里应该可以找到修改的方法

2        grub  不能引导win8.1                   //     我觉得它的问题应该是grub  里面没有找到  win8.1的引导分区     应该需要  探测 相应的 ESP分区的UUID   并且  写入 grub的配置文件     

另外也要看楼主的硬盘分区是  gpt  还是  mbr  , 是mbr的话  应该不会出现楼主的问题      是 gpt 的话,  应该了解下  efi  分区  msr  分区  以及 系统分区的启动分区   引导关系

我感觉楼主问题是 uefi  --->  grub.efi  --->> win8.1(系统盘)   但是grub.efi  和 win8.1的启动文件同在 gpt 的 efi 分区 根目录下不同文件夹里面,  grub.efi 查找win8.1的启动文件路径出了问题,应为   uefi  --->  grub.efi  --->> boot.efi (win8.1)    //   解决方法应该是,我不确定,从efi分区复制win8.1的启动文件到win8.1系统盘根目录,  修改grub的配置文件(可选)
我不清楚是否有用     说实话我对linux   以及计算机了解不多    我会回答的不专业   请指出   并且不要太当真     我只是个外行          就当是普及一下知识了               
另外,以上帖子并不是我写的     如果内容过时   或者  失效    请忽略


Reply View the author
MattD
deepin
2015-07-24 18:52
#37
https://bbs.deepin.org/post/31570
我感觉  这里面的东西应该会有点作用的   

  (4) 像以前一样从grub启动windows      >>    增加win8的启 ...

压根不需要去动任何efi文件,直接chainload过去就行了。
鉴于LZ的态度这么恶劣,我还是闭嘴了,虽然我完全知道怎么解决。
Reply View the author
shulun743
deepin
2015-08-06 20:39
#38
https://bbs.deepin.org/post/31570
Vista只是grub识别错误

但是楼主电脑这个貌似是正常的现象。。。

这个 帖子 所 反馈的问题,请你直接提交到 研发,让他们调试一下好吗?

发现2014.3  64位 安装 不存在这个问题,而 安装2015 就发生问题

说明 还是2015独有的 ,grub 不能引导 win ,这个问题 让人很恼火

每次使用 win ,都要 按 F12 来选择启动,让人恼火啊!!!!

体验太差了
Reply View the author
11******[email protected]
deepin
2015-08-07 01:13
#39
这个是 grub 的bug吧?
用grub启动 efi程序
在这个efi程序里取得自己路径的时候在文件名前会多出一些乱码
而直接启动efi或者用 efi shell 启动 efi程序 就不会有乱码
Reply View the author
shulun743
deepin
2015-08-07 21:00
#40
https://bbs.deepin.org/post/31570
这个是 grub 的bug吧?
用grub启动 efi程序
在这个efi程序里取得自己路径的时候在文件名前会多出一些乱码

不太清楚呢,不过这个问题在2014.3不存在,但是在2015却存在啊
Reply View the author
2 / 3
To page
New Thread

Popular Ranking

Change

Popular Events

More
国际排名
WHLUG