[HOW TO] Linux Server High Load

Hello,

I didn't write a article long time. In fact, I don't need to explain anymore, but I have a busy. I have changed the company. Today, I come back. Roughly two days ago, I met the incident about high load. My colleagues did to it, bu he didn't find out anything.

He told me: Tien, I didn't see anything related the high load. Because, as you see, the load of top process is okay.

Tien: Okay, I will take care of this.


And then, I started to find out.


top - 09:55:39 up 63 days, 21:42, 4 users, load average: 14.26, 14.27, 14.25Tasks: 168 total, 1 running, 167 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.7 us, 0.1 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 7747272 total, 1385396 free, 1415356 used, 4946520 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 5655232 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 190720 3760 2428 S 0.0 0.0 6:09.07 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.29 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:03.07 ksoftirqd/0


Firstly, I see the process is running normally, and taking a normal performance load. But, the load average always high as above.

So, what happened?
After went around, I saw the php-fpm as potential event. It always sit on top process. So, I used the HTOP to see the STATE of process. And, I saw 14 uninterruptible sleep PHP-FPM: POOL WWW at here.

What is D - uninterruptible sleep state?
An uninterruptable process is a process which happens to be in a system call (kernel function) that cannot be interrupted by a signal. Unlike interruptible sleep, you cannot wake up this process with a signal. That is why many people dread seeing this state. You can't kill such processes because killing means sending SIGKILL signals to processes. Of course, it stays at here.

What happened in uninterruptible sleep PHP-FPM?
I used strace command to see what is going on? 
AWS:[root@71 ~]# strace -p 5087strace: Process 5087 attachedflock(10, LOCK_EX) = 0gettimeofday({1510306801, 695208}, NULL) = 0gettimeofday({1510306801, 695321}, NULL) = 0open("/data/shared/partners/typo3temp/var/locks/flock_cc5e752af9d3afa9e93ad2244046b482", O_WRONLY|O_CREAT, 0666) = 11fstat(11, {st_mode=S_IFREG|0664, st_size=0, ...}) = 0...gettimeofday({1510306801, 702748}, NULL) = 0flock(11, LOCK_EX|LOCK_NB) = -1 EAGAIN (Resource temporarily unavailable)gettimeofday({1510306801, 702897}, NULL) = 0gettimeofday({1510306801, 703041}, NULL) = 0...gettimeofday({1510306801, 833556}, NULL) = 0chmod("/data/partners/www/typo3temp/var/locks/flock_cc5e752af9d3afa9e93ad2244046b482", 0664) = 0gettimeofday({1510306801, 837579}, NULL) = 0flock(12, LOCK_EX|LOCK_NB) = -1 EAGAIN (Resource temporarily unavailable)(and more if you use strace -p 5087 )

It means that this PHP-FPM is uninterruptible sleep, but it still try to get the resource in /data/partners/www/typo3temp/var/locks/flock_*. It made the System Load Averages up by the time.

Interestingly, /data/partners/www/ is network mount
e-----.amazonaws.com:/ 8.0E 994M 8.0E 1% /data/shared

So, I think that the Linux load averages increase due to a disk (or network mount) I/O workload, not just CPU demand. In my mind, it's mean to reflect demand in a more general sense, rather than just CPU demand (e.g Disk Performance Read/ Write ). It also is a reason that Linux engineer changed from "CPU load averages" to what one might call "System Load Averages".

Finally, I cannot make sure about kill uninterruptible sleep process, so I suggest you should restart the PHP-FPM process to kill them.

To investigate this problem, I read some useful link. you can refer here & here.

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] install x11vnc on CentOS 6/ CentOS 7

Few weeks ago I received the requirement from developer when he need to remote control to server on company.

I talked him: please wait me a minutes
And then, I installed x11vnc on server. You was familiar with x11vnc, if you didn't also nothing. On this article I will show you how to install x11vnc? how to implement it?

Firstly you need to install x11vnc from repositories as below:
yum search x11vncyum install x11vnc.x86_64

