Linux之系統(tǒng)啟動(dòng)流程采盒、grub修復(fù)旧乞、模塊管理及內(nèi)核參數(shù)設(shè)定

Linux系統(tǒng)啟動(dòng)流程、grub修復(fù)磅氨、模塊管理及內(nèi)核參數(shù)設(shè)定

runlevel, who -r , chkconfig ,grub ,grub-install , mkinitrd , dracut ,sysctl ,lsmod ,modinfo , modprobe , depmod , insmod ,rmmod
Linux系統(tǒng)的組成部分
  • kernel
    • /boot/vmlinuz-VERSION-RELEASE
  • initrd
    • Centos 5 : /boot/initrd-VERSION-RELEASE.img
    • Centos 6/7 : /boot/initramfs-VERSION-RELEASE.img
  • filesystem
  • 模塊文件
    • 一般存放于/lib/modules/$(uname -r)/目錄下
內(nèi)核的設(shè)計(jì)流派
  • 單內(nèi)核設(shè)計(jì)
    • 把所有功能集成于同一個(gè)程序中尺栖,其中l(wèi)inux就是以單內(nèi)核設(shè)計(jì)
  • 微內(nèi)核設(shè)計(jì)
    • 每個(gè)功能使用一個(gè)單獨(dú)的子系統(tǒng)實(shí)現(xiàn),每個(gè)子系統(tǒng)通信需有特殊的機(jī)制來(lái)實(shí)現(xiàn)烦租,其中winodows叉橱、solaris的內(nèi)核設(shè)計(jì)方式就為微內(nèi)核屡贺。
Linux內(nèi)核的特點(diǎn)
  • 單內(nèi)核設(shè)計(jì)
  • 支持模塊化(.ko的文件,[]kernel object])
  • 支持模塊運(yùn)行時(shí)動(dòng)態(tài)裝載或卸載
  • 內(nèi)核可以將驅(qū)動(dòng)模塊或者功能模塊編譯進(jìn)內(nèi)核,由內(nèi)核初始化直接加載完成
