DISK

添加新硬盘后不重启服务器就使用

通过重新扫描SCSI (注: Small Computer System Interface, 小型计算机系统接口)总线并添加SCSI设备, 就可以扩展系统的物理卷磁盘空间, 而不需要重启虚拟机.

ls /sys/class/scsi_host/    #注: 里面有几个设备就echo几个
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
#使用下面命令来检查SCSI设备的名称, 然后重新扫描SCSI总线
ls /sys/class/scsi_device/
echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan

设置开机挂载

系统挂载的一些限制:

1.根目录必须挂载, 而且一定要先于其他mount point被挂载起来
2.其他挂载点必须为已新建的目录, 可任意指定, 但一定要遵守必须的系统目录架构原则
3.所有挂载点在同一时间内, 只能挂载一次
4.所有分区在同一时间内, 只能挂载一次
5.如果进行卸载, 你必须先将工作目录移到挂载点(及其子目录) 之外

1. 开机挂载/etc/fstab及/etc/mtab

cat /etc/fstab
# /etc/fstab
# Created by anaconda on Wed Jul  4 15:27:49 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_linuxofalex-lv_root / ext4  defaults,acl,usrquota,grpquota  1 1
UUID=a1757913-f588-48c0-9d4b-326ee874aa18 /boot  ext4  defaults  1 2
/dev/mapper/vg_linuxofalex-lv_swap  swap  swap  defaults   0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

其中的六个字段非常重要, 一定要背下来!!!

#第一列: 文件(设备)名或卷标名Label, 系统默认使用Label名称
#   注: 设备名与插槽有关, 不可随意设置
#第二列: 挂载点(mount_point), 一定是目录
#第三列: 文件系统, 此列在/etc/fstab文件中必填
#第四列: 文件系统参数, defaults为rw,auto,nouser,async,suid,dev,exec
#第五列: 是否能被dump命令作用. 0: 不做dump备份 1: 每天备份 2: 不定期备份
#第六列: 是否以fsck检查扇区. 开机时=> 0: 不检查 1: 最早检查(一般根目录设为1) 2: 稍后检查
#必须测试新添配置是否写对, 否则可能会导致系统无法顺利开机!!!
mount -a
df -h

/etc/fstab 是开机时的配置文件, 真正实时更新挂载的配置文件是 /etc/mtab 和 /proc/mounts , 万一你的/etc/fstab配置文件写入错误, 系统无法顺利开机而进入单用户维护模式, 那时候/是ro状态, 无法修改/etc/fstab, 也无法更新/etc/mtab, 可用以下方法:

mount -n -o remount,rw /

2. 特殊设备loop挂载 (镜像文件不刻录就挂载使用)

什么是loop设备?

#loop设备是一种伪设备, 是使用文件来模拟块设备的一种技术, 文件模拟成块设备后, 就像一个磁盘或光盘一样使
#用. 在使用之前, 一个loop设备必须要和一个文件进行连接. 这种结合方式给用户提供了一个替代块特殊文件的接
#口. 因此, 如果这个文件包含有一个完整的文件系统, 那么这个文件就可以像一个磁盘设备一样被 mount 起来. 
#之所以叫loop设备(回环), 其实是从 文件系统 这一层来考虑的, 因为这种被mount起来的镜像文件它本身也包含
#文件系统, 通过loop设备把它mount起来, 它就像是文件系统之上再绕了一圈的文件系统, 所以称为loop.

2.1 挂载光盘/DVD镜像文件

mount -o loop /root/centos5.2_x86_64.iso /mnt/centos_dvd
df -h
umount /mnt/centos_dvd    #使用完成后别忘了卸载

2.2 新建大文件以制作loop设备文件

在原本分区不改动原有环境的情况下制作出你想要的分区, 尤其是想玩Linux上的虚拟机的话, 也就是将一台Linux主机再切割成数个独立的文件系统, 配合loop device的文件类型来进行根目录的挂载, 非常有用.

#1. 制作大文件
dd if=/dev/zero of=/home/loopdev bs=1M count=1000
#2. 格式化
mkfs -t ext3 /home/loopdev
#3. 挂载
mount -o loop /home/loopdev /mnt/loopdev    #注: 先分清文件和挂载点的大小, 否则可能无法挂载
df -h

2.3 补充