After that, you need to create x11vnc file in path /etc/xinetd.d/x11vnc
vim /etc/xinetd.d/x11vnc
service x11vnc
{
port = 5900
type = UNLISTED
socket_type = stream
protocol = tcp
wait = no
user = long
server = /usr/bin/x11vnc
server_args = -inetd -o /home/long/log/x11vnc.log -display :0 -auth /var/gdm/:0.Xauth -passwdfile /home/long/.vncpasswd -many -bg
disable = no
}
You can see that I defined the display, vncpasswd, background or foreground service running. You also change it by your way.

And then, you start xinetd
service xinetd start

Okay, now you have a x11vnc service. Next, importantly, I set the x11vnc's password. At least It helps me to prevent the victim to remote ours server.
bozo@dev01  ~  x11vnc -storepasswd ~/.vncpasswd  
Enter VNC password:
Verify password:  
Write password to /home/bozo/.vncpasswd?  [y]/n y
Password written to: /home/bozo/.vncpasswd
bozo@dev01  ~  -rw------- 1 long long 8 Jul 10 20:46 /home/long/.vncpasswd 
ls -lrt
-rw------- 1 bozo bozo 8 Jul 10 20:46 /home/bozo/.vncpasswd 

So how to vnc?
You need to ssh to x11vnc's server, and run following command line:
bozo@dev01  ~  x11vnc -rfbauth ~/.vncpasswd

On developer computer, we install VNC viewer/ client. And now they can access server by the information:
vnc server: IP/ DNS:5901
[IP server]:[VNC Port]

Please notice you don't kill terminal above step to keep session VNC.

Finally the developer inputs the VNC's password to authenticate.

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] install erlang, elixir on CentOS 6

Roughly 30 minutes ago I installed Erlang & Elixir into our server. It doesn't matter for everyone but until when everyone need help lolz.

So I write down the shortly instruction below. 

I. What is erlang & elixir? 
Please google to know it.

II. How to install?
Please ensure wget already installed on your server. The next commands retrieve a package that adds a new repository to CentOS's repository.
[@ ~]# wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
[@ ~]## rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
[@ ~]# yum search erlang
[@ ~]# yum install -y erlang.x86_64 
[@ ~]# erl --versionErlang/OTP 20 [erts-9.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] [kernel-poll:false]Eshell V9.0  (abort with ^G)1> 
Well done, you have already installed erlang.

Next you need to download elixir. In this article, I use elixir 1.4.2 and you can download at here . Also you can download from elixir github officially follows:

If you download source code elixir, you don't have to compile. If you download binary on github, you have to install as below:
[@ ~]# git clone https://github.com/elixir-lang/elixir.git
[@ ~]# make clean test
Now, you have to add Elixir's bin path to your PATH environment variable. Otherwise, Elixir will not work. To do so, you open .bash_profile
[teamcity@s04 ~]$ vim ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
export ELIXIR_HOME=/opt/elixir
export PATH=$PATH:$ELIXIR_HOME/bin
To verify Elixir is work or not, run:
[teamcity@s04 ~]$ iex
Erlang/OTP 20 [erts-9.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] [kernel-poll:false]
Interactive Elixir (1.4.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 
If you see as above, elixir works. Cheer!

III. If you want to install the specify elixir version
You have to go elixir's github , and then you download the specify version of elixir. Next, you need to extract the elixir compression file.

After that, you go to elixir directory & combine as below
cd otp
./otp_build autoconf
./configure
make
make install


Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] set umask for user has /sbin/nologin environment

Come back to the last week, I worked on case "change umask for SFTP/ SSH user"

At that time, I simply thought that it is umask. So I added umask to ~/.bashrc and ~/.bash_profile.

But nothing to change. It means that I need think logically.

User login -> ssh -> pam.d/ssh -> /etc/profile (~/.bash_profile)

Why? 
A few second I see that user's ssh/ sftp has shell environment is /sbin/nologin. So it is not affected by ~/.bash_profile, also /etc/profile

And then I need to add "umask" on "ssh" step of flowchart:
User login -> ssh -> pam.d/ssh -> /etc/profile (~/.bash_profile)

I go to /etc/ssh/sshd_config
# override default of no subsystems#Subsystem      sftp    /usr/libexec/openssh/sftp-serverSubsystem       sftp internal-sftpGatewayPorts no