linux啟動(dòng)流程示意(內(nèi)核空間---用戶空間)
  • 內(nèi)核空間
    • POST—>BootSequence(BIOS)—>bootloader(MBR)—>kernel(ramdisk) —>rootfs(只讀方式掛載)—> /sbin/init
  • 用戶空間:
    • /sbin/init(/etc/inittab) --> { id:#:initdefault: --> si::sysinit:/etc/rc.d/rc.sysinit --> l#:#:wait:/etc/rc.d/rc # --> /etc/rc.d/rc#.d/[1突想、開(kāi)始S開(kāi)頭的服務(wù)猾担;2、結(jié)束K開(kāi)頭的服務(wù)]}-->/etc/rc.d/rc.local
      • 注意:以上{}中工腋,表示在/etc/inittab文件中完成的步驟。

內(nèi)核空間啟動(dòng)步驟

1趁冈、POST加電自檢

  • 當(dāng)按主機(jī)電源鍵渗勘,計(jì)算機(jī)主板通電洒沦,并完成已下操作:
    • 加載Bios中的ROM中的程序申眼,來(lái)檢測(cè)各種硬件設(shè)備
Bios : Baisc input and output system

2、BootSequence

  • 按bootsequence的啟動(dòng)列表濒翻,查找MBR或UEFI的活動(dòng)設(shè)備有送。

3、Bootloader

  • 找到MBR后查找引導(dǎo)加載器(bootloader程序),讀取mbr中的bootloader,加載boootloader中的grub程序
Grub的工作原理
  • stage1: 加載mbr中的所有分區(qū)信息
  • stage1.5: mbr之后的扇區(qū)阵赠,讓stage1中的bootloader能識(shí)別stage2所在的文件分區(qū)上的文件系統(tǒng)
  • stage2: 磁盤(pán)分區(qū)之上(/boot/grub/)
注意:MBR能識(shí)別基本的硬盤(pán)設(shè)備,但不能識(shí)別高級(jí)的文件系統(tǒng)枷邪,如lvm , raid等
Bootloader的類型及使用場(chǎng)景
  • ntloader
    • windows
  • LILO(linux loader)
    • 早期的Linux系統(tǒng)
    • 安卓手機(jī)設(shè)備
  • grub(Grand Uniform bootloader)
    • Centos 5/6 (grub 0.X)
    • Centos 7 (grub 1.X)

4齿风、加載虛根文件系統(tǒng)(ramfs)

  • 完成虛根ramfs的初始化,以此來(lái)識(shí)別硬盤(pán)上的文件系統(tǒng)脸候。

5泵额、掛載rootfs

  • 以只讀方式掛載根文件系統(tǒng)

6嫁盲、初始化init進(jìn)程

  • 運(yùn)行進(jìn)程ID為1的Init進(jìn)程,利用init啟動(dòng)流程完成用戶空間的啟動(dòng)步驟

用戶空間啟動(dòng)步驟

SysVinit進(jìn)程的初始化

  • 讀取/etc/inittab瘾蛋,需完成如下加載步驟:
    • 系統(tǒng)運(yùn)行級(jí)別加載:id:#initdefault:
    • si::sysinit:/etc/rc.d/rc.sysinit : 加載運(yùn)行/etc/rc.d/rc.sysinit文件,完成如下動(dòng)作:
      • 激動(dòng)Udev和selinux
      • 根據(jù)/etc/sysctl.conf文件取董,來(lái)設(shè)置內(nèi)核參數(shù)
      • 設(shè)定系統(tǒng)時(shí)鐘
      • 裝載鍵映射
      • 啟用交換分區(qū)
      • 設(shè)置主機(jī)名
      • 要文件系統(tǒng)檢測(cè),并以讀寫(xiě)方式重新掛載
      • 激活raid和lvm設(shè)備
      • 啟用磁盤(pán)配額
      • 根據(jù)/etc/fstab檢測(cè)并掛載所有文件系統(tǒng)
      • 清理過(guò)期的鎖和PID文件
    • l0:0:wait:/etc/rc.d/rc 0 ---> /etc/rc.d/rcX.d/* 對(duì)應(yīng)系統(tǒng)運(yùn)行級(jí)別坡垫,開(kāi)啟或關(guān)閉系統(tǒng)各服務(wù)堡妒,如下:
      • 停止K*的服務(wù)
      • 啟動(dòng)S*開(kāi)頭的服務(wù)
        • 以上服務(wù)都由chkconfig命令管理,并由service命令調(diào)用執(zhí)行停止或關(guān)閉操作伏尼。
    • tty6:2345:respawn:/usr/sbin/mingetty tty6爆阶,啟動(dòng)登錄窗口,并打印歡迎界面
      • 其是mingetty調(diào)用login程序吱韭,完成密碼驗(yàn)證過(guò)程
    • 加載/etc/rc.d/rc.local文件
      • 此文件是系統(tǒng)最后啟動(dòng)的一個(gè)文件,可以將不需要寫(xiě)在服務(wù)維護(hù)腳本的命令放置在這里熏挎,它將會(huì)隨系統(tǒng)一起啟動(dòng)完成坎拐。
注意:
  • Centos7的init程序?yàn)閟ystemd,其配置文件存放于:/usr/lib/systemd/system/* ; /etc/systemd/system/*
  • Centos6的init為upstart,但為了兼容SysV風(fēng)格积担,名稱也為Init,其配置文件放置于/etc/init/*.conf
upstart的初始化流程

/etc/inittab(定義了默認(rèn)的運(yùn)行級(jí)別)-->/etc/init/rc.conf(其中定義了相應(yīng)的運(yùn)行級(jí)別所要執(zhí)行對(duì)應(yīng)級(jí)別下的服務(wù)/etc/rc.d/rcX.d/* ,根據(jù)命令exec /etc/rc.d/rc $RUNLEVEL 來(lái)調(diào)用/etc/rc.d/rcX.d/*)-->/etc/rc.d/rc.local

================

/etc/inittab文件格式說(shuō)明
  • id:runlevel:action:process
    • id: 一個(gè)任務(wù)的標(biāo)識(shí)
    • runlevel: 在哪些級(jí)別下啟動(dòng)此任務(wù),可以為空,即表示所有級(jí)別
    • action:在什么條件下啟動(dòng)此任務(wù)
      • wait : 等待切換至此任務(wù)所在的級(jí)別時(shí)執(zhí)行一次
      • respawn : 設(shè)定默認(rèn)運(yùn)行給別渴庆,此時(shí)process省略
      • sysinit: 設(shè)定系統(tǒng)初始化方式耸弄,此處一般為指定/etc/rc.d/rc.sysinit腳本
    • process:任務(wù)
示例
    0:0:wait:/etc/rc.d/rc 0 : 意味著去啟動(dòng)或者關(guān)閉/etc/rc.d/rc3.d/目錄下的服務(wù)腳本所控制的服務(wù),所有K開(kāi)頭的要停止的服務(wù)胧砰,所有S開(kāi)頭的啟動(dòng)击罪。 其中表示優(yōu)先級(jí),K中數(shù)值越小囱怕,表示越先關(guān)閉岛宦,S中數(shù)據(jù)越小表示越先開(kāi)啟。一般依賴的服務(wù)先關(guān)閉,然后再關(guān)閉被依賴的荣德。或者一般被依賴的服務(wù)先啟動(dòng)生音,依賴的服務(wù)后啟動(dòng)    

============

運(yùn)行級(jí)別:

  • 0:關(guān)機(jī),shutdown
  • 1: 單用戶模式饱须,(single user) root用戶,無(wú)須認(rèn)證登陸
  • 2:多用戶模式(multi user),會(huì)啟動(dòng)網(wǎng)絡(luò)功能,但不會(huì)啟動(dòng)NFS;維護(hù)模式
  • 3:多用戶模式(multi user),完全功能模式屉凯,文本界面
  • 4:預(yù)留級(jí)別:目前無(wú)特別使用目的灌旧。但習(xí)慣與同3級(jí)別功能使用
  • 5: 多用戶模式:(multi user),完全功能模式铝噩,圖形界面。
  • 6: 重啟,reboot

查看系統(tǒng)運(yùn)行級(jí)別

  • runlevel
  • who -r
  • systemctl get-default(Centos 7)

=========

系統(tǒng)服務(wù)類腳本的添加和管理

添加一個(gè)腳本格式
    #!/bin/bash
    #
    #chkconfig: 2345 50 60 #表示2345開(kāi)啟跃惫,其他關(guān)閉
    #description XXXXX
    下面是腳本正文终蒂,需要接受至少如下四個(gè)參數(shù):
    {start|stop|restart|status}
使用chkconfig命令添加服務(wù)及管理
  • 首先需要將腳本復(fù)制至/etc/init.d/中。
  • 再使用chkocnfig --add 腳本名稱(服務(wù)名稱)
  • 再使用service 腳本服務(wù) start

=============

chkconfig命令

  • chkconfig --add service_name
    • 添加一個(gè)服務(wù)腳本
  • chkconfig --del service_name
    • 刪除一個(gè)服務(wù)腳本
  • chkconfig --list
    • 查看所有服務(wù)的啟動(dòng)狀態(tài)
  • chkconfig 2345 service_name on
    • 在2345運(yùn)行級(jí)別啟用此服務(wù)
  • chkconfig 2345 service_name off
    • 在2345運(yùn)行級(jí)別下關(guān)閉此服務(wù)

grub如何識(shí)別設(shè)備

  • 1债朵、Boot需單獨(dú)分區(qū)
    • grub的位置應(yīng)該為/grub/vmlinz
  • 2谚中、識(shí)別磁盤(pán)都為hd
    • (hd#,#) : 第一個(gè)表示磁盤(pán)分區(qū)囊拜,第二個(gè)#表示分區(qū),都用數(shù)字表示,從零開(kāi)始編號(hào)

grub的命令行接口

  • help:獲取幫助列表

  • help KEYWORD : 詳細(xì)幫助信息

  • find (hd#,#)/PATH/TOSOMFILE

  • find (hd0,0)/vmlinuz-2.6.32

  • root(hd0,0) :把那個(gè)設(shè)備設(shè)置為根設(shè)備

  • kernel /path/to/kernel_file: 設(shè)定本次啟動(dòng)時(shí)用到的內(nèi)核文件仪糖,額外還可以添加許多內(nèi)核使用的command參數(shù)

          例如:init=/path/to/init, selinux=0,quiet
    
  • initrd /path/to/initramfs_file | initrd_file : 設(shè)定為選定的內(nèi)核提供額外文件的ramfs(必須與內(nèi)核版本號(hào)完全匹配)

  • boot:引導(dǎo)啟動(dòng)選定的內(nèi)核

手動(dòng)在grub命令行接口啟動(dòng)系統(tǒng):

grub> root(hd0,0)
grub> kernel /vmlinuz-version-release ro root=/dev/DEVICE 
grub> initrd /initramfs-version-release.img
grub> boot

注意:ro : 表示以只讀方式掛載根文件系統(tǒng)
     root=/dev/DEVICE : 應(yīng)該寫(xiě)根文件系統(tǒng)所在的磁盤(pán)分區(qū)

grub的文件的配置格式

/etc/grub/grub.conf
default=0  # 設(shè)置默認(rèn)啟動(dòng)的tile,0表示第一個(gè)tile
timeout=5   # 在啟動(dòng)時(shí)選擇tile時(shí)的超時(shí)時(shí)間
hiddenmenu #是否隱藏啟動(dòng)界面
password --md5 密碼串(使用grub-md5-crypt工具加密的密碼串)#如果加密玻粪,編輯grub時(shí)會(huì)要求輸入密碼
title (Centos 6.6)  #啟動(dòng)時(shí)的菜單名稱
    root (hd0,0) # 表示kernel的存放位置结窘,hd統(tǒng)一表示為所有硬盤(pán),第一個(gè)0表示第一塊硬盤(pán),第二個(gè)0表示一個(gè)分區(qū)
    kernel /vmlinuz.VERSION.release #kerenl文件的存放路徑
    initrd /initramfs.VERSION.release.img #initramfs的存放路徑
    password --md5 密碼串 #這個(gè)密碼加密后,啟動(dòng)相應(yīng)的內(nèi)核時(shí),會(huì)要求輸入密碼

    
    #注意:title中的每一行都必須要縮進(jìn)一個(gè)空白字符,當(dāng)grub損壞時(shí),可以使用"find (h0,0)/"查找目錄下的文件,使用TAB鍵補(bǔ)全,如果有就會(huì)列出所有的文件责静,如果沒(méi)有揩徊,表示(hd0,0)指定有錯(cuò)誤,需再查找其他的分區(qū)中是否有。

進(jìn)入單用戶模式:

  • 1、編輯grub菜單(選定要編輯的title ,e命令)
  • 2、在選定的kernel后附加1,S,s 或者single都可以
  • 3、在kernel所在行,鍵入b命令

手動(dòng)安裝grub的方法

  • 1、grub-install --root-directory=/mnt /dev/sdb
      注意:--root-directory=/mnt : 這個(gè)位置必須指定為boot目錄所在的父目錄,grub會(huì)自行在父目錄中找到boot目錄膘融,然后把grub程序安裝到對(duì)應(yīng)的目錄中,一般情況在掛載新預(yù)備安裝gurb的硬盤(pán)時(shí),需要在文件系統(tǒng)上建立一個(gè)boot目錄,再把對(duì)應(yīng)的磁盤(pán)掛到boot目錄中,這樣grub才會(huì)找到boot目錄,在下面建立所需的文件,如果掛載時(shí)不創(chuàng)建boot目錄,那和以grub會(huì)在目錄下創(chuàng)建boot目錄,啟動(dòng)時(shí)需要將kernel和initrd的位置就應(yīng)該為/boot/vmliunz格式
    
  • 2、分步驟安裝
      grub
      grub> root (hd0,0)
      grub> setup (h0,0)
    

手動(dòng)修復(fù)grub引導(dǎo)程序

模擬損壞mbr
  • dd if=/dev/zero of=/dev/sda bs=200 count=1
    • 需要先備份好mbr,使用dd if=/dev/sda of=/root/sda bs=512 count=1
修復(fù)過(guò)程
  • 1悠菜、掛載安裝光盤(pán),執(zhí)行linux rescue 進(jìn)行急救模式
  • 2、chroot /mnt/sysimage
  • 3姻僧、執(zhí)行grub-install --root-directory=/ /dev/sda
    /dev/sda : 這是對(duì)磁盤(pán)的mbr修復(fù)指定位置松嘶,必須是磁盤(pán)尽超,不能是分區(qū)棘脐,就是mbr所存放的位置

新加硬盤(pán)屈梁,提供直接單獨(dú)運(yùn)行bash系統(tǒng)

####創(chuàng)建文件系統(tǒng)并掛載
mke2fs -t ext4 /dev/sdb1
mke2fs -t ext4 /dev/sdb2
mkdir /media/boot
mount /dev/sdb1  /media/boot/
grub-install --root-directory=/media /dev/sdb
cp /boot/vmlinuz-2.6.32-573.el6.x86_64 /media/boot/vmlinuz
cp /boot/initramfs-2.6.32-573.el6.x86_64.img /media/boot/initramfs.img
####grub配置文件信息
vim /media/boot/grub/grub.conf
    default=0
    timeout=5
    hiddenmenu
    title (Centos6.6)
        root (hd0,0)
        kernel /vmlinuz ro root=/dev/sda2 selinux=0 init=/bin/bash
        initrd /initramfs.img
####給根文件系統(tǒng)提供bash和相應(yīng)的庫(kù)文件
mount /dev/sdb2 /mnt/
cd /mnt/
mkdir $(ls /) -pv
cp /bin/bash /mnt/bin/bash
ldd /bin/bash
cp /lib64/libtinfo.so.5 /mnt/lib64/
cp /lib64/libdl.so.2 /mnt/lib64/
cp /lib64/libc.so.6 /mnt/lib64/
cp /lib64/ld-linux-x86-64.so.2 /mnt/lib64/
chroot /mnt/ 

ramfs文件的管理

1战坤、mkinitfs 命令(Centos5)
  • synopsis: mkinitrd [OPTION...] [<initrd-image>] <kernel-version>
示例:
  • mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
2、dracut 命令(Centos 6\7)
示例:
  • dracut /boot/initramfs-$(uname -r).img $(uname -r)

內(nèi)核信息輸出的偽文件系統(tǒng):

  • 1、/proc目錄
  • 內(nèi)核狀態(tài)及統(tǒng)計(jì)信息的輸出接口登疗,同時(shí)還提供了一個(gè)配置接口:/proc/sys,可以使用sysctl命令修改其內(nèi)核參數(shù)智政,其此目錄下的大部分文件都可接受用戶指定的一個(gè)"新值",來(lái)實(shí)現(xiàn)對(duì)內(nèi)核某功能或特性的配置

  • 2、/sys目錄
  • 輸出內(nèi)核識(shí)別出的各種配置設(shè)備的相關(guān)信息,也有內(nèi)核對(duì)硬件特性的可設(shè)置參數(shù),可定制硬件的特性

udev功能

  • 通過(guò)讀取sys目錄下的硬件設(shè)備信息,按需為各硬件設(shè)備創(chuàng)建設(shè)備文件。當(dāng)系統(tǒng)初始化的過(guò)程中,會(huì)探測(cè)計(jì)算機(jī)各種硬件設(shè)備信息毕籽,此記錄會(huì)保存至/sys目錄下睡榆,當(dāng)系統(tǒng)啟動(dòng)完成后宿崭,udev會(huì)按照/sys目錄下的各設(shè)備文件铁孵,創(chuàng)建相應(yīng)的硬件信息蜕劝。udev為設(shè)備創(chuàng)建設(shè)備文件時(shí),會(huì)讀取其事先定義好的規(guī)則文件牙肝,一般在其工作目錄下。

  • udev的工作目錄

    • /etc/udev/rules.d : 自定義的規(guī)則目錄
    • /lib/udev/rules.d/ : 默認(rèn)的規(guī)則目錄
    • /dev/.udev/rules.d : 臨時(shí)規(guī)則目錄存放位置(Centos 7才有)
  • udev目錄下的文件

      root@zhenping rules.d]# ls /lib/udev/rules.d/
      01-log-block.rules           60-persistent-storage-tape.rules  75-cd-aliases-generator.rules          81-kvm-rhel.rules
      10-console.rules             60-persistent-v4l.rules           75-net-description.rules               88-clock.rules
      10-dm.rules                  60-wacom.rules                    75-persistent-net-generator.rules      90-pulseaudio.rules
      11-dm-lvm.rules              61-mobile-action.rules            75-tty-description.rules               91-drm-modeset.rules
      13-dm-disk.rules             61-option-modem-modeswitch.rules  77-mm-ericsson-mbm.rules               95-devkit-power-battery-recall-dell.rules
    

內(nèi)核參數(shù)調(diào)整方法

1衡楞、配置文件修改(永久有效迷守,但需重新啟動(dòng)后)
  • 修改/etc/sysctl.conf 或者/etc/sysctl.d/*.conf

      net.ipv4.ip_forward = 0
    
注意:如果需要修改后的參數(shù)立即有效急膀,需使用sysctl -p 命令重讀其配置信息加載到內(nèi)核中卓嫂。
2、使用命令進(jìn)行修改(臨時(shí)有效,下次重啟后丟失)

sysctl命令

sysctl -sysctl - configure kernel parameters at runtime
  • synopsis : sysctl [options] [variable[=value]] [...]

  • [options]

    • -a : 顯示當(dāng)前可配置的所有參數(shù)
    • -w VAR=VLUE : 更改參數(shù)值
    • -p : 從/etc/sysctl.conf文件中重新加載內(nèi)核設(shè)定值
示例
  • sysctl net.ipv4.ip_forward : 查看其值
  • sysctl -w kernel.hostname=zhenping.mac : 設(shè)置其計(jì)算機(jī)名為zhenping.mac
  • sysctl -a : 查看所有可配置的內(nèi)核參數(shù)

使用文件系統(tǒng)命令catecho設(shè)置和查看

  • cat /proc/sys/kernetl/hostname
  • echo "VALUE" > /proc/sys/kernel/hostname
常見(jiàn)內(nèi)核參數(shù)
  • net.ipv4.ip_forward : 核心轉(zhuǎn)發(fā)功能
  • vm.drop_caches : 釋放buff/cache空間误墓,值有0\1\2
  • kernel.hostname : 主機(jī)名
  • net.ipv4.icmp_echo_ignore_all : 忽略所有發(fā)往自己的ping操作

模塊管理

lsmod命令
lsmod - 查看所有系統(tǒng)被裝載的模塊
  • lsmod
    • 顯示系統(tǒng)被裝載的所有模塊
注意:其是提取/proc/modules文件信息

=========

modinfo命令
modinfo - Show information about a Linux Kernel module
其通過(guò)/lib/modules/[KERNEL-VERSION]/modules/下的所有文件進(jìn)行分析并顯示的,默認(rèn)情況下在內(nèi)核modules編譯安裝的時(shí)候益缎,會(huì)在其目錄下生成所有modules的依賴關(guān)系等谜慌,建立對(duì)應(yīng)的索引信息
  • synopsis : modinfo [-0] [-F field] [-k kernel] [modulename|filename...]

  • [options]

    • -k MODULE : 查看指定的模塊信息
    • -F FIELD : 只顯示指定字段的信息
    • -n MODULE 顯示指定模塊的存放路徑

=====

modprobe命令:
modprobe - Add and remove modules from the Linux Kernel
  • synopsis: modprobe [-r] module_name
示例:
  • modprobe MODULE : 裝載指定的模塊文件
  • modprobe -r MODULE : 卸載指定的模塊文件
modprobe可以自行解決模塊與模塊的依賴關(guān)系,并將依賴的模塊也一并啟用

====

depmod命令
內(nèi)核模塊依賴關(guān)系文件的生成工具链峭,系統(tǒng)模塊的生成文件路徑為:/lib/modules/KERNEL-VERSION/

======

模塊裝載和卸載的另一組命令:
insmod命令
  • insmod /lib/modules/3.10.0-229.el7.x86_64/kernel/fs/btrfs/btrfs.ko (模塊一定要為完整路徑)
rmmod命令
  • rmmod MODULE : 卸載指定的模塊
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末畦娄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子弊仪,更是在濱河造成了極大的恐慌熙卡,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件励饵,死亡現(xiàn)場(chǎng)離奇詭異驳癌,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)役听,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門颓鲜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人典予,你說(shuō)我怎么就攤上這事甜滨。” “怎么了瘤袖?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵衣摩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我捂敌,道長(zhǎng)艾扮,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任占婉,我火速辦了婚禮泡嘴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逆济。我一直安慰自己酌予,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布奖慌。 她就那樣靜靜地躺著霎终,像睡著了一般。 火紅的嫁衣襯著肌膚如雪升薯。 梳的紋絲不亂的頭發(fā)上莱褒,一...
    開(kāi)封第一講書(shū)人閱讀 51,165評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音涎劈,去河邊找鬼广凸。 笑死阅茶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谅海。 我是一名探鬼主播脸哀,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼扭吁!你這毒婦竟也來(lái)了撞蜂?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤侥袜,失蹤者是張志新(化名)和其女友劉穎蝌诡,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體枫吧,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡浦旱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了九杂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颁湖。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖例隆,靈堂內(nèi)的尸體忽然破棺而出甥捺,到底是詐尸還是另有隱情,我是刑警寧澤镀层,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布镰禾,位于F島的核電站,受9級(jí)特大地震影響鹿响,放射性物質(zhì)發(fā)生泄漏羡微。R本人自食惡果不足惜谷饿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一惶我、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧博投,春花似錦绸贡、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至虑绵,卻和暖如春尿瞭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背翅睛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工声搁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留黑竞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓疏旨,卻偏偏與公主長(zhǎng)得像很魂,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子檐涝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容