一般在linux中会有8个loop设备, 一般是 /dev/loop0~loop7 , 可用通过 losetup -a 查看所有的loop设备, 如果命令没有输出就说明所有的loop设备都没有被占用, 你可以按照以下步骤创建自己的loop设备.

#1. 创建一个文件
dd if=/dev/zero of=/var/loop.img bs=1M count=10240
#2. 使用losetup将文件转化为块设备
losetup /dev/loop0 /var/loop.img
#3. 通过lsblk查看刚刚创建的块设备
lsblk | grep loop0
losetup -a
#4. 当然,你也可以将这个块设备格式化并创建其他的文件系统,然后再mount到某个目录,有点多余啊,一般人不
#这么干
#5. 要删除这个loop设备可以执行以下命令
losetup -d /dev/loop0

内存交换空间(swap)的创建

swap是用来暂时放置内存中的信息, 所以用到swap时, 你的主机硬盘灯都会亮个不停.

  • 1.如果你的linux主机系统可以进入“休眠”模式的话, 那么运行当中的程序状态会被记录到swap中, 以作为“唤醒”主机的状态依据.
  • 2.某些程序在运行时, 本来就会使用swap的特性来存放一些数据段.

1. 使用物理分区构建swap

#1. 分区
fdisk /dev/sdc    #注意修改为交换分区的系统ID为82 (Hex code)
partprobe    #此操作很重要, 不要忘记让内核更新分区表
#2. 格式化
mkswap /dev/sdc7
#3. 使用
swapon /dev/sdc7
#4. 查看
free -m
swapon -s    #列出目前使用swap的设备有哪些.

2. 使用文件构建swap

#1. 新建文件
dd if=/dev/zero of=/tmp/swap bs=1M count=3072
#2. 格式化
mkswap /tmp/swap    #这个命令使用时要特别小心, 因为弄错字节, 可能会是你的系统挂掉!!!
#3. 使用
swapon /tmp/swap
swapon -s
#4. 关闭
swapoff /tmp/swap

3. swap使用上的限制

3.1 在内核2.4.10版本以后, 单一swap已经没有2GB的限制

3.2 最多仅能创建32个swap

3.3 由于目前x86_64(64位)最大内存寻址到64G, 因此, swap总量最大仅能达64G

磁盘的挂载与卸载

1. 挂载

挂载前, 先确定几件事:

1.单一的文件系统不应挂载在不同的挂载点(目录)中
2.单一目录不应挂载多个文件系统(挂载后目录中原本的内容会暂时消失)
3.作为挂载点的目录理论上应该是空目录
#mount -a
#mount [-l]
#mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 设备文件名 挂载点
    -a    --all, 依据配置文件/etc/fstab内的数据将所有未挂载的磁盘都挂载上
    -l    增加label名称
    -t    --type, 选择指定文件系统挂载
    -L    指定卷标名挂载
    -n    --no-mtab, 挂载时不实时地在/etc/mtab添加记录
    -o    --option, 后加挂载时的额外参数
        ro, rw    挂载的文件系统为只读(read-only), 读写(read-write)
        synv, async    文件系统是否同步写入的内存机制
        auto. noauto    是否允许此分区被mount -a自动挂载
        dev, nodev    是否允许此分区中创建设备文件
        exec, noexec    是否允许此分区中含有二进制文件
        suid, nosuid    是允许此分区含有suid/sgid文件格式
        user, nouser    是否允许此分区被一般用户挂载
        defaults    默认选项为 rw, async, auto, dev, exec, suid, nouser
        remount    重新挂载, 再系统出错或重新更新参数时很有用
        usrquota    启动文件系统时支持磁盘配额模式
        grpquota    启动文件系统时对群组支持磁盘配额模式
        #注: 光驱,软盘等挂载后需要卸载才能退片
#为什么没用-t选项, 即没有指定文件系统类型就可以进行挂载?
#  系统主要参考以下两个文件:
#    1. /etc/filesystems    系统指定的测试挂载文件系统类型
#    2. /proc/filesystems    Linux系统已经加载的文件系统类型
#Linux系统支持文件系统的驱动程序都写在如下目录中:
#  /lib/modules/$(uname -r)/kernel/fs/
#挂载U盘 
#(U盘不能是NTFS的文件系统, 但Linux系统下载并安装对应驱动后, 可使用NTFS的文件系统)
mount -t vfat -o iocharset=cp950 /dev/sda1 /mnt/flash
#若带有中文文件名的数据时, 可在挂载时指定一下挂载文件系统所使用的语言, cp950是中文语系
#重新挂载根目录或挂载不特定目录 (根目录不可被卸载)
#实例: 将根目录重新挂载, 并加入rw和auto参数
    mount -o remount,rw,auto /