add "-u 0022" umask as below
# override default of no subsystems
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp internal-sftp -u 0022
GatewayPorts no

After that, I re-login & create a file and I see that umask' file is 0022.
That's cool!

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] check slot RAM information on Linux Operating System

One day you need to increase memory for physical server at Data-center. But you can't shutdown it to check the available slot. What's up next?

Luckily if you are using Linux Operating System. Because Linux has dmidecode to check hardware information.

I will tell you about dmidecode. In general you need to deeply understand what are you doing. I learned this mythology by my close friend.

dmidecode  is a tool for dumping a computer’s DMI (some say SMBIOS) table con-tents in a human-readable format. This table contains  a  description of the system’s  hardware  components,  as well as other useful pieces of information such as serial numbers and BIOS  revision.  Thanks  to  this  table, you  can retrieve  this  information  without  having to probe for the actual hardware. While this is a good point in terms of report speed and  safeness,  this  also makes the presented information possibly unreliable.

Are you know it? ok, let's check.

1. 
#dmidecode
it shows all of mainboard information.

2. 
#dmidecode -t memory
it shows only memory information, both slot available, memory type.

Ok, you get enough.

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success



[HOW TO] delete password Linux user

Sometimes you need to reset password Linux user, and the question appears: how to delete Linux user password?

The answer is simple.

Firstly all user encrypted passwords are stored in /etc/shadow file. You login as a root user. You type the following command to delete a user password:

passwd --delete user_name
or
passwd -d user_name

Above command will make password empty.

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] change font type and font size pantheon terminal elementary OS

I look in the terminal windows in Elementary OS. Font size looks like small, so it makes the eyelids feel less tired.

What is going on? I need to resize of the terminal font.

Finally I found the method to do it, I use below command:

gsettings set org.pantheon.terminal.settings font 'Roboto Mono 12'

And I look over the terminal, wow already changed the font size.

gsettings - GSettings configuration tool
gsettings offers a simple commandline interface to GSettings. It lets you get, set or monitor an individual key for changes.

You should "man gsettings" to get a bit more knowledge about gsettings. It will help you know exactly what are you doing.

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] fix HAPROXY Setting tune.ssl.default-dh-param to 1024 by default, if your workload permits it you should set it to at least 2048

Error:

Starting haproxy: [WARNING] 052/161359 (16821) : Setting tune.ssl.default-dh-param to 1024 by default, if your workload permits it you should set it to at least 2048. Please set a value >= 1024 to make this warning disappear.
                                                           [  OK  ]

How to resolve:
Step 1: ssh into serverStep 2: use vi to edit haproxy configuration /etc/haproxy/haproxy.cfgStep 3: In global section, add value: tune.ssl.default-dh-param 2048Step 4: Restart haproxy

Tiến Phan - R0039

Knowledge is Endless
 
Sharing for Success

[HOW TO] validate haproxy configuration

I just changed haproxy.cfg. I want to ensure haproxy.conf is valid before restarting haproxy service.

So I check haproxy manual
$man haproxy

I see paremetter -c -V and -f which validate the syntax.

Finally I use this to validate
haproxy -c -V -f /etc/haproxy/haproxy.cfg

I hope this helps anyone looking to check the synctax haproxy.cfg

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] determine the serial number of a computer linux

Q: Hello, Do you want help me get the Laptop's serial number?
A: Easy :D wait me 
Q: Nice!
A: Ping ping!!! please open terminal and run below execute command 
"sudo dmidecode -t system | grep Serial"
Q: Thank you so much guys

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] fix Error: xz compression not available

The last week I installed epel7 on CentOS6, and I got this error

Error: xz compression not available

Holy shit, how to solve it?

Simplicity:
yum remove epel-release
yum clean all
yum install epel-release
yum clean all

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] get up time process linux?

Once day you want to get the up time of application/ process. But you cannot really tell how long the process has been alive. To get this you may use a couple of commands like the following:

