Niners coach Kyle Shanahan said McKinnon made a cut and immediately went down awkwardly on a noncontact play.
McKinnon tweeted Sunday that he "will be back stronger than ever in 2019."
Because McKinnon's injury was noncontact and because of how it looked, Shanahan acknowledged that there was an immediate concern that it was ACL-related.
"Yeah, I mean anytime I watch someone feel their knee, there's always that concern," Shanahan said before an official diagnosis was announced. "But I have felt that way before, and it hasn't been [an ACL], so I'm not trying to [make this] the darkest moment in the world right now. We hope that we're wrong."
McKinnon missed most of the preseason with a calf strain suffered in practice Aug. 12. He had been working his way back but was expected to be ready for the Sept. 9 opener against the Minnesota Vikings before Saturday's injury. In fact, Shanahan said Saturday was McKinnon's first time back working in live team drills.
McKinnon was expected to be the Niners' starting running back in the opener, a role he had been unable to grasp in his previous four seasons with Minnesota.
The Niners signed McKinnon to a four-year, $30 million deal in the offseason and had hopes of making him one of the focal points of their offense. The injury came just before teams had to trim their rosters to the league-mandated 53 players.
For now, the Niners have Matt Breida, Alfred Morris and Raheem Mostert on the roster at running back. Breida, who suffered a shoulder injury in the preseason opener that cost him the next three games, had his first day back working in team drills Saturday. Shanahan said Breida is "good to go" and will be fully involved in the Niners' practices next week.
Niners general manager John Lynch expressed optimism about the team's roster even with McKinnon gone.
"We've got a lot of good football players here," Lynch said. "We're proud of our 53-man roster, and next week we're going to be really excited looking to take on the Vikings."
Cooper's recovery from left knee surgery took longer than the Niners hoped when they signed him to a one-year, $4.95 million contract a couple weeks into free agency. That deal included a $2 million signing bonus and a fully guaranteed base salary of $2 million.
The 49ers signed Cooper, the No. 7 pick in the 2013 NFL draft, in hopes that he could step into the starting job at right guard. Cooper was known for his athleticism when he entered the league, and that athleticism figured to make for a good fit in Shanahan's offense.
But Cooper fell behind early because of the knee surgery and didn't make his exhibition debut until Week 2 of the preseason. Cooper played 60 snaps in the preseason finale against the Chargers, a clear sign that his spot on the team was tenuous.
Attaochu signed a one-year, $3 million deal with a $1.5 million signing bonus on March 14 in hopes that he could bolster the Niners' edge rush. Attaochu, a 2014 second-round pick by the Chargers, struggled with various minor injuries during the preseason and training camp that Lynch said prevented the Niners from being able to "correctly evaluate" him.
"As you go into the regular season, dependability in terms of knowing a guy is going to be out there is really important, and we just didn't have that feeling," Lynch said.
In a move that didn't come to fruition, the 49ers were involved in trade talks for defensive end Khalil Mack before he was traded to the Chicago Bears. With outside pass rush one of the biggest questions facing the team, the Niners were aggressive in that pursuit, according to Lynch.
"The answer is yes, we would have been foolish not to [get involved]," Lynch said. "The guy is a spectacular player. We've always said we're going to exhaust every option to improve our team. So we did, we went in aggressively but also knowing that we had to set some parameters, and we did, and somebody else landed him. We're excited about our team."