#   当你进入单用户维护模式时, 你的根目录通常被系统挂载为只读, 这个时候这个命令太重要了
#额外挂载某个目录
    mount --bind /home /mnt/home
        --bind  -B, Remount a subtree somewhere else (so that its contents are available in \
                both places), 可在某些不支持软连接的程序中运行
#使用Label name进行挂载的方法
dumpe2fs -h /dev/hdc6 | grep "volume"
mount -L "卷标名" /mnt/hdc6
#此种挂载的好处:系统不必知道该文件系统所在的接口与磁盘文件名

2. 卸载

#umount [-fn] 设备文件名或挂载点
    -f    强制卸载, 可用在类似网络文件系统(NFS)无法读取到的情况下
    -n    不更新/etc/mtab文件的情况下卸载

磁盘参数修改

#mknod
#e2label
#tune2fs
#hdparm

磁盘配额(quota)的应用与实践

用途:

1.用户使用限制
2.用户组使用限制
3.以Link的方式使邮件作为限制的配额(更改/var/spool/mail这个路径)
    通常用于原有磁盘分区的规划不好却又不想改变原有主机架构时.
    #不改动既有系统的quota实例
        #/home (为独立分区) 和/var/spool/mail不在同一个文件系统中, 如何进行quota限制?
        #1. 将/var/spool/mail这个目录完整的移动到/home下
        #2. ln -s /var/spool/mail /home/mail    新建连接数据
        #3. 将/home进行quota设置

使用限制:

1. 仅能针对文件系统
2. 需要内核支持
3. Quota的日志文件
4. 只对一般用户有效

规范设置选项:

针对整个文件系统进行限制:
    1.容量(block)和文件数量(inode)的限制
    2.soft/hard
    3.宽限时间(grace time)
        超过宽限时间, soft限制值会即刻替代hard作为quota的限制.

实践quota流程

1. 文件系统支持

若你规划的某目录(例如/home)不是独立文件系统, 则你需要对此目录所在的整个分区进行限制.

#本次生效:
mount -o remount,usrquota,grpquota /home
#当你重新挂载时, 系统会更新/etc/mtab, 所以你必须要确定usrquota, grpquota已加到你需要设置的文件系统中

#直接修改/etc/ftab已永久生效
vim /etc/fstab
LABEL=/home /home ext3 default,usrquota,grpquota 1 2
umount /home
mount -a
mount | grep home
#强调: 修改完/etc/ftab后, 一定要验证, 修改错误会导致系统不能开机完全.

2. 新建quota配置文件

quota到底是如何操作的:

2.1 分析整个文件系统中用户(用户组)拥有的文件总数(inode)和总容量(block)
2.2 将这些数据记录该文件系统的最顶层目录
2.3 根据配置文件的限制值去规定磁盘使用量
#quotacheck - scan a filesystem for disk usage, create, check and repair quota files.
#扫描文件系统并新建配置文件, 在该文件系统最顶层生成aquota.group, aquota.user
#用法:
#quotacheck [-avugfM] [/mount_point]
    -a  --all, 扫描所有在/etc/mtab中有usrquota和grpquota支持的文件系统
    -v  --verbose, 显示扫描过程信息
    -u  --user, 指定用户的文件和目录使用情况, 会新建quota.user文件
    -g  --group, 指定用户组的文件和目录使用情况, 会新建quota.group文件
    -f  --force, 强制扫描文件系统, 并新建quota配置文件(危险)
    -M  --try-remount, 强制以读写方式扫描文件系统, 只在特殊情况下使用
    #-f, -M选项一般用在有特殊需求, 需要重新扫描已挂载的文件系统时.
    
quotacheck -avug #只需记住这个就好, quota.user和quota.group会根据操作自动同步

3. quota的启动, 关闭与限制值的设置

#1. quotaon [-avug]
#此命令几乎只在第一次启动quota才需要执行, 因为下次启动系统时, /etc/rc.d/rc.sysint会自动执行这个命令.