cattek@cattek:~$ ps -ax | grep nylas
 7290 ?        Sl     0:22 /usr/share/nylas/nylas
 7294 ?        S      0:00 /usr/share/nylas/nylas --type=zygote --no-sandbox
 7320 ?        Sl     0:00 /usr/share/nylas/nylas --type=gpu-process --channel=7290.0.1818467183 --mojo-application-channel-token=EA75EFF296429385F4F336F81485903C --no-sandbox --window-depth=24 --x11-visual-id=32 --supports-dual-gpus=false --gpu-driver-bug-workarounds=5,18,48,56 --disable-gl-extensions=GL_ARB_occlusion_query GL_ARB_occlusion_query2 --gpu-vendor-id=0x8086 --gpu-device-id=0x191e --gpu-driver-vendor --gpu-driver-version --gpu-driver-date --v8-natives-passed-by-fd --v8-snapshot-passed-by-fd

The first column contains the PID, In this case, 7320 is the PID of the master process

cattek@cattek:~$ ps -p 7320 -o etime=
   01:26:58

Nice, good luck for you. Finally you can now write a script.

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] fix Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

When I reset 'mysql' root password, I couldn't do it. MySQL shows the notification:
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 

Firstly I kill all mysqld's process with
$sudo killall -9 mysql

But nothing to show.

Wait wait, I see /var/run/mysqld/mysqld.sock, but I couldn't found this.

Finally I found the solution:
$sudo /etc/init.d/mysql stop
$sudo mkdir /var/run/mysqld/
$sudo chown mysql /var/run/mysqld/
$sudo mysqld_safe --skip-grant-tables &
mysql -uroot
>use mysql;
>update user set authentication_string=PASSWORD("NEW_PASSWORD") where User='root';
>flush privileges;
>quit;
>sudo /etc/init.d/mysql stop
>sudo /etc/init.d/mysql start

However you also can do this to update mysqld's password.
>ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
>flush privileges;
>quit;

Hope this help,

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success



[HOW TO] Please, commit your changes or stash them before you can switch branches.

In the morning, I pull git to deploy, and unlucky, this paragraph shows me:
Please, commit your changes or stash them before you can switch branches.

Ya I see, a long time ago, I changed one line on file. So it don't like the git repositories file. Next, I have to change/ recovery file on my local as git repositories file.


I see it commons sense. So somebody know the method to fix. Next, google.


In this article I show some cases:


1. You are right, and this change is not affect to teams. You can commit this change using

git commit -m "My message"

2. Stash it


Stashing acts as a stack, where you can push changes, and you pop them in reverse order.
git stash

Do the merge, and then pull the stash:
git stash pop

3. Discard local changes for a specific file
git reset --hard. 
or 
git checkout -t -f remote/branch

4. Discard local changes for a specific file
git checkout filename



Tiến Phan - R0039

Knowledge is Endless

Sharing for Success



[HOW TO] script automatically call skype

In the morning my boss calls me: Tien, why do you don't write script automatically call skype? I see the admin girl don't exactly run on time for it. So please write windows script.

Tien: ya I understand. It is easy to write.

Drop call...

In the afternoon, I go to office, and start to write the script.

Most often, admin girl runs skype to call hanoi's office by hand. She has a lot of works, so she looks like difficult to remember on time to run skype.

In other cases, skype should automatically run every morning is the better.
Depending on how to do, I see windows batch script is good choice. However, I don't familiar with windows batch script.

If you don't yet familiar with windows batch script, you should to learn on. So I google about windows batch script, structure, parameter ... And other important thing, I need to know that how to skype call specific people in contact list.

Google is the king of search based on internet . I have enough knowledge to write a short script.

Below I'will show you my script.

@echo off
::Author: Tien
::Date: 23/03/2017
::This batch file runs for skype call every morning
cd C:\Program\/Files\Skype\Phone\
start Skype.exe /callto:receiver_skype

Step 1: Open notepad, and paste above script.
Step 2: Please choose 

  • Save As ...
  • Save as type: All Files (*.*)
  • File name: skype.bat


If you're already here, you can write. You also can be write better than me.
You can use this script for production with windows 7 32bit. With windows 7 64bit, you have to change C:\Program\/Files to C:\Program\/Files(x86), please verify on your windows operating system.

Eventually, you must to add this script to Startup folder on windows to complete. How to do?

Next, you only copy skype.bat, and paste to Startup folder. (Start, pull down mouse to Startup, right click to Open) - (C:\Users\my-user\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup)

The end.




Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] Validate haproxy.cfg

In the morning I change the haproxy.cfg, but I don't want to restart the haproxy. Because it can make incident for our infrastructure.

So I think I need to validate haproxy configuration file. Luckily haproxy always support that. 

Way is 
/usr/sbin/haproxy -c -V -f /etc/haproxy/haproxy.cfg

Configuration file is valid

Good to see. I hope this help you to check the syntax of haproxy.cfg before restarting haproxy service.

Thank you,


Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

Linux Users and Groups - Base knowledge

Sometimes you have confused about Linux user, in this article, I show you:

How to find out what groups?
/etc/group is a text file which defines the groups on the Linux system. You can use 'groups' command toe display group memberships using the following syntax:
groups user-name

How do I find out the primary group membership?
getent group user-name

Add a new group
groupadd group-name

Add an existing user to a group
usermod -a -G group-name user-name

Change user's primary group
usermod -g group-name user-name

View a list of all groups
groups

Delete group
groupdel group-name

Thank you for reading this article, please a comment if you are interested.


Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

Hướng dẫn sử dụng pin laptop hiệu quả

Chào mọi người,

Trong vô vàn thông tin về pin laptop mọi người đã biết như: dùng pin thế nào để tuổi thọ được lâu? thế nào để không bị chai pin? blah blah

Anh em giang hồ thì ẩn mình muôn phương, mỗi người mỗi kiểu nói. Hôm nay mình mang đến cho mọi người một cách thức sử dụng PIN. Vui lòng xem đây là tài liệu tham khảo, hãy đọc & suy nghĩ, đối chiếu với những cách thức khác bạn đã biết để có lựa chọn cuối tốt.

Thông tin này, mình chép lại từ mẩu giấy của nhà cung cấp PIN laptop (tại địa chỉ doctorlaptop.com)


Hướng dẫn sử dụng pin laptop hiệu quả

Xạc và xả 3 lần đầu cho pin mới:
  • Cách xạc: cắm xạc 3 đến 4 giờ cho pin 6 cell, hoặc 5 đến 6 giờ cho ping 9 cell và 12 cell (trong thời gian xạc có thể sử dụng máy hoặc tắt máy)
  • Cách xả: rút xạc ra và sử dụng máy bằng pin cho đến khi máy báo pin yếu. (low battery 10%)


Cách sử dụng sau 3 lần xạc đầu tiên:
  • Nên gắn pin và gắn xạc khi sử dụng máy
  • Trong 2 tuần xả pin 1 lần. Cách xả pin là cắm xạc cho pin đầy 100% -> rút xạc ra sử dụng máy bằng pin cho đến khi máy báo pin yếu -> cắm xạc lại.
  • Thời gian còn lại trong 2 tuần bạn có thể sử dụng tùy thích theo cách của bạn


Các lưu ý khác:
  • Không tháo pin để ra ngoài
  • Không gắn xạc liên tục khi đã tắt máy
  • Không để dung lượng pin yếu dưới 3%

Hành động cuối cùng là của bạn, hãy suy nghĩ trước khi làm bất kỳ điều gì được hướng dẫn ở internet.

Thank you for reading this article, please a comment if you are interested.


Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] Microsoft Edge can't be using the Built-in Administrator account. Sign in with a different account and try again

Microsoft Edge can't be using the Built-in Administrator account. Sign in with a different account and try again

How to fix?

  1. Open Run box in Start Menu
  2. Typing secpol.msc
  3. Under Local Policies/Security Options navigate to "User Account Control Admin Approval Mode for the Built-in Administrator account"
  4. Set the policy to Enabled
  5. Open Run box or cmd, typing gpupdate to force restart Local Group Policy


Thank you for reading this article, please a comment if you are interested.


Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] sharing tab missing in Folder Properties

A few day ago, I had a issues with Windows 10. Sharing tab missing in Folder Properties and Context Menu.