#2. quotaon [-uvg] [/mount_point]
quotaon -uv /var #指定文件系统(分区)挂载
#1. quotaoff [-avug]
#2. quotaoff [-ugv] [/mount_point]
#edquota - edit user quota
#1. edquota [-u username] [-g groupname]    对用户(用户组)进行编辑
    # Filesystem blocks soft hard inodes soft hard
    #block的单位均为KB, soft/hard为0时, 表示没有限制.
#2. edquota -t    设置宽限时间
#3. edquota -p 模范账号 -u 新账号    prototype. n.原型; 标准; 模范

4. quota限制值的报表

#一: 针对用户或用户组:
#1. quota [-uvs] [username]
#2. quota [-gvs] [groupname]
    -s    --human-readable

#二: 针对文件系统:
#repquota - summarize quotas for a filesystem
#repquota -a [-ugvs]

5. 测试与管理

#warnquota - send mail to users over quota
#1. 依据/etc/warnquta.conf的设置, 找到目前系统上超出soft限制(即意味着有grace time的用户)的账号, 发送邮件至对应用户邮箱. (在MESSAGE内 | 表示断行)
#2. warnquota不会自动执行, 需要手动执行. 若需要自动执行, 需要创建/etc/cron.daily/warnquota.sh并写入/usr/sbin/warnquota
#setquota - set disk quotas, 直接在命令中进行quota设置
#setquota [-u|-g] 名称 block(soft) block(hard) inode(soft) inode(hard) 文件系统
#实例: 给予用户alex磁盘使用量100000, 200000的限制
setquota -u alex 100000 200000 0 0 /home

磁盘阵列RAID

RedundantArrays of Inexpensive Device, 容错廉价磁盘阵列

==小磁盘合成大磁盘==

优点:
​ 1.数据安全可靠, 磁盘损毁时还可使用
​ 2.读写性能佳
​ 3.容量大

1. 六种等级, 各有特点.

(1) RAID-0 (等量模式, stripe), 性能最佳

数据被等量的放到各个磁盘上, 因此组成的磁盘越多, 性能越加, 因为每块磁盘负责的数据量更低了

**只要有一块文件损毁, 在RAID上的所有文件都会丢失而无法读取**

容量不同的磁盘组成RAID-0, 当小容量的磁盘被填满后, 数据会被写入大容量的磁盘中, 此时读写性能变差

(2) RAID-1 (镜像模式, mirrio) , 完整备份

同一份数据完整的保存在两块磁盘上

整体的RAID容量几乎少了一半

(3, 4) RAID 0+1, RAID 1+0

至少需要**四**块磁盘

RAID 0+1: 先让两块磁盘组成RAID-0, 这样的设置共有2组, 然后将两组RAID-0整合成一组RAID-1

反过来, 就是RAID 1+0

(5) RAID-5, 性能与数据备份的均衡考虑

至少需要**三**块磁盘, RAID-5的总容量是**整体磁盘容量减一块**

类似RAID-0, 循环写入时每块磁盘还加入一个**同位检查数据(Parity)**, 这个数据会记录其他磁盘的备份数据, 用于当有磁盘损毁时的**救援**, 当损毁的磁盘数量大于等于两块时, 这整组RAID-5就毁了

RAID-6, 允许损毁的磁盘数量可以达到两块

(6) Spare Disk, 预备磁盘的功能

磁盘损毁换新时, **磁盘阵列主动重建(rebuild)**, 因此需要**预备磁盘(spare disk)**的帮助

手动拔插硬盘, 通常需要关机, 因此你的磁盘阵列支持热拔插就完美了

2. 软件磁盘阵列的设置

硬件磁盘阵列(hareware RAID)是通过磁盘阵列卡来完成数组的目的

软件磁盘阵列(software RAID)是通过软件来仿真数组的任务, 因此会损耗较多的系统资源

madam这套软件会以分区或磁盘为单位, 也就是说, 不需要两块以上的磁盘, 只要你有两个以上的分区就能够设计你的磁盘阵列了

2.1 规划

#以分区为例, 硬盘相同
#   1.1 用N个分区组成RAID
#   1.2 每个分区确定容量, 最好容量一致. 
#   1.3 用M个分区设置为sparedisk
#   1.4 这些sparedisk最好和RAID的所需分区一样大
#   1.5 将此RAID5设备挂在到/mnt/raid目录下

2.2 以madam创建RAID, 查看状态

#创建
#madam --create --auto=yes /dev/md[0-9] --raid-devices=N  --level=[015] --spare-devices=N /dev/sdx /dev/hdx ...
    --create    为新建RAID的参数  
    --auto=yes    决定后面新建软件磁盘阵列设备的名称, 如/dev/md0, /dev/md1等
    --raid-devices=N    使用几个磁盘作为RAID的设备
    --level=[015]    设置这组RAID的等级
    --spare-devices=N    使用几个磁盘作为RAID的备用设备
    --detail    显示后面RAID的详细信息
    
#后面这些这些设备文件名可以是整块磁盘, 如/dev/sdb, 也可以是分区, 如/dev/sdb1之类
#不过这些设备文件名的总数必须要等于--raid-devices与--spare-devices之和
#实例:
    madam --create --auto=yes /dev/md0 --raid-devices=4 --level=5 --spare-devices=1 /dev/sda{6,7,8,9,10}    #通过{}将重复的项目简化
#查看
#1. madam --detail /dev/md0
#2. cat /proc/mdstat

2.3 格式化, 挂载使用

mkfs -t ext4 /dev/md0
mount /dev/md0 /mnt/raid
df -h

3. 仿真RAID错误的救援模式

#madam --manage /dev/md[0-9] [--add 设备] [--remove 设备] [--fail 设备]
    --add    将后面的设备添加到md中
    --remove    将后面的设备从这个md中删除
    --fail    将后面的设备配置成出错的状态

3.1 设置磁盘为错误(fault)

madam --manage /dev/md0 --fail /dev/sdb6

3.2 将出错的磁盘上删除并加入新磁盘

madam --manage /dev/md0 --remove /dev/sdb6 --add /dev/sdb11   #注: 预备磁盘会自动重建数据

4. 开机启动RAID并自动挂载

software RAID的配置文件为 /etc/madam.conf, 只要知道/dev/md0的UUID就能设置这个文件

madam --detail /dev/md0 | grep UUID
vi /etc/madam.conf
ARRAY /dev/md0 UUID=7c60c049:57d60814:bd9a77f1:57e49c5b    #为什么要修改配置文件?
vi /etc/fstab
/dev/md0  /mnt/raid  ext3  default  1  2
umount /dev/md0 ; mount -a ; df /mnt/raid

5. 关闭软件RAID(重要!)

==如果只将/dev/md0卸载, 没有将RAID关闭, 结果就是将来你在重新分区/dev/sdbx的时候, 可能会出现一些莫名的状况, 所以才需要关闭RAID的步骤==

#1. 先卸载且删除配置文件内与这个/dev/md0有关的设置
umount /dev/md0
vi /etc/madam.conf
#ARRAY /dev/md0 UUID=7c60c049:57d60814:bd9a77f1:57e49c5b
vi /etc/fstab
#/dev/md0  /mnt/raid  ext3  default  1  2

#2. 直接关闭/dev/md0的方法
madam --stop /dev/md0
    --stop    -S, deactive array, releasing all resources

6. 删除RAID

# 1. 停止运行RAID 
mdadm -S /dev/md0 
# 2. 删除自动配置文件
 > /etc/mdadm/mdadm.conf 
  # /etc/mdadm/mdadm.conf文件中关于该md0的配置信息删除即可
# 3. 删除/etc/fstab内关于RAID的挂载信息
# 4. 删除元数据
mdadm --zero-superblock /dev/sdb{6,7,8,9,10}
   本文基于<鸟哥的Linux私房菜>以及网上搜索的相关资料, 归纳整理, 在此致谢鸟哥.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • SAMBA可以让Windows与Linux之间共享文件系统,还可以成为打印机服务器(虽然现在不怎么需要这个功能)。...
    Zhang21阅读 1,636评论 0 0
  • 观其大纲 第1部分Linux的基础知识第1章Linux概述第2章Linux系统的安装KickStart开始自动安装...
    周少言阅读 1,481评论 1 10
  • 夏丏尊(1886~1946) 在他,世间竟没有不好的东西,一切都好,小旅馆好,统舱好,挂褡好,粉破的席...
    三无农夫阅读 526评论 1 1
  • 雅娟最近非常烦恼,工作时手忙脚乱,一会做这个,一会做那个,一刻不得闲,可是一天下来却什么也没有做完,熬夜加班是家常...
    凌云仙渡阅读 226评论 1 2
  • 每一天起来的时间都是合理的。因为昨天新添了被子。宜家的2米乘2米3大被买了两床。又买了一套漂亮的被套。嗯。睡起来有...
    oulan阅读 299评论 0 0