Account Assistant told me she want to create a folder share. Finance's software partner need it to install finance software. Easy, I think so. But, unluckily when I team-viewer. I don't see Sharing tab in Folder Properties and Context Menu.

What's going on?

It looks like Sharing services didn't start automatically. 
So I go to check Network Discovery and Configure Sharing Options, no problem at here. 

Next, 

  1. I go to check "Server" and "Security Accounts Manager" in service.msc. 
  2. Now scroll down and look for Server and Security Accounts Manager services. 
  3. Double-click on both services one by one and make sure "Automatic" is selected in Startup type drop-down box. 
  4. Also right-click on the service and select Start option to immediately start the service.

And really good, I see Sharing tab in Filder Properties without any problem.

And I also know other solution to fix this issues. You use regedit, 

  1. Go to following key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  2. In right-side pane, double-click on forceguest DWORD and set its value to 0
  3. Finally, you open run box and type gpupdate to force restart Local Group Policy.

It should fix the problem.

Thank you for reading this article, please a comment if you are interested.

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

[HOW TO] Windows 10 Upgrade Assistant 99%

This morning Marketing's girl came back to me. She told me to help her upgrade Windows 7 to Windows 10. Unfortunately I had a lot of task today, so I told her that I had no free time to do. But she can put it on my work space. Because I will come back when I have free time socket.

Three hours later, I work on her computer. I re-open up memories, she don't like Windows 7. She like watching media, simplicity she like latest technology. So she wishes to use Windows 10.

Nice. I upgrade Windows 10 for her via Microsoft Upgrade Assistant. Suddenly it gets stuck "Windows 10 Upgrade Assistant 99%". What is going on?

It looks like that Windows Upgrade have issues. What I need to do?

Time later I see Windows Update frequently ask me to download and install package. Windows Update and Windows Upgrade are conflict?

Because Windows Upgrade also download the update package to install. Windows Update too. I go to change the status of Windows Update in Control Panel to "Never install updates". Tightly I stop Windows Update service in Service (Control Panel/ Administrative Tools).

And I re-run Windows 10 Upgrade Assistant, amazing, it passes 99%. Finally Windows 10 ready upgrade.

Finish something always good feel for me.

Thank you for reading this article, please a comment if you are interested.

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success

One of the the best definition that I like /'mou.ka/

One of the the best definition that I like:

moca   
noun /'mou.ka/
The team who dare to turn their dreams into others' reality. LOL, Kidding. Just a bunch of handsome geeks.

One a shiny Sunday afternoon I clean my room, and I see the old t-shirt


(Kể từ sau năm 2016 tôi không còn tin đây là sự thật ... 0i0 )

[HOW TO] fix Required CD/DVD drive device driver is missing on WIndows 7

Today I come back to Windows. A new Quality Control staff is going to join our company in the next week. And I have to prepare the laptop for her.

In front of me is two laptops. One is Lenovo Thinkpad X220, the best laptop in my experience. Another is Dell Latitude E5250.

With Thinkpad X220, I have to clean up, and upgrade to Windows 10 as is her want. (She works in Marketing department). Microsoft doesn't support to upgrade from Windows 7 to Windows 10 by Windows Update service. Luckily I can upgrade by Microsoft Download Tool. It looks like that Microsoft always want to have more Windows's user. So they didn't tight policy.

With Dell Latitude E5250, I don't have lucky. It notifier "Required CD/DVD drive device driver is missing Windows 7". So I couldn't continue. What is going on?

I follow the keyword "driver" and "missing", Windows installation couldn't see Laptop's disk. Hence I need to import Intel Rapid Storage Technology (Intel RST) RAID Driver. Because it is missing SATA driver. I have only download f6lpy-x86.zip for Windows 32bit and f6lpy-x64.zip for Windows 64bit at https://downloadcenter.intel.com/download/22194

And I import them to Windows Installation USB. Input USB back to Laptop. Windows 7 Installation looks good.

I hope this article help you to save time.

Thank you for reading this article, please a comment if you are interested.

Tiến Phan - R0039

Knowledge is Endless

Sharing